android - 如何使用 android xamarin 从我的手机中恢复 IMEI
问题描述
我使用 IMEI = telephonyManager.Imei,但即使我使用了权限 Manifest.Permission.ReadPhoneState,它仍然为空
解决方案
返回唯一的设备 ID,例如,GSM 的 IMEI 和 CDMA 手机的 MEID 或 ESN。如果设备 ID 不可用,则返回 null。
我猜对于没有 sim 卡功能的设备,telephonyManager.getDeviceId() 返回 null。
在这种情况下,我会检查 API 级别,如果它低于 26,我仍然会使用 DeviceId,否则使用 GetMeid(int slotIndex)。
string GetIMEI()
{
Android.Telephony.TelephonyManager mTelephonyMgr = (Android.Telephony.TelephonyManager)GetSystemService(Android.Content.Context.TelephonyService);
if (Build.VERSION.SdkInt >= Android.OS.BuildVersionCodes.O)
// TODO: Some phones has more than 1 SIM card or may not have a SIM card inserted at all
return mTelephonyMgr.GetMeid(0);
else
return mTelephonyMgr.DeviceId;
}
我使用上面的代码,我可以得到 IMEI 号码,我没有任何问题。
推荐阅读
- java - 如果我添加 @Size(min>2) 是否也使用 @NotNull 注释有意义?
- javascript - 当我无法获取 forEach 不是函数时,如何从 Promise 中获取数据?
- javascript - 如何在 CSS 和 HTML 中将动画分层放在另一个动画后面?
- python - Pandas:如何在不同国家爆发不同日期的情况下标准化 COVID-19 数据框
- sql - 将参数字符串传递给存储过程
- php - 将交互式 html 表单连接到 sql 数据库
- html - 寻找一种用三元赋值但没有其他条件的方法
- batch-file - 使用批处理在目录下查找大小为 0 的特定文件夹
- cloud - 为 OCI 上的通用 Windows Server 实例生成密码
- karate - Karate Gatling - How to run Gatling tests using Maven uber jar