Widziałem jedno z moich najlepszych pytań: Is there a unique Android device ID?Niepowtarzalny identyfikator urządzenia z Androidem po ostrzeżeniu MarshMallow "nie zaleca się identyfikatorów urządzeń"?
Użyłem następującego kodu, aby uzyskać unikalny identyfikator.
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;
}
Ale ja dostaję jakieś ostrzeżenie na najechaniu na
tm.getDeviceId();
i
Settings.Secure.getString(context.getContentResolver(), Settings.Secure.ANDROID_ID);
następująco:
Korzystanie getString uzyskać identyfikatory urządzeń nie jest zalecane .
Używanie identyfikatorów urządzeń nie jest zalecane, poza wysokimi wartościami zapobieganie oszustwom i korzystanie z zaawansowanych telefonii. W przypadku reklam przy użyciu przypadków reklamowych należy użyć obiektu AdvertisingIdClient $ Info # getId, a w przypadku analiz należy użyć InstanceId # getId.
Czy istnieje rozwiązanie? Czy to jest szkodliwe, czy cokolwiek innego?
Możesz użyć numeru IMEI jako unikalnego identyfikatora. I to jest po prostu ostrzeżenie, ponieważ teraz dni hacker root telefony i zmienić identyfikator urządzenia. –
To się zmieni po przywróceniu fabryki. Nie chcę tego. –
Nie, IMEI w żadnym wypadku się nie zmieni. –