2011-03-30 11 views
18

Estoy buscando la forma más fácil de obtener un identificador de dispositivo Android único tanto del adb de Android como del ADK de Android.Obtener el identificador de dispositivo Android de ADB y SDK de Android

Por ejemplo, cuando uso el comando adb 'devices', el número de serie de mi dispositivo conectado se envía a la pantalla. Todavía tengo que identificar un método en el SDK de Android para obtener el mismo número de serie.

No me importa qué identificador único se utiliza, algo que se puede recuperar fácilmente tanto de adb como de sdk de Android. Rootear un dispositivo no será una opción.

+0

Podría realizar un seguimiento de las instalaciones en lugar de dispositivos? – ridecar2

+0

encontrado buscar en la respuesta siguiente. http://stackoverflow.com/a/23564966/884052 –

Respuesta

-2

probablemente debería utilizar IMEI:

TelephonyManager m = (TelephonyManager) context 
      .getSystemService(Context.TELEPHONY_SERVICE); 
    String imei = m != null ? m.getDeviceId() : null; 
+0

IMEI puede no ser un buen proxy para un identificador único ya que no puede garantizar que cada dispositivo en el que se ejecute su aplicación tendrá una radio celular. Dado que puede especificar una para android.hardware.telephony, no recomendaría asumir la presencia de hardware de telefonía. Por otro lado, si está feliz de restringir su aplicación solo a aquellos dispositivos con hardware de telefonía, entonces debería ser utilizable. – RivieraKid

2

Trate ANDROID_ID. Como dice la documentación, "[it] se genera aleatoriamente en el primer arranque y debe permanecer constante durante toda la vida útil del dispositivo".

+1

¿Tiene alguna idea de cómo se puede acceder a esto desde adb? – user163757

+0

Por lo que sé, la manera más confiable será crear una aplicación que la copie (ANDORID_ID) a la base de datos. Que puede acceder a esta base de datos a través del comando adb (use [sqlite3] (http://developer.android.com/guide/developing/tools/adb.html#sqlite) desde el shell). –

+0

No lo he probado, pero también puede encontrar ANDORID_ID ya almacenado en este lugar: - /data/data/com.android.providers.settings/databases/settings.db - table secure -/data/data/com.google.android.googleapps/databases/gls.db - table meta –

48

Probablemente quiera usar ANDROID_ID.

Así es como se puede consultar su valor a través de adb shell:

settings get secure android_id 

O mediante la consulta del proveedor de contenido de ajustes:

content query --uri content://settings/secure/android_id --projection value 
+0

¿El contenido no parece ser encontrado por el shell? –

+0

Simplemente escapa del ['] caracteres al final de la consulta para ejecutarlo sin problemas. –

+3

o como un solo delineador: la configuración del 'adb shell 'se obtiene segura android_id'' – ccpizza

8

tiendas Android información todos relacionados al dispositivo en uno u otro sqlite DB. Estas bases de datos se pueden encontrar en/data/data/folder. Para leer estas bases de datos desde adb, necesitará permisos de root.

La Identificación del androide está disponible en /data/data/com.android.providers.settings/databases/settings.db

Así que para su uso ADB este comando.

adb shell sqlite3 /data/data/com.android.providers.settings/databases/settings.db "select value from secure where name = 'android_id'" 

** debe estar ejecutando como root adb adb en

+0

Gracias, esto funciona para mí. – shshank

+0

¡Gracias! Me ayuda – exbluesbreaker

+1

El autor ha mencionado que rootear un dispositivo no es una opción –

4

El número de serie Android puede retreived dentro del dispositivo con getprop:

getprop ro.serialno

De Java, es posible que desee para ejecutarlo con Runtime.exec()

+2

el número de serie es ** no ** el mismo que el ID de Android. – ccpizza

+0

@ccpizza exacto, pero OP quería ** cualquier ** ID de dispositivo – McX

0

Pruebe esto y encuentre el id además de Android. El comando da básicamente toda la información sobre el teléfono.

adb -s <YOUR-DEVICE-ID> shell getprop 
0

Yo uso adb. En primer lugar me lista los números de identificación de los dispositivos conectados con el siguiente comando:

adb devices 

Y la salida se verá algo como esto:

List of devices attached 
YOGAA1BBB412 device 

A partir del resultado anterior, se necesitará el número de identificación del dispositivo (por ejemplo, : YOGAA1BBB412).Para obtener el ID de dispositivo, utilizo el siguiente comando adb:

adb -s YOGAA1BBB412 shell getprop | grep product.model 

Y la salida se ve así:

[ro.product.model]: [Lenovo YT3-X90F] 
+0

Se podría pensar que 'adb devices' lo mostraría de manera predeterminada. Gracias por esto. –

+0

Ah, sí. Solo necesita usar el indicador '-l' para obtener resultados largos. –

Cuestiones relacionadas