问题背景:

Android 10+系统获取到的imie号为null,有网上说Android 10+取消了获取IMEI的API,这就直接导致我们的程序相关功能不能再Android10设备上的使用。很多博客写出使用UUID来替换,但是客户要求必须用imei号便于他们管理。

解决方法:

TelephonyManager manager = (TelephonyManager) mContext.getSystemService(Context.TELEPHONY_SERVICE);
Method method = manager.getClass().getMethod("getImei", int.class);
imei = (String) method.invoke(manager, 0);

注意:除了使用上面代码外,需要在AndroidManifest.xml中添加以下关键一句权限,否则获取到的imei号就为空。从 Google Play 商店安装的第三方应用无法声明特许权限。需将应用弄成系统应用才可以声明以下权限。

<uses-permission android:name="android.permission.READ_PRIVILEGED_PHONE_STATE" />

使用解释:

(1)、READ_PRIVILEGED_PHONE_STATE (读取特权电话权限)。

从Android10开始,app必须有此权限才能访问设备不可重置的标识(例如:IMEI、设别序列号)

受影响的方法包括:

  • Build

    • getSerial()
  • TelephonyManager
    • getImei()
    • getDeviceId()
    • getMeid()
    • getSimSerialNumber()
    • getSubscriberId()

参考google官方文档:Android 10 中的隐私权变更  |  Android 开发者  |  Android Developers (google.cn)

(2)、TelephonyManager使用解释

android的后台运行在很多service,它们在系统启动时被SystemServer开启,支持系统的正常工作,比如MountService监听是否有SD卡安装及移除,ClipboardService提供剪切板功能,PackageManagerService提供软件包的安装移除及查看等等,应用程序可以通过系统提供的Manager接口来访问这些Service提供的数据。

getSystemService是Android很重要的一个API,它是Activity的一个方法,根据传入的NAME来取得对应的Object,然后转换成相应的服务对象。TelephoneManager是电话服务。

解决Android 10系统获取不到imei号问题相关推荐

  1. linux系统获取4G模块IMEI号

    如果4G设备正常运行 在终端输入下面命令会得到设备当前的信号 命令:cat /dev/ttyUSB2& //得到: [1] 1563 //得到结果 命令: echo -e "AT+C ...

  2. Android多个imei如何获取,如何在Android 10中获取IMEI号,这是获取在Android 10及以下Android 10中获取IMEI号的代码...

    如何在android 10中获取imei编号,这是获取在android 10及以下android 10中获取imei编号的代码. if (android.os.Build.VERSION.SDK_IN ...

  3. android h5可以获取设备的imei 和iccid_Android10 下获取序列号和IMEI号的权限

    介绍 Android10 因为提高了其安全性能,因此获取序列号和IMEI号的权限与以前的版本有了变化这里就举例Zebra 移动设备Android 10 系统下的如何获取相应权限.运行Android 1 ...

  4. Window 10 使用WSL2下载编译Android 10 系统源码,并用sourceInsight 4 看系统源码

    一.Window 10 安装WSL2 安装教程来自微软官网:https://docs.microsoft.com/zh-cn/windows/wsl/install-win10 步骤 1 - 启用适用 ...

  5. 最新android 手机型号,各大安卓手机厂商Android 10系统更新汇总,你的机型支持吗?...

    原标题:各大安卓手机厂商Android 10系统更新汇总,你的机型支持吗? 对于安卓手机来说系统更新是一件非常好的事情,这意味着手机新增很多功能,同时新系统也能够给用户带来更好的体验.对于谷歌今年9月 ...

  6. android10唯一识别,Android 10 如何获取唯一值?

    floyda: Android 10 如何获取唯一值? 1.自己拼一个 uuid, 这个方法不是谷歌官方给予了设备唯一 ID 最佳做法(至少我在官方文档中找不到), 如果还原出厂设置, uuid 会改 ...

  7. android版本10好不好,一加正式推送Android 10系统 流畅性怎么样

    近日,一加正式推送Android 10系统,不知道流畅性如何呢? 一加官方推特正式宣布Android 10系统已进行阶段性推送,从今天开始一加7和一加7 Pro手机用户将会陆续收到氧OS系统的更新,国 ...

  8. 三星android11推送,三星将在2020年1月开始推送Android 10系统:等太久

    11月27日消息,据了解,三星将于2020年一月起,开始对其旗下设备进行推送Android 10系统.爆料显示,预计将有28款设备在适配名单中出现. 谷歌在上个月表示,许多其他制造商已经承诺在2019 ...

  9. android系统戳,直戳ARM长处 首个RISC-V版Android 10系统顺畅运行

    原标题:直戳ARM长处 首个RISC-V版Android 10系统顺畅运行 平头哥芯片开放社区本周四公布的一段视频显示,安卓10系统(代号Android 10系统)顺畅运行在平头哥玄铁910 RISC ...

最新文章

  1. 首发|机器学习未来十年:你需要把握的趋势和热点
  2. SQL语句中exists和in的区别
  3. angular4 学习日志(一 依赖注入)
  4. elasticdump elasticsearch数据备份与迁移 导入导出
  5. 光绘文件 c语言 解析,AltiumDesigner输出光绘文件
  6. iptables学习笔记:端口转发之“外网访问内网”
  7. hdoj1102 Constructing Roads(Prime || Kruskal)
  8. Hibernate 教程(一)[Hibernate的基本配置]
  9. c语言贪吃蛇设计实验报告引言,C语言实现贪吃蛇游戏设计
  10. aforge java_C#调用AForge实现摄像头录像的示例代码
  11. python批处理删除文件夹中以xxx后缀名结尾的文件
  12. PyQt(Python+Qt)学习随笔:Designer中的QDialogButtonBox的clicked信号参数QAbstractButton *解决办法
  13. 如何快速找回丢失的数据?
  14. 城市数据大脑:小汽车儿堵成翔?NONONO!
  15. javascript进阶面向对象ES6
  16. 微信小程序注册提示邮箱已被占用
  17. 南邮——计算机图像学——光照、冯氏光照模型
  18. RFID门禁系统快速识别车辆管理
  19. PL/SQL连接时-Error while trying to retrieve text for error ORA-12154
  20. 泛微齐业成,一文告诉你如何实现全程数字化的预算管理

热门文章

  1. 【IDEA】Jump to Line插件
  2. matlab怎么与c语言接口,Matlab与C语言程序的应用编程接口 (2)
  3. R语言一元线性模型及结果分析
  4. 矩阵求导的本质与分子布局、分母布局的本质(一)
  5. 《中国当代艺术“价值观” 》 高岭 (一)
  6. Base64编码相关知识总结
  7. 北京轨道交通网将达六环 四环走1公里到地铁
  8. Camtasia2023专业电脑屏幕录像编辑声音软件
  9. 男人消费不如“狗”?那是因为他们有大目光!
  10. 哔哩哔哩老是服务器中断,哔哩哔哩官方回应B站崩了:部分服务器机房发生故障...