私の最高の質問の1つを見たIs there a unique Android device ID?MarshMallow警告後の一意のAndroidデバイスID「デバイスIDの取得は推奨されていません」
私は一意のIDを取得するために次のコードを使用しました。デバイス識別子を取得するためにはgetStringを使用し
が推奨されていません。
public static String getDeviceId(Activity context) { PermissionsChecker checker = new PermissionsChecker(context); if (checker.lacksPermissions(Manifest.permission.READ_PHONE_STATE)) PermissionsActivity.startActivityForResult(context, 0, REQUIRED_PERMISSION); else { TelephonyManager tm = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE); final String tmDevice = tm.getDeviceId(); final String androidId = Settings.Secure.getString(context.getContentResolver(), Settings.Secure.ANDROID_ID); UUID deviceUuid = new UUID(androidId.hashCode(), ((long) tmDevice.hashCode() << 32)); return deviceUuid.toString(); } return null; }
しかし、私は、次のよう
tm.getDeviceId();
と
Settings.Secure.getString(context.getContentResolver(), Settings.Secure.ANDROID_ID);
にホバー上のいくつかの警告を取得しています。高い値の 不正防止と高度なテレフォニーユースケースの場合以外は、デバイス識別子の使用はお勧めしません。 ユースケースを広告するには、AdvertisingIdClient $ Info#getIdを使用し、アナリティクスについては、 InstanceId#getIdを使用します。
解決策はありますか?それは有害か何か他のものですか?
IMEI番号は一意の識別子として使用できます。そして、これはちょうど今のハッカーのルート電話機としての警告であり、デバイスIDを変更します。 –
復元工場の後で変更されます。私はそれを望んでいない。 –
いいえ、IMEIどんな場合でも変更はありません。 –