Secure.ANDROID_IDはデバイスごとに一意ですか?


Answers

したがって、デバイス自体に固有のものが必要な場合は、 TM.getDeviceId()で十分です。

テレフォニーマネージャIDを取得する方法を示すコードを次に示します。 使用しているアンドロイドのデバイスIDは工場出荷時の設定で変更できますし、一部のメーカーでも一意のIDを付与する際に問題があります。

TelephonyManager tm = (TelephonyManager) this.getSystemService(Context.TELEPHONY_SERVICE);

Log.d("ID", "Android ID: " + Secure.getString(getContentResolver(), Secure.ANDROID_ID));
Log.d("ID", "Device ID : " + tm.getDeviceId());

TelephonyManagerアクセス許可は、

<uses-permission android:name="android.permission.READ_PHONE_STATE" />
Question

私はこの呼び出しを使用しています:

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

デバイスのUIDを取得する。 私は複数のデバイスから同じIDを取得していると思います。 これは可能でしょうか?

問題のIDは:9774d56d682e549cです。このIDを返すいくつかの端末で問題が発生しているようです。http://code.google.com/p/android/issues/list?cursor=10603&updated=10603&ts=1295993403




私はこれについていくつかのことを読んだが、残念ながら個々のデバイスを一意に識別するためにANDROID_IDに依存すべきではありません。

Androidのコンプライアンス要件には適用されていないようだから、メーカーは選択した方法で実装しているように見えます。

また、たとえメーカーが発電機を書いて(たとえば)UUIDにしても、工場出荷時の設定から生き残ることは保証されません。