Android 获取设备IMEI号的奇怪问题
我在android中使用以下代码来获取手机的IMEI号码Android 获取设备IMEI号的奇怪问题,android,imei,Android,Imei,我在android中使用以下代码来获取手机的IMEI号码 TelephonyManager telephonyManager = (TelephonyManager)getSystemService(this.TELEPHONY_SERVICE); String imei = telephonyManager.getDeviceId().toString(); 我已经在很多手机上测试过了 1) 三星王牌(froyo) 2) 银河系 3) S2星系 4) 三星Geo(姜饼) 工作
TelephonyManager telephonyManager = (TelephonyManager)getSystemService(this.TELEPHONY_SERVICE);
String imei = telephonyManager.getDeviceId().toString();
我已经在很多手机上测试过了
1) 三星王牌(froyo)
2) 银河系
3) S2星系
4) 三星Geo(姜饼)
工作完美,并给出IMEI编号
但在以下设备上运行相同的代码时,我什么也得不到:(
安卓Pantech
有谁能告诉我会出现什么问题,或者如果我使用Device_ID来唯一标识android设备,这对所有设备都有效吗
还有一件事我在论坛上读到过,它有时是空的,很少有著名的设备提供相同的设备ID
有人指出,唯一识别设备的最佳方法是什么,并且这段代码应该适用于所有设备
任何帮助都将不胜感激。没有sim卡的设备没有IMEI号码。 您可以读取WIFI-MAC地址(假设每个android设备都有WIFI) 有人指出,唯一识别设备的最佳方法是什么,并且这段代码应该适用于所有设备
不幸的是,没有100%完美的方法来识别Android设备。这是因为谷歌没有提供一个可靠的方法。相反,它建议跟踪应用程序安装(相对于跟踪设备)。这里有一个很好的说法:。在我的想法中,我创建了一个逻辑来获得所有设备的独特价值。 请看看这个,如果失败了请纠正我。 我在10-20台设备上进行了测试,并尝试安装相同的rom。我得到了唯一的值,并且在刷新新的rom之后,该值也是相同的。 以下是获取唯一值的方法:
public static String getDeviceId(Context context) {
final TelephonyManager tm = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
final String tmDevice, tmSerial, androidId;
tmDevice = "" + tm.getDeviceId();
tmSerial = "" + tm.getSimSerialNumber();
androidId = ""
+ android.provider.Settings.Secure.getString(context.getContentResolver(), android.provider.Settings.Secure.ANDROID_ID);
UUID deviceUuid = new UUID(androidId.hashCode(), ((long) tmDevice.hashCode() << 32) | tmSerial.hashCode());
String deviceId = deviceUuid.toString();
return deviceId;
/*Below line fails on android 4.4 devices sometime so i made the above lines*/
// return Secure.getString(activity.getContentResolver(), Secure.ANDROID_ID);
}
公共静态字符串getDeviceId(上下文){
final TelephonyManager tm=(TelephonyManager)context.getSystemService(context.TELEPHONY_服务);
最终字符串tmDevice、tmSerial、Android;
tmDevice=”“+tm.getDeviceId();
tmSerial=”“+tm.getSimSerialNumber();
Android=“”
+android.provider.Settings.Secure.getString(context.getContentResolver(),android.provider.Settings.Secure.android_ID);
UUID deviceUuid=新的UUID(android.hashCode(),((long)tmDevice.hashCode()是的。所有设备(计算机、设备等)的每个MAC地址都是唯一的。我们如何获得android和ios设备的wifi地址/id我想知道它,因为Pandroid_id是唯一且不变的答案:)ANDROID_ID将在用户刷新设备时更改,并且可能在操作系统升级时更改。很抱歉现在发布此信息。