Android adbとAndroid ADKの両方から一意のAndroidデバイス識別子を取得する最も簡単な方法を探しています。
たとえば、adb 'devices'コマンドを使用すると、接続されたデバイスのシリアル番号が画面に出力されます。同じシリアル番号を取得するためのAndroid SDKのメソッドをまだ特定していません。
一意の識別子が使用されているかどうかは気にしません。adbとAndroid sdkの両方から簡単に取得できるものです。デバイスのルート化はオプションではありません。
おそらくAndroid_IDを使用する必要があります。
これは、adbシェルを介してその値を照会する方法です。
settings get secure Android_id
または、設定コンテンツプロバイダーを照会することにより:
content query --uri content://settings/secure/Android_id --projection value
Androidは、すべてのデバイス関連情報をいずれかのsqlite DBに保存します。これらのデータベースは/ data/data /フォルダーにあります。これらのデータベースをadbから読み取るには、ルート権限が必要です。
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'"
** adbのルートとしてadbを実行する必要があります
Android_ID を試してください。ドキュメントには、「[それ]は最初の起動時にランダムに生成され、デバイスの寿命が続く間は一定に保たれるべきです」と書かれています。
adbのようにシンプル
adb devices -l
私はadbを使用しています。まず、次のコマンドを使用して、接続されたデバイスID番号をリストします。
adb devices
出力は次のようになります。
List of devices attached
YOGAA1BBB412 device
前の出力から、デバイスID番号が必要になります(例:YOGAA1BBB412
)。デバイスIDを取得するには、次のadbコマンドを使用します。
adb -s YOGAA1BBB412 Shell getprop | grep product.model
出力は次のようになります。
[ro.product.model]: [Lenovo YT3-X90F]
使用する getprop net.hostname
には Android unique Id があり、その後にキーワードAndroid-<64 bit Hexadecimal String>
例:
[net.hostname]: [Android-a487e0560d669e4a]
これを試して、Android以外のid
を見つけてください。このコマンドは、基本的に電話に関するすべての情報を提供します。
adb -s <YOUR-DEVICE-ID> Shell getprop