未经运行时许可获取IMEI号码



有没有一种方法可以在不实现运行时权限的情况下获得IMEI(GSM(/MEID(CDMA(?我在安卓系统中包含了以下权限,但对于某些设备,我会获得IMEI号码,对于某些安卓设备,我将获得IMEI编号,对于一些设备,我在Java.Interop.JniEnvironment+InstanceMethods处获得Exception{Java.Lang.SecurityException:getDeviceId。。。为什么我必须在运行时处理权限,尽管在Manifest中列出了这些权限

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);

答案为否,如果您在Marshmallow或更高版本上运行,则需要android.permission.READ_PHONE_STATE权限才能访问设备id。

或者,您可以使用以下代码生成唯一的id-

String uniqueID = UUID.randomUUID().toString();

或者你可以点击下面的链接了解更多选项

设备ID

最新更新