21天打卡Andoid学到的一些小知识-第十五十六天

简介: 学习的最大理由是想摆脱平庸 今天我们学习打卡的内容是:Android 10.0 app获取不到序列号解决方案

学习的最大理由是想摆脱平庸

今天我们学习打卡的内容是:Android 10.0 app获取不到序列号解决方案

那直接进入分享:


知识Android 10.0 app获取不到序列号解决方案:

在日常生活10.0定制化开发中,在app开发过程中 会遇到获取系列号总是返回unknow 的情况 即使app是系统内置app 也会出现这样的情况 找寻原因找了好久。


(序列号:序列号也称作“机器码”,为一样物品,一般为电子产品的全球唯一标识码。常用于防伪。最大的特点就是唯一。


序列号就是软件开发商给软件的一个识别码,和人的身份证号码类似,其作用主要是为了防止自己的软件被用户盗用。用户要使用其软件就必须知道序列号。在用户注册或购买产品时生成唯一的识别码,一般称作机器码,也叫认证码、注册申请码等。)


经过多种方法后依然获取不到系统序列号的值,折腾了好几天 都找不到原因 在debug版本可以 但是在user版本不行。


经查询学习过后发现得知是不是DeviceIdentifiersPolicyService的原因 ?


相关修改代码:

public @Nullable String getSerial() throws RemoteException {
// Since this invocation is on the server side a null value is used for the
// callingPackage as the server's package name (typically android) should not be used
// for any device / profile owner checks. The majority of requests for the serial number
// should use the getSerialForPackage method with the calling package specified.
/* if (!TelephonyPermissions.checkCallingOrSelfReadDeviceIdentifiers(mContext,
/* callingPackage / null, "getSerial")) {return Build.UNKNOWN;}/
return SystemProperties.get("ro.serialno", Build.UNKNOWN);
}
    @Override
    public @Nullable String getSerialForPackage(String callingPackage) throws RemoteException {
        /*if (!TelephonyPermissions.checkCallingOrSelfReadDeviceIdentifiers(mContext,
                callingPackage, "getSerial")) {
            return Build.UNKNOWN;
        }*/
        return SystemProperties.get("ro.serialno", Build.UNKNOWN);
    }
}

学习收获:


学习是人这一生永远离不开的主题,然而学什么、怎样学也始终在拷问着每一位在人生旅途中奋力前行的行进者,本次活动中让我对学习有了新的认识。珍惜CSDN的这个打卡活动,去努力的多学习相关自己感兴趣的知识,通过这个平台去不断的提升自己,这样才能在以后的工作中脱颖而出。,只要自己愿意努力,就一定会成功的。



相关文章
Flutter 组件(二)文本 与 输入框组件
Flutter 组件(二)文本 与 输入框组件
781 0
|
人工智能 搜索推荐
StableIdentity:可插入图像/视频/3D生成,单张图即可变成超人,可直接与ControlNet配合使用
【2月更文挑战第17天】StableIdentity:可插入图像/视频/3D生成,单张图即可变成超人,可直接与ControlNet配合使用
553 2
StableIdentity:可插入图像/视频/3D生成,单张图即可变成超人,可直接与ControlNet配合使用
|
Dart 测试技术 开发工具
了解 Flutter 的 Timer 类和 Timer.periodic【Flutter 专题 19】
在构建移动应用程序时,我们经常会遇到必须在一定时间后执行任务的场景。还记得在进入应用程序之前看到闪亮的启动画面吗? 或者我们可能需要一段代码在一段时间后重复执行,比如显示剩余时间限制以填充一次性密码或每秒更改小部件的颜色以创建漂亮的动画。
5924 0
|
Web App开发 缓存 前端开发
【Flutter前端技术开发专栏】Flutter中的性能优化与内存管理
【4月更文挑战第30天】本文探讨了Flutter应用的性能优化和内存管理。关键点包括:减少布局重绘(使用`const`构造函数和最小化依赖),选择合适的动画实现,懒加载和按需加载以提升性能。同时,强调了避免内存泄漏和优化内存使用,利用Flutter提供的性能分析工具。实践案例展示了如何优化ListView,包括使用`ListView.builder`和缓存策略。通过这些方法,开发者可以提升应用的响应性、流畅性和稳定性。
631 0
【Flutter前端技术开发专栏】Flutter中的性能优化与内存管理
|
11月前
|
UED 开发者 容器
Flutter&鸿蒙next 中的 Expanded 和 Flexible 使用技巧详解
在 Flutter 开发中,Expanded 和 Flexible 是两个常用的布局控件,用于管理 UI 布局的空间分配。Expanded 使子组件占据主轴上的所有剩余空间,而 Flexible 允许通过 flex 参数按比例分配空间。掌握两者的区别和使用场景,可以让你在构建复杂 UI 时更加得心应手。
619 1
|
Android开发
Flutter路由跳转参数处理小技巧
Flutter路由跳转参数处理小技巧
168 0
|
容器
flutter GestureDetector 点击空白区域无反应解决办法
flutter GestureDetector 点击空白区域无反应解决办法
290 0
|
存储 缓存 安全
Flutter Dio进阶:使用Flutter Dio拦截器实现高效的API请求管理和身份验证刷新
Flutter Dio进阶:使用Flutter Dio拦截器实现高效的API请求管理和身份验证刷新
1558 0
|
Dart Unix
Flutter 学习 之 时间转换工具类
Flutter 学习之时间转换工具类 在 Flutter 应用程序开发中,处理时间戳是非常常见的需求。我们通常需要将时间戳转换为人类可读的日期时间格式。为了实现这一点,我们可以创建一个时间转换工具类。
444 1
|
缓存 监控 安全
flutter笔记:network_info_plus 模块
flutter笔记:network_info_plus 模块
531 0