2016-08-26 5 views
2

アンドロイドデバイスでは変更されないIDが必要です.WIFI、SIM、Bluetoothが存在しない場合でも、ユーザーがリセットしてもいつでもユニークである必要があります彼/彼女の携帯電話や新しいOSのフラッシュ。Android:ユニークなデバイスを識別するアンドロイドデバイスのID

私はこれらのIDについて知っています。 IMEI:一部のデバイス(SIMレスデバイスなど)では使用できません。

MAC:すべてのデバイス(例:WIFIレスデバイス)では使用できません。

Android ID:ユーザーが電話やデバイスをリセットすると、新しいOSがルートになります。

私の要件はどれが良いでしょうか?

シリアルIDを使用する必要があります。 Build.SERIAL ??

+0

、それが一意になり、それを –

+0

はいserver.butに関連していますが、私はユニークなデバイスIDが必要です。これはユーザーではなくデバイスを識別します。 –

+1

インターネットに接続できないデバイスで一意のIDが必要なのはなぜですか? – Abbas

答えて

1

アンドロイドデベロッパーのブログからこのリンクを右下に表示してください。 http://android-developers.blogspot.in/2011/03/identifying-app-installations.html

特定の詳細をリンクからコピーして質問に答えてください。

大部分のアプリケーションでは、物理デバイスではなく特定のインストールである を特定する必要があります。幸いにも、 を行うことは簡単です。

特定のデバイスを特定しようとする試みを避ける理由はたくさんあります。試みたい人のために、 おそらく近代的なものにANDROID_IDを使用してください。 レガシーデバイスのフォールバックヒューリスティック。

ユーザごとにUUIDを生成する各ユーザを一意に識別し、サーバに格納することが必要な場合は、しかし、実際に物理デバイス固有の識別子を取得したい場合は、ANDORID_IDが唯一の可能性のある方法です。

このようなことはありましたが、このバグ(android_idは同じデバイス上の異なるプロファイルの違い)に注意してください。

http://code.google.com/p/android/issues/detail?id=42523

は、この情報がお役に立てば幸いです。

+0

私の要件は、ユーザーではなく物理デバイスを特定することです。 –

+0

それではANDORID_IDではありません。これはアンドロイドの開発者のブログからまっすぐです。 !! – Ramesh

1

メーカー情報、デバイス名、シリアルの組み合わせを使用できます。これは、すべてのデバイスの上にユニークで利用できるようになります。これは、サーバと関連している場合、それは、電子メール、またはサーバーに送信されます生成されたID可能性があり

StringBuilder sb = new StringBuilder(); 

sb.append(android.os.Build.MANUFACTURER); 
sb.append(" "); 
sb.append(android.os.Build.MODEL); 
sb.append(" "); 
sb.append(android.os.Build.SERIAL); 

String unique = sb.toString(); 
+0

あなたはdownvoteを説明できますか? – devnull69

+0

はい、私はこれを行うことができますが、これはデバイスの一意のIDを識別する良い方法です。 –

+0

私はそれが良いアイデアだとは思わなかったら私はそれのように答えていないでしょう... – devnull69