6

今、大きな問題に直面しています。Android の公式リファレンスに記載されているとおり: http://developer.android.com/reference/android/provider/Settings.Secure.html#ANDROID_ID


public static final 文字列 ANDROID_ID

※APIレベル3で追加

デバイスの最初の起動時にランダムに生成され、デバイスの存続期間中一定のままである必要がある 64 ビットの数値 (16 進文字列として)。(デバイスを工場出荷時設定にリセットすると、値が変わる場合があります。) 定数値: "android_id"*


しかし、500 台以上のタブレットが販売されているため (A10 AllWinner)、ANDROID_ID は実際にはランダムに生成されず、(Web サービス ログから) 複数のデバイスが同じ番号を持っていることがわかります。

なんで?

この問題を解決するにはどうすればよいですか? 一意の ID を生成するにはどうすればよいですか? シリアル コードがすべてのデバイスで常に同じであると仮定します (複数の Android デバイスで同じシリアル番号。Adb は役に立ちません。シリアル番号を変更するにはどうすればよいですか? )。MAC アドレスは常に利用できるとは限りません。

4

1 に答える 1

10

一般に、これは Android の深刻な問題です。Android ID が最適なオプションのようですが、いくつかの重要なベンダーが実装を混乱させていることに注意してください。

同様の要件に直面して、これらの値のハッシュを使用しました。

  • 電話番号/SIM カード番号 (利用可能な場合、またはゼロのみを使用)
  • アンドロイドID
  • Mac アドレス (利用可能な場合、またはゼロのみを使用)

私の限られた経験 (数百台のデバイスを使用) では、この組み合わせは必要な独自性を達成するのに十分でした。

Android 6 からのUpdate 2017 では、セキュリティ上の理由から Mac アドレスは一定の値を返しますが、Android のほとんどすべての新しい実装では、Android ID は確実に一意であるように思われるため、古いバージョンを対象としていない限り、この手法を使用する動機はありません。

于 2013-02-15T11:23:51.347 に答える