2

純粋な Java コードを使用してプログラムで UDID と MAC アドレスを見つけることはできますか?

いいえの場合は、それを見つけるために使用した独自の方法を教えてください。

4

1 に答える 1

1

JDK 1.6 以降、開発者はclass を介してネットワーク カードの詳細にアクセスできますNetworkInterface

システムの MAC アドレスを取得するには、ここで利用できる優れたチュートリアルがいくつかあります。

これらのチュートリアルでは、ネットワーク カードにアクセスする従来の方法と最新の方法を示します。

さて、UDID部分的には、デバイスの一意の識別子として何を使用できるかについていくつかの選択肢ある Android デバイスであると想定しています。選択肢は通常、次のように絞り込まれます。

  • MAC address
  • Serial Number
  • ANDROID_ID

このうち、ANDROID_ID を UDID として使用することをお勧めします。理由は次のとおりです。

  1. デバイスの Wi-Fi または Bluetooth ハードウェアから Mac アドレスを取得できる場合もありますが、すべてのデバイスが Wi-Fi に対応しているわけではないため、お勧めしません。また、WiFi がオンになっていない場合、ハードウェアが Mac アドレスを報告しない場合があります。

  2. Android 2.3 (「Gingerbread」) 以降、これはandroid.os.Build.SERIALで利用できます。テレフォニーのないデバイスは、ここで一意のデバイス ID を報告する必要があります。一部の電話もそうする場合があります。

より具体的には、これANDROID_IDは、デバイスの最初の起動時に生成および保存される 64 ビットの量です。デバイスがワイプされるとリセットされます。ANDROID_ID は一意のデバイス識別子として適切な選択肢のようですが、欠点もあります。

  1. Android 2.2 (「Froyo」) より前のリリースでは、100% 信頼できるわけではありません。
  2. すべてのインスタンスが同じ ANDROID_ID を持っている大手メーカーの一般的なハンドセットに、少なくとも 1 つの広く観察されたバグがありました。

参考文献:

于 2013-11-05T05:59:29.623 に答える