我看到了我最好的问题之一是否有唯一的 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.
有什么解决办法吗?是有害的还是别的什么?