首页 > 解决方案 > 如何使用 android xamarin 从我的手机中恢复 IMEI

问题描述

我使用 IMEI = telephonyManager.Imei,但即使我使用了权限 Manifest.Permission.ReadPhoneState,它仍然为空

标签: androidxamarin

解决方案


TelephonyManager.DeviceId

返回唯一的设备 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 号码,我没有任何问题。


推荐阅读