未经运行时权限获取IMEI号
Getting IMEI number without runtime permission
有没有办法在不实施 运行 时间许可的情况下获取 IMEI(GSM)/MEID(CDMA)?
我在 Android 中添加了以下权限,但是对于某些设备,我获得了 IMEI 编号,对于某些 Android 设备,我获得了我的 IMEI 编号,对于某些设备,我获得了异常 {Java.Lang.SecurityException : 在 Java.Interop.JniEnvironment+InstanceMethods 处获取设备 ID...
为什么我必须在 运行 时间内处理权限,尽管它们已在清单中列出?
var telephonyManager = (TelephonyManager)Forms.Context.GetSystemService(Android.Content.Context.TelephonyService);
if (telephonyManager != null)
{
sIMEI = telephonyManager.DeviceId;
}
如果除了在 运行 时间授予权限然后获取 IMEI 之外别无他法,有人可以建议以编程方式获取 android 设备唯一 ID 的最佳方法。 (设备 ID 也应该从设备中看到)
我尝试了以下但很少有 post 提示 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();
或者您可以按照以下 link 了解更多选项
有没有办法在不实施 运行 时间许可的情况下获取 IMEI(GSM)/MEID(CDMA)?
我在 Android 中添加了以下权限,但是对于某些设备,我获得了 IMEI 编号,对于某些 Android 设备,我获得了我的 IMEI 编号,对于某些设备,我获得了异常 {Java.Lang.SecurityException : 在 Java.Interop.JniEnvironment+InstanceMethods 处获取设备 ID...
为什么我必须在 运行 时间内处理权限,尽管它们已在清单中列出?
var telephonyManager = (TelephonyManager)Forms.Context.GetSystemService(Android.Content.Context.TelephonyService);
if (telephonyManager != null)
{
sIMEI = telephonyManager.DeviceId;
}
如果除了在 运行 时间授予权限然后获取 IMEI 之外别无他法,有人可以建议以编程方式获取 android 设备唯一 ID 的最佳方法。 (设备 ID 也应该从设备中看到) 我尝试了以下但很少有 post 提示 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();
或者您可以按照以下 link 了解更多选项