是否有一种无需执行运行时权限就可以获得IMEI(GSM)/ MEID(CDMA)的方法?我已在Android中包含以下权限,但是对于某些设备,我会获得IMEI编号;对于某些Android设备,我会获得我的IMEI编号;对于某些设备,我会获得Exception {Java.Lang.SecurityException:Java.Interop.JniEnvironment上的getDeviceId + InstanceMethods ...为什么尽管清单中列出了这些权限,但我仍必须在运行时处理该权限?
var telephonyManager = (TelephonyManager)Forms.Context.GetSystemService(Android.Content.Context.TelephonyService);
if (telephonyManager != null)
{
sIMEI = telephonyManager.DeviceId;
}
[如果除了在运行时授予许可然后获得IMEI之外,没有其他方法可以建议以编程方式为android设备获取唯一ID的最佳方法。 (设备ID也应从设备上看到)我尝试了以下操作,但很少有人建议AndroidId每次都不相同。
var android_id = Android.Provider.Settings.Secure.GetString(Forms.Context.ContentResolver, Android.Provider.Settings.Secure.AndroidId);
答案为否,如果您运行的是棉花糖或更高版本,则需要android.permission.READ_PHONE_STATE
权限才能访问设备ID。
或者,您也可以使用以下代码生成唯一的ID-
String uniqueID = UUID.randomUUID().toString();
或者您可以点击以下链接获取更多选项