1. ホーム
  2. android

[解決済み] AndroidでユニークなデバイスのハードウェアIDを取得する方法は?重複

2022-08-26 03:39:28

質問

Android で、電話機のリセットや OS のアップデートを実行しても変更されない固有のデバイス ID を取得するにはどうしたらよいですか。

どのように解決するのですか?

更新:19 -11 -2019

以下の回答は、現在では関係ありません。

ですから、答えを探している人は、以下のリンク先のドキュメントを見るべきです。

https://developer.android.com/training/articles/user-data-ids


古い回答 - 今は関係ありません。 このブログは以下のリンクからご覧いただけます。

http://android-developers.blogspot.in/2011/03/identifying-app-installations.html

ANDROID_ID

import android.provider.Settings.Secure;

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

上記は、リンク先の@から Android端末の固有IDはありますか?

具体的には、Settings.Secure.ANDROID_ID です。これは、デバイスの初回起動時に生成、保存される 64 ビット量です。 デバイスをワイプしたときにリセットされます。 .

ANDROID_ID はユニークなデバイス識別子として良い選択だと思います。 . しかし、欠点もあります。まず、Android 2.2 ("Froyo") より前のリリースでは、100% 信頼できるものではありません。また、大手メーカーの人気のある携帯電話では、すべてのインスタンスが同じ ANDROID_ID を持つという、少なくとも 1 つの広く観察されたバグがあります。

以下の解決策は良いものではありません。 この値はデバイスのワイプ (「ファクトリー リセット」) にも耐えられるので、顧客の 1 人がデバイスをワイプして別の人に渡したときに、厄介な間違いを犯してしまう可能性があります。 .

以下の方法でデバイスの IMEI 番号を取得します。

  TelephonyManager telephonyManager = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);
  telephonyManager.getDeviceId();

http://developer.android.com/reference/android/telephony/TelephonyManager.html#getDeviceId%28%29

マニフェストに追加します。

<uses-permission android:name="android.permission.READ_PHONE_STATE"/>