AndroidのデバイスIDを取得するための最良の方法

Dipankar Baghel:

私はちょうど私が実行時のアクセス許可を必要とするコードの下2つのオプションのいずれかIの使用を持っているデバイスIDを取得するための最良のだろうか疑問android.permission.READ_PHONE_STATE-

private String android_id = Secure.getString(getContext().getContentResolver(),
                                                        Secure.ANDROID_ID); 

若しくは

第二に、私は、任意の実行時のアクセス許可が、識別するために(電子メールや電話など)のユーザデータをマッピングすることの必要性を必要としませんUUIDのオプションがあります。

String uniqueID = UUID.randomUUID().toString();

1を使用すると、なぜいただければ幸いです任意の提案。

感謝

Gowrishankar:

アンドロイドID:

前記第1の起動時に、ランダム値が生成され、記憶されます。この値は、Settings.Secure.ANDROID_ID経由で入手可能です。これは、デバイスの寿命のために一定のままでなければならない64ビットの数値です。ANDROID_IDは、スマートフォンやタブレットのために利用可能ですので、一意のデバイス識別子のための良い選択です。

問題: 工場出荷時のリセットがデバイス上で実行された場合は、値が変更されることがあります。すべてのインスタンスが同じANDROID_IDを持っているメーカーからの人気が受話器を持つ既知のバグもあります。明らかに、溶液は、100%信頼できるものではありません。

UUID:

ほとんどのアプリケーションのための要件は、特定のインストールではなく、物理デバイスを識別するためにあるようUUIDクラスを使用する場合は、良い解決策は、ユーザーの一意のIDを取得します。

問題: UUID.randomUUID()メソッドは、特定のインストールの一意の識別子を生成します。あなたは、その値を格納するだけであり、ユーザーは、アプリケーションの次回起動時に識別されます。あなたはまた、彼は別のデバイス上でアプリケーションをインストールする場合でも、ユーザーのために利用可能な情報を保持するためにAndroidのバックアップサービスでこのソリューションを関連付けることを試みることができます。

結論:

Androidは簡単なことではない上、特定のデバイスを識別します。それを避けるために多くの良いの理由があります。最善の解決策は、UUIDソリューションを使用して、特定のインストールを識別するために、おそらくです。あなたは絶対に物理的に特定のデバイスを識別したい場合は、ANDROID_IDソリューションを使用しようとすることができます。100%の信頼性がなく、他のソリューションよりも優れていません。

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=21130&siteId=1