2

现在我的算法只基于 IMEI。这就是问题所在:某些设备没有无线电模块,因此它们也没有 IMEI 我需要唯一的参数(CPU ID、闪存 ID、MAC 等)来生成 ID,而不使用 IMEI。以及如何使用 Java 获取它们。最好不要root 谢谢

4

5 回答 5

3

用于Build.SERIAL获取安卓设备的唯一序列号。这将返回一个字符串值。在模拟器中,此代码可能会返回字符串“未知”。但是用设备试试。真的行... :)

String id=Build.SERIAL;
于 2012-10-03T12:19:01.537 回答
2

ANDROID_ID

更具体地说,Settings.Secure.ANDROID_ID。这是设备首次启动时生成和存储的 64 位数量。擦除设备时会重置。

ANDROID_ID 似乎是唯一设备标识符的不错选择。有缺点:首先,它在 2.2 之前的 Android 版本(“Froyo”)上不是 100% 可靠的。此外,在主要制造商的流行手机中至少存在一个被广泛观察的错误,其中每个实例都具有相同的 ANDROID_ID。

这可以帮助你

于 2012-10-03T12:15:51.163 回答
1

您可以使用android.os.Build.getSerial()而不是android.os.Build.SERIAL

android.os.Build.SERIAL--> 此字段在 API 级别 O 中已弃用。请改用 getSerial()。来源: https ://developer.android.com/reference/android/os/Build.html

于 2017-06-16T06:06:38.507 回答
0

您可以使用内置的 Setting.secure 来获取设备 ID。在您重置出厂设置之前,此设备 ID 是固定的。

 Settings.Secure.getString(getContentResolver(),Settings.Secure.ANDROID_ID);

这是您设备的唯一 ID,在您重置为出厂设置之前它是稳定的。

于 2012-10-03T12:52:32.313 回答
-2

下面的代码可以帮助您获取设备 ID

 String ts = Context.TELEPHONY_SERVICE;
    TelephonyManager mTelephonyMgr = (TelephonyManager) getSystemService(ts);
    String imsi = mTelephonyMgr.getSubscriberId();
    String imei = mTelephonyMgr.getDeviceId();
于 2012-10-03T12:13:12.787 回答