一番の質問の 1 つを見ました。固有の Android デバイス ID はありますか?
編集:
Android 10 のソリューションも必要です。
次のコードを使用して、一意の ID を取得しました。
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);
次のように:
getStringを使用してデバイス識別子を取得することはお勧めしません。
デバイス識別子の使用は、価値の高い不正防止や高度なテレフォニーのユースケース以外では推奨されません。広告のユースケースの場合は使用
AdvertisingIdClient$Info#getId
し、分析 の場合は使用しますInstanceId#getId.
解決策はありますか?それは有害ですか、それとも何か他のものですか?