それは最初のデバイスの起動時に生成されることは知ってandroid.Build.SERIAL
いますが、正確な場所と時期を特定することはできません。AOSP Jelly Bean
、Android タブレット、nosdcard を構築しています。
2 番目の質問: このシリアル番号は、すべてのデバイスで本当に一意ですか?Android
それは最初のデバイスの起動時に生成されることは知ってandroid.Build.SERIAL
いますが、正確な場所と時期を特定することはできません。AOSP Jelly Bean
、Android タブレット、nosdcard を構築しています。
2 番目の質問: このシリアル番号は、すべてのデバイスで本当に一意ですか?Android
このスレッドによると、それは一意であることが明確に示されていますが、API 9 以降に追加されており、すべてのデバイスに存在するわけではありません。
特定のデバイスのモデル用にアプリを作成している場合は、IMEI があるかどうかを直接確認できます。それ以外の場合は、あなたが言ったように、カスタム ID ジェネレーター モジュールを作成することをお勧めします。
ID が一意であり、すべてのデバイスで利用できることを確認してください。
IMEI は、デバイスのシリアル番号を表します。唯一無二であることは間違いない。2 つの異なるデバイスが同じシリアル番号を持つことはできません。
デバイスのシリアル番号を取得するには、次のように電話するだけです。
String serial = Build.SERIAL;
別のアプローチが存在します。を呼び出すことで ID を取得できますSecure.ANDROID_ID
。
デバイスの最初の起動時にランダムに生成され、デバイスの存続期間中一定のままである必要がある 64 ビットの数値 (16 進文字列として)。(デバイスで工場出荷時設定へのリセットが実行されると、値が変更される場合があります。)
private final String ANDROID_ID = Secure.getString(getContext().getContentResolver(),
Secure.ANDROID_ID);
工場出荷時設定にリセットすると、値が変わる可能性があると書かれているので注意してください。