android10系统手机获取IMSI报错:The user 10116 does not meet the requirements to access device identifiers

这篇具有很好参考价值的文章主要介绍了android10系统手机获取IMSI报错:The user 10116 does not meet the requirements to access device identifiers。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

最近在项目调试中,获取手机的IMSI,IMEI等信息,发现在Android10以下系统的设备上正常,但是在Android10以上系统的设备上报错:The user 10116 does not meet the requirements to access device identifiers

private static String getSimImsi(Context context){
      String simImsi = null;
      try {
         TelephonyManager tm = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
         simImsi = "";
         //在第三方框架被拒的方法返回里面添加判断即可,不然第一次权限申请会报拒绝了该权限,但其实去设置里面看到的是已经给了权限的
         if(!checkPermissionMethod(context, Manifest.permission.READ_PHONE_STATE)) {
            // 执行操作。
            ActivityCompat.requestPermissions((Activity)context, new String[]{Manifest.permission.READ_PHONE_STATE}, 999);
         }
         simImsi = tm.getSubscriberId();
      } catch (Exception e) {
         e.printStackTrace();
      }
      return simImsi;
   }

   private static String getSimIccid(Context context){
      TelephonyManager tm = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
      String simIccid = "";
      try {
         simIccid = tm.getSimSerialNumber();
      } catch (Exception e) {
         e.printStackTrace();
      }
      return simIccid;
   }

   private static String getSimMsion(Context context){
      TelephonyManager tm = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
      String simMsion = "";
      try {
         simMsion = tm.getSimSerialNumber();
      } catch (Exception e) {
         e.printStackTrace();
      }
      return simMsion;
   }

出现该问题的原因如下:

Android 10(API 级别 29)起,您的应用必须是设备,或者个人资料所有者应用,具有特殊运营商许可,或具有特殊的 READ_PRIVILEGED_PHONE_STATE 权限,才可以访问不可重置的设备标识符。

我在调试的时候,将targetSdk设置为32,在AndroidManifext.xml里面增加了READ_PRIVILEGED_PHONE_STATE的配置(这个权限在API29上失效),仍然无法正常获取。

解决办法:

我把targetSdk改为29以下,接口不报异常了,但是可能是我设备原因,获取imsi还是失败了文章来源地址https://www.toymoban.com/news/detail-640607.html

到了这里,关于android10系统手机获取IMSI报错:The user 10116 does not meet the requirements to access device identifiers的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Android打开系统文件管理器,并获取选中文件的路径,适配Android10及以上无法获取路径

    1.进入文件管理器 2.在onActivityResult中获取返回结果 3.FileHelper完整工具类

    2024年02月02日
    浏览(46)
  • DataStage登录报错:Failed to authenticate the current user against the selected Services Tier.

    背景: 近期同事一直在使用DataStage登录查找作业,突然今天无法登陆了。报错:Failed to authenticate the current user against the selected Services Tier. 结论:解决了。 报错处理过程 1.开始第一反应是重装DataStage,毕竟我和另外几个同事的能够正常连接,他那边测试DS节点主机名都可以pin

    2024年01月18日
    浏览(42)
  • 高德地图定位获取不到报错INVALID_USER_SCODE

    在使用时获取不到数据只能得到经纬度, 打印时会报INVALID_USER_SCODE 其实这在官网里提到了,之前没有通篇全读注意 4. 添加成功后,可获取到 key值 和 安全密钥jscode ( 自2021年12月02日升级,升级之后所申请的 key 必须配备安全密钥 jscode 一起使用) 注意:此次升级不会影响之前

    2024年02月09日
    浏览(27)
  • vivado报错 Validation Failed:User configuration exceeds BRAM count in the selected device!

    最近课设,使用vivado调用一个rom的IP,但是报错如上,从网上查阅说是FPGA的资源不够,但是我的资源量肯定是足够的,为此,不得其解,经猜测试验,最终问题是由于给的深度(下图中的Port A Depth)大于存储的数据量太多;将深度减少部分即可;  

    2024年02月14日
    浏览(31)
  • 微信小程序获取是android还是ios,微信小程序-手机操作系统以及微信版本判断

    首先,要判断当前用户的微信版本以及是安卓还是iOS,要调用方法wx.getSystemInfo() 官方文档:https://developers.weixin.qq.com/miniprogram/dev/api/system/system-info/wx.getSystemInfo.html 在获取成功的success方法中,res中包含相关信息,接下来就是做判断: 微信版本判断非常重要,涉及到版本兼容性.更关乎整

    2024年02月15日
    浏览(39)
  • android10.0(Q) MTK 6765 user版本打开root权限

    前言 相比较 Android8.1、9.0 而言,Android10.0 版本 的 root变得相当麻烦,10.0 中引入了动态分区机制,同样的要想完全 adb root,需要 fastboot 解锁,然后关闭 verity 才能 adb remount 成功。我尝试和之前一样修改 fstab.in.mt6765 中的 ro 和 rw 初始值,容易导致无法正常开机,在这耗费了很

    2024年01月25日
    浏览(31)
  • IMEI、IMSI、ICCID是什么?意义和区别?通信模组或手机的唯一识别码

    IMEI:国际移动设备识别码 (International Mobile Equipment Identity)。 由15位数字组成,全球唯一ID,用来区别每一部移动通信设备。与手机是绑定关系。 第一部分 TAC,Type Allocation Code,类型分配码。86为中国。 其余的部分没啥有用信息。 典型IMEI码:868540050954128 IMSI:国际移动用户

    2024年02月20日
    浏览(47)
  • mysql报错解决方式:1449 - The user specified as a definer (‘root‘@‘%‘) does not exist

    创建视图报错:1449-the user specified as a definer(ywsd\\\'0\\\"%\\\" does not exist 从一个数据库数据迁移到本地localhost 程序在调用到数据库的视图时报错,直接在数据库中打开视图时也报错,类似: mysql 1449 : The user specified as a definer (‘root’@‘%’) does not exist 经查询是权限问题,解决办法:

    2024年02月10日
    浏览(31)
  • Android代码异常Calling a method in the system process without a qualified user

    问题原因: 有时候发现,startService或者sendBroadCast会产生此异常: 在没有合格用户的情况下调用系统进程中的方法。 经查,原因是由于系统应用尝试拉起普通应用抛出此异常,可能是在Android 4.2 之后Android引入多用户支持,有些特殊权限启动服务或者发送广播会失败。 如何修

    2024年02月12日
    浏览(31)
  • IMEI、IMSI、ICCID、SN是什么?意义和区别?通信模组或手机的唯一识别码

    最近在做几个4G移动端的产品,初入行门有很多生涩的名词。想获取一个全球唯一ID作为设备后台管理编号,就扯出了 IMEI、IMSI、ICCID、SN 这几个东西。 IMEI IMEI:国际移动设备识别码 (International Mobile Equipment Identity)。 由15位数字组成,全球唯一ID,用来区别每一部移动通信设

    2024年02月11日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包