Dove posso trovare ANDROID_ID sul mio dispositivo?


11

So che puoi trovare l'indirizzo IMEI e MAC e altri andando a Settings -> About phone -> Status. Puoi anche trovare l'IMEI digitando *#06#sulla tastiera. Esiste un modo per ottenere ANDROID_ID sul telefono stesso, a differenza di questo bit di codice?

Secure.getString(getApplicationContext().getContentResolver(), Secure.ANDROID_ID);

Risposte:


8

Puoi farlo tramite adb. Non richiede root, per quanto ne so (testato su un Galaxy Nexus con 4.2.1 costruito dalla sorgente AOSP):

shell@android:/ $ content query --uri content://settings/secure --projection value --where "name='android_id'"
  settings/secure --projection value --where "name='android_id'"                
  Row: 0 value=<your ID in hexadecimal>
shell@android:/ $

2
Se in esecuzione tramite un'app di emulazione terminale, è richiesto root.
Liam W,

adb ha più privilegi dell'utente shell locale. Con Android 4.x (ICS e versioni successive), puoi persino eseguire un backup completo tramite ADB su un dispositivo non rootato, che l'utente della shell sicuramente non può.
Izzy

6

settings get secure android_idda adb shellè il più semplice, trovo - nessun output estraneo e non richiede root. (Da un terminale normale sul dispositivo, è richiesto il root.)

shell@mydevice:/ $ settings get secure android_id
0123456789abcdef
shell@mydevice:/ $ 

Per accedere alla shell adb: 1. Vai a android_sdk/platform-tools/con cmd o altro terminale. 2. adb devicesper verificare se il tuo cellulare può essere trovato tramite USB. 3 adb shell. 4. Esegui il comando in questa risposta.
NumesSanguis,

2

Dato che la variante eldarerathis non ha funzionato per me e non volevo installare un'app solo per quello, ho trovato un modo diverso. Unico inconveniente possibile: richiede root.

adb shell
$ su
# cd /data/data/com.android.providers.settings/databases
# sqlite3 settings.db
sql> select * from secure where name='android_id';
26|android_id|1234567890abcdef1

Il android_idsi trova nella terza colonna qui (anonimizzato nell'esempio).


MODIFICARE:

Si noti che questo è non l' android_idusato dai applicazioni Google. Google sembra aver deciso di confondere qui. Per Play Services , c'è un archivio separato android_iddi GTalk , come sottolineato da un post sul blog (vedi anche questa risposta di HassleFixes , che è l'autore di StripSearch , e per fortuna lo ha sottolineato nei commenti):

  • chiama il tuo dialer
  • comporre *#*#8255#*#*
  • fai attenzione a "ID dispositivo"
  • rimuovere il comando android-
  • ciò che rimane è android_idutilizzato dai servizi di Google

Ho verificato che: il android_idrecupero in questo modo funziona bene su un dispositivo senza Google-Apps installato (utilizzato con il BlankStore fornito dal progetto NOGAPPS ).


2

La risposta sopra ha $ content query --uri content://settings/secure --projection value --where "name='android_id'"dentro

Se lo stai eseguendo dalla shell, dovrai sfuggire alle virgolette intorno a android_id altrimenti vengono interpretate e l'istruzione SQL non le ha, risultando in una colonna sconosciuta.

Il mio comando completo da bash sembra linea ...
$ adb shell content query --uri content://settings/secure --projection value --where "name=\'android_id\'"

^ Non abbastanza reputazione per commentare la risposta che l'ha suggerita sopra


Tipo. La risposta di @ eldarerathis ha avviato una shell sul dispositivo con adb shell, quindi ha eseguito un altro comando all'interno di quella shell. Funziona bene senza sfuggire alle virgolette. La tua risposta sta eseguendo un singolo comando sulla macchina principale; per questo è necessario sfuggire alle virgolette.
Segna l'
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.