在没有运行时权限的情况下获取Imei编号

问题描述 投票:0回答:1

是否有一种无需执行运行时权限就可以获得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 xamarin xamarin.forms xamarin.android imei
1个回答
0
投票

答案为否,如果您运行的是棉花糖或更高版本,则需要android.permission.READ_PHONE_STATE权限才能访问设备ID。

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

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

或者您可以点击以下链接获取更多选项

deviceID

© www.soinside.com 2019 - 2024. All rights reserved.