Jud*_*ham 1 obsolete imei xamarin.forms
嗨,我想在我的 Android 设备中获取IMEI 号码。而我能够做到。但我收到过时警告说 ' TelephonyManager.DeviceId' is obsolete:'deprecated'。我正在使用此代码在我的 Android 设备中获取 IMEI 号码
Android.Telephony.TelephonyManager mTelephonyMgr;
mTelephonyMgr = (Android.Telephony.TelephonyManager)Forms.Context.GetSystemService(Android.Content.Context.TelephonyService);
return mTelephonyMgr.DeviceId;
Run Code Online (Sandbox Code Playgroud)
现在我可以通过使用禁用过时的警告
mTelephonyMgr = (Android.Telephony.TelephonyManager)Forms.Context.GetSystemService(Android.Content.Context.TelephonyService);
#pragma warning disable CS0618 // Type or member is obsolete
return mTelephonyMgr.DeviceId;
#pragma warning restore CS0618 // Type or member is obsolete
Run Code Online (Sandbox Code Playgroud)
但是为什么我会收到这个过时的警告?是否有不同的方法来获取 IMEI 号码,我不会收到这个过时的警告?
定义的DeviceId:
Returns the unique device ID, for example, the IMEI for GSM and the MEID or ESN for CDMA phones. Return null if device ID is not available.
Run Code Online (Sandbox Code Playgroud)
什么时候IMEI简单:
IMEI (International Mobile Equipment Identity)
Run Code Online (Sandbox Code Playgroud)
从Android 官方文档看来,DeviceIdAPI 级别 26 已弃用,您应该改用GetMeid(int slotIndex)。在这种情况下,我会检查 API 级别,如果它低于 26,我仍然会使用DeviceId其他方法GetMeid(int slotIndex)。
像这样的东西:
string GetIMEI()
{
Android.Telephony.TelephonyManager mTelephonyMgr = (Android.Telephony.TelephonyManager)Forms.Context.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
#pragma warning disable CS0618 // Type or member is obsolete
return mTelephonyMgr.DeviceId;
#pragma warning restore CS0618 // Type or member is obsolete
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3900 次 |
| 最近记录: |