私が使用しているコードが一意のIDを取得する適切な方法であるかどうか誰かに教えてもらえますか?私はそこに重複があるかもしれないと思っています、そしてこれは私の会社の管理レベルで問題を引き起こしている可能性があります...
final TelephonyManager tm = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
String UDID = tm.getDeviceId();
私が使用しているコードが一意のIDを取得する適切な方法であるかどうか誰かに教えてもらえますか?私はそこに重複があるかもしれないと思っています、そしてこれは私の会社の管理レベルで問題を引き起こしている可能性があります...
final TelephonyManager tm = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
String UDID = tm.getDeviceId();
の正しい呼び方getDeviceId()
です。すべてのデバイスが電話であるとは限らず、一部の電話にはバグがあるため、これは一意の識別子ではない可能性があります。詳細については、この Android デベロッパー ブログの投稿を参照してください。
android の一意の識別子が必要な場合は、単純な google 検索で表示される問題がたくさんあります。CommonsWare が言及したものと同様です。
ただし、一意の識別子を取得することはできます。本当の問題は、何を識別したいかです。ユーザーですか、それともデバイスですか?
特定のユーザーを識別したい場合:
あなたは IMSI 値をしたいです。
final TelephonyManager tm = (TelephonyManager)context`.getSystemService(Context.TELEPHONY_SERVICE);
String UDID = tm.getSubscriberId()
ハードウェアを識別したい場合は、IMEI 値が必要です。
final TelephonyManager tm = (TelephonyManager)context.getSystemService(Context.TELEPHONY_SERVICE);
String UDID = tm.getDeviceId()
現在: プライバシーへの影響が少ないため、 getDeviceID() オプションを使用することをお勧めします。
ただし、さらにステップ イベントを実行して、この値を格納する前にハッシュすることができます。
ただし、適切な値が返されない場合は、ユーザーに電話番号を入力してもらい、SMS で確認するなどの方法をいつでも実行できます。次に、それを識別子として使用します。