要在Android手机/平板电脑上获取唯一设备ID,我们会使用以下内容:
((TelephonyManager) ctx.getSystemService(Context.TELEPHONY_SERVICE)).getDeviceId()
但对于Kindle Fire,我们无法获得一个。
有什么想法吗?
答案 0 :(得分:4)
您应该尝试使用以下行:
deviceId = Secure.getString(context.getContentResolver(), Secure.ANDROID_ID);
这将从平板电脑获取设备ID,您使用的代码仅适用于手机(它将在平板电脑上返回null
)
答案 1 :(得分:0)
把
<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
从这里开始 - &gt; Is there a unique Android device ID?