我看到了我最好的一个问题是否存在唯一的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
。
有解决方案吗?这会有害或其他什么后果吗?