为什么TelephonyManager.getDeviceId()返回仅使用零生成的设备ID?

时间:2017-03-27 11:29:39

标签: android uuid

我想获取我的Android设备的UUID,所以我尝试使用TelephonyManager.getDeviceId()方法获取UUID。但它返回仅使用0(例如000000000000)的设备ID。

这是我的代码。许多代码行用于获取用户权限READ_PHONE_STATE。

公共类MainActivity扩展了AppCompatActivity {

<textarea

}

1 个答案:

答案 0 :(得分:0)

是,因为模拟器没有IMEI号,因此模拟器返回0。 使用它来生成deviceId:

final String tmDevice, tmSerial, androidId;
                tmDevice = "" + tm.getDeviceId();
                tmSerial = "" + tm.getSimSerialNumber();
                androidId = "" + android.provider.Settings.Secure.getString(getAppContext().getContentResolver(),
                        android.provider.Settings.Secure.ANDROID_ID);

                UUID deviceUuid = new UUID(androidId.hashCode(), ((long) tmDevice.hashCode() << 32) | tmSerial.hashCode());

这将为您提供一个独特的deviceId。