码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 系统方向学习总结7--Android 10.0 app获取不到序列号解决方案


    ​
    ​

    活动地址:CSDN21天学习挑战赛

     最近跟着CSDN大佬,参与一个 21天打卡的活动

    Android framework开发者带你参加21天学习挑战赛活动_安卓兼职framework应用工程师的博客-CSDN博客

     今天学习的

    Android 10.0 app获取不到序列号解决方案_安卓兼职framework应用工程师的博客-CSDN博客_android10 获取序列号

    说到SN IMEI1 IMEI2 我想起了几年前遇到的一个问题,当时也写了一个文章总结

    关于安卓系统4.0/5.0/6.0获取单卡手机,双卡手机的imei1,imei2,meid(用反射来实现,史上最详细,最全面获取)--binbinyang_怀化纱厂杨二狗的博客-CSDN博客​

      那时候版本比现在低的多

    让我了解到,现在获取SN的方法 可以用这个了

    1. public String getSN() {
    2. String sn = SystemProperties.get("ro.serialno","unkown");
    3. return sn;
    4. }
    5. 或者
    6. public String getSN() {
    7. String sn = Build.getSerial();
    8. return sn;
    9. }

    10.0定制化开发中,在app开发过程中 会遇到获取系列号 总是返回unknow 的情况  

    路径为:framework/base/services/core/java/com/android/server/os/DeviceIdentifiersPolicyService.java

    通过源码发现 getSerial() 会检验是否有权限 没权限就返回 unknow字符  

    1. public @Nullable String getSerial() throws RemoteException {
    2. // Since this invocation is on the server side a null value is used for the
    3. // callingPackage as the server's package name (typically android) should not be used
    4. // for any device / profile owner checks. The majority of requests for the serial number
    5. // should use the getSerialForPackage method with the calling package specified.
    6. /* if (!TelephonyPermissions.checkCallingOrSelfReadDeviceIdentifiers(mContext,
    7. /* callingPackage / null, "getSerial")) {return Build.UNKNOWN;}/
    8. return SystemProperties.get("ro.serialno", Build.UNKNOWN);
    9. }
    10. @Override
    11. public @Nullable String getSerialForPackage(String callingPackage) throws RemoteException {
    12. /*if (!TelephonyPermissions.checkCallingOrSelfReadDeviceIdentifiers(mContext,
    13. callingPackage, "getSerial")) {
    14. return Build.UNKNOWN;
    15. }*/
    16. return SystemProperties.get("ro.serialno", Build.UNKNOWN);
    17. }
    18. }

    吧这个注释掉就好了

    其实

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

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

    ​

  • 相关阅读:
    Servlet
    【Spring Boot】拦截器使用和常用功能统一封装
    vue - Vue脚手架/TodoList案例
    自动化测试框架 —— pytest框架入门篇
    【矩阵论】4. 矩阵运算——矩阵拉直
    写技术博客的一些心得分享
    重试组件 Spring Retry
    一款能“干掉” ChatGPT 的应用「GitHub 热点速览」
    Node.js C++ 层的任务管理
    redis-5.0.8主从集群搭建、不重启修改配置文件
  • 原文地址:https://blog.csdn.net/yangbin0513/article/details/126395095
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号