我正在寻找从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)
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
我用的是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)
可以使用getprop在设备内检索 Android 序列号:
getprop ro.serialno
在 Java 中,您可能希望使用Runtime.exec()执行它
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)
| 归档时间: |
|
| 查看次数: |
51698 次 |
| 最近记录: |