要获得Android手机/平板电脑上的唯一设备ID,我们使用以下命令:
((TelephonyManager) ctx.getSystemService(Context.TELEPHONY_SERVICE)).getDeviceId()
您应该尝试使用以下行:
deviceId = Secure.getString(context.getContentResolver(), Secure.ANDROID_ID);
这将从平板电脑获得设备ID,你正在使用的代码只适用于手机(它将返回null
平板电脑)
put
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
然后试试这个:
public String deviceId;
:
// ------------- get UNIQUE device ID
deviceId = String.valueOf(System.currentTimeMillis()); // --------
// backup for
// tablets etc
try {
final TelephonyManager tm = (TelephonyManager) getBaseContext()
.getSystemService(Main.TELEPHONY_SERVICE);
final String tmDevice, tmSerial, tmPhone, androidId;
tmDevice = "" + tm.getDeviceId();
tmSerial = "" + tm.getSimSerialNumber();
androidId = ""
+ android.provider.Settings.Secure.getString(
getContentResolver(),
android.provider.Settings.Secure.ANDROID_ID);
UUID deviceUuid = new UUID(androidId.hashCode(),
((long) tmDevice.hashCode() << 32) | tmSerial.hashCode());
deviceId = deviceUuid.toString();
} catch (Exception e) {
Log.v("Attention", "Nu am putut sa iau deviceid-ul !?");
}
// ------------- END get UNIQUE device ID
from here ->是否有唯一的Android设备ID?