1、由于我们工厂smt需要显示imei号,因此需要
2、查阅相关资料Android O(之后)Android 10之后进行限制
3、通过反射获取 imei号
/**
* 反射获取 deviceId
*
* @param context
* @param slotId slotId为卡槽Id,它的值为 0、1;
* @return
*/
public static String getDeviceIdByReflect(Context context, int slotId) {
try {
TelephonyManager tm = (TelephonyManager) context.getApplicationContext().getSystemService(Context.TELEPHONY_SERVICE);
Method method = tm.getClass().getMethod("getImei", int.class);
return method.invoke(tm, slotId).toString();
} catch (Throwable e) {
}
return "";
}
4、通过 TelephonyManager 中getImei()方法获取
/**
* getImei获取 deviceId
*
* @param context
* @param slotId slotId为卡槽Id,它的值为 0、1;
* @return
*/
public static String getDeviceIdByGetImei(Context context, int slotId) {
try {
TelephonyManager tm = (TelephonyManager) context.getApplicationContext().getSystemService(Context.TELEPHONY_SERVICE);
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O) {
@SuppressLint("MissingPermission") String imeiNum = tm.getImei();
}
// Method method = tm.getClass().getMethod("getImei", int.class);
//
// return method.invoke(tm, slotId).toString();
} catch (Throwable e) {
}
return "";
}
5、结果 获取imei号 如下图所示
6、到这里基本结束了,转载请注明出处,谢谢
7、记得添加系统权限 否则获取imei号可能会为null
android:sharedUserId="android.uid.system"
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)