내 최고의 질문 중 하나를 보았습니다 Is there a unique Android device ID?MarshMallow 경고 후 고유 한 Android 기기 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 어떤 경우에도 변경되지 않습니다. –