从ADB和Android SDK获取Android设备标识符

use*_*757 27 android adb

我正在寻找从Android adb和Android ADK本身获取唯一Android设备标识符的最简单方法.

例如,当我使用adb'devices'命令时,我连接的设备的序列号输出到屏幕.我还没有在Android sdk中找到一个方法来获取相同的序列号.

我不关心使用什么唯一标识符,只是可以从adb和android sdk轻松检索的东西.生根设备不是一种选择.

Ale*_* P. 58

您可能想要使用ANDROID_ID.

这是您通过adb shell查询其值的方法:

settings get secure android_id
Run Code Online (Sandbox Code Playgroud)

或者通过查询设置内容提供商:

content query --uri content://settings/secure/android_id --projection value
Run Code Online (Sandbox Code Playgroud)

  • 或者作为单个oneliner:`adb shell'设置获得安全android_id' (4认同)

Bab*_*har 11

Android将所有与设备相关的信息存储在一个或另一个sqlite DB中.这些数据库可以在/ data/data /文件夹中找到.要从adb读取这些数据库,您需要root权限.

android id在/data/data/com.android.providers.settings/databases/settings.db中可用.

所以对于adb使用此命令.

adb shell sqlite3 /data/data/com.android.providers.settings/databases/settings.db "select value from secure where name = 'android_id'"
Run Code Online (Sandbox Code Playgroud)

**你必须在adb中以root身份运行adb

  • 作者提到,root 设备不是一个选项 (2认同)

Had*_*zar 11

和adb一样简单

adb devices -l
Run Code Online (Sandbox Code Playgroud)


Jai*_*tes 6

我用的是adb。首先,我使用以下命令列出附加的设备 ID 号:

adb devices
Run Code Online (Sandbox Code Playgroud)

输出将如下所示:

List of devices attached
YOGAA1BBB412    device
Run Code Online (Sandbox Code Playgroud)

从之前的输出中,您将需要设备 ID 号(例如:YOGAA1BBB412)。要获取设备 ID,我使用以下 adb 命令:

adb -s YOGAA1BBB412 shell getprop | grep product.model
Run Code Online (Sandbox Code Playgroud)

输出如下所示:

[ro.product.model]: [Lenovo YT3-X90F]
Run Code Online (Sandbox Code Playgroud)


And*_*Duś 5

尝试ANDROID_ID.正如文档所说,"[它]是在第一次启动时随机生成的,并且应该在设备的生命周期内保持不变".


McX*_*McX 5

可以使用getprop在设备内检索 Android 序列号:

getprop ro.serialno

在 Java 中,您可能希望使用Runtime.exec()执行它

  • 序列号**不**与android id相同。 (3认同)
  • @ccpizza 准确,但 OP 想要 **任何** 设备 ID (2认同)

ref*_*log -3

您可能应该使用 IMEI:

    TelephonyManager m = (TelephonyManager) context
            .getSystemService(Context.TELEPHONY_SERVICE);
    String imei = m != null ? m.getDeviceId() : null;
Run Code Online (Sandbox Code Playgroud)