Android10开发者常见问题(小结)
作者:Android_开发者 发布时间:2023-05-08 10:27:24
Q 1: 指定 SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION 好像并不能隐藏导航栏和状态栏?
A: 您需要告诉系统您希望的布局方式。SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN: 全屏,状态栏浮在应用之上;SYSTEM_UI_FLAG_LAYOUT_STABLE: 将视图保持稳定,使用最极端的布局方式。
setSystemUiVisibility() 仅在所指定的视图可见时生效。更具体来说,所指定的视图必须保持可见才能让导航栏保持隐藏。
Q 2: 加固和热修复方面的优化,有详细文档吗?
A: 这些可能不是大部分开发者所需要接触的特殊功能,而且不同的加固和热修复方案有不同的设计和实现方式。我们已经和多数常用的加固和热修复供应商直接合作,确保他们的解决方案保证最大限度的兼容性和性能。如果您有更具体的问题,请联系您的加固或热修复方案供应商。
Q 3: MAC 地址随机之后,如果路由器设置了 MAC 地址白名单,手机就无法连接上路由器了,这个问题怎么解决?
A: 系统知道真实的 MAC 地址,只是不会报告给应用。您可以在系统的设置界面查看真实的 MAC 地址,并加入路由器的白名单中。
Q 4: Android 10 安全特性变化较大,有能指导开发者的升级适配的技术文档吗?
A: 请参阅Android 开发者官方网站 (特别是隐私加强、行为变更和迁移指南),以及一般的最佳实践。
Q 5: 系统由 Android P 升级到 Android 10 之后的 (非登录) 应用重装,如何追踪用户?
A: 使用 SSAID (Secured Settings Android Id)。在同一个系统用户下,由同一开发者签名密钥签名的应用之间,这个 ID 是一致的。但它会在恢复出厂设置后被改变。
Q 6: 对于一个应用来说,SAF 访问的范围?
A: 在 Android 10 及以前的版本中,当用户同意时应用可以访问任何指定的目录。正如我们此前提到的,在 Android 下一个大版本中,特定的目录将无法被访问。如果这会导致您的应用出现问题,请告诉我们具体的使用案例。
Q 7: 非 SDK 接口限制: 未来多个 Android 版本对这个限制的变更,是否会让开发者难以维护?静态扫描工具未来是否会加入编译流程中?
A: 我们会持续提供非 SDK 接口变化的文档和技术支持。静态扫描工具只需要一行命令即可运行,您可以自行添加一条 postbuild 命令到编译流程中。
Q 8: 设备ID: Android ID 是否能保证各个设备间互相不重复,据公司其他部门统计,Android ID 是有一些重复现象的。
A: 在统计上,Android ID 的重复概率很低。如果您发现两台设备有一样的 ID,请告诉我们设备厂商及型号。
Q 9: 沙箱存储: Android 10 上允许使用路径访问媒体资源,是指通过 ContentResolver 查询的媒体资源信息中的 DATA 列可以使用了吗?
A: DATA 已被弃用,您不应该使用它。如果您想要使用路径访问媒体资源,可以用 java.io.File 这个类。您可以用它来访问属于应用自身的媒体文件,或者应用被授权访问的媒体文件。
Q 10: 目前支持单一/临时授权吗?
A: 目前没有,但我们在考虑提供支持。
Q 11: 权限: 提供授权日志/记录吗?
A: 在什么情况下需要使用?从保护隐私方面考虑,应用不应该获取其他应用的权限请求记录。
Q 12: 屏幕内容访问受到权限限制。截屏功能属于 "屏幕内容访问" 吗?
A: 屏幕内容访问的保护是指一个应用访问另一个应用的屏幕内容。如果这里指的是应用访问自己的绘图缓存 (DrawingCache),则不需要任何特殊权限。
Q 13: 活动探知和录屏,怎么兼容旧版本设备?Android 10 上的限制,是针对 targetApi 为 29 的应用,还是所有运行在 Android 10 上的应用?
A: 请参考此文档,了解活动探知相关的权限和应用的 targetSdkVersion 的关系。
Q 14: 文件存储演讲里提到的下个版本预览,是指 Android 10 的下个小版本吗?
A: 这里指的是下一个主版本。
Q 15: 可折叠设备有没有回调可以知道当前处于折叠模式还是展开模式?
A: 没有,我们希望应用对不同屏幕分辨率的支持更加通用。请使用 onConfigurationChanged,或告诉我们更具体的需求。
来源:https://juejin.im/post/5dd740235188257327682118


猜你喜欢
- 动态参数拼接的查询语句–传入参数类型为自定义数据类型<select id="queryMessageList" p
- 1、SpringBoot介绍SpringBoot本身就是为了简单、快速开发Spring框架项目而生的,在maven的基础上,对已有的mave
- 本文以实例形式讲述了C#泛型的用法,有助于读者深入理解C#泛型的原理,具体分析如下:首先需要明白什么时候使用泛型:当针对不同的数据类型,采用
- 前言Docker旨在提供一种应用程序的自动化部署解决方案,在 Linux 系统上迅速创建一个容器(轻量级虚拟机)并部署和运行应用程序,并通过
- 示例1项目结构代码controller中 UserController.javapackage com.example.demo1110.c
- 没有结果时,去.First()时,会报错,所以一定要先.Count()判断一下而用FirstOrDefault(),如果集合中没有数据,则返
- 我们从jdk8说起。主要是四个随机数生成器。神马?有四个?接下来我们简单说下这几个类的使用场景,来了解其中的细微差别,和api设计者的良苦用
- 简介在上一篇文章中,我们列举了flutter中的所有layout类,并且详细介绍了两个非常常用的layout:Row和Column。掌握了上
- System_Server进程运行在system server进程中的服务比较多,这是整个android框架的基础Native服务Surfa
- 序章简介:bean的加载控制指根据特定情况对bean进行选择性加载以达到适用项目的目标。根据之前对bean加载的八种方式,其中后面四种是可以
- 本文实例为大家分享了Android表格布局TableLayout的具体代码,供大家参考,具体内容如下1.TableLayout TableL
- 背景:当我们有需求将HashMap转为Json格式的String时,切记不要使用HashMap的toString()方法,需要使用FastJ
- 前 言App数据持久化功能是每个App必不可少的功能,而Android最常用的数据持久化方式主要有以下的五种方式:使用SharedPrefe
- 实现常驻通知栏时遇到的问题:无论如何就是不显示通知,查看日志发现貌似报错了:2020-06-28 14:11:34.923 6387-638
- 一、概念和原理RPC(remote procedure call),远程过程调用,是客户端应用和服务端之间的会话。在客户端,它所需要的一些功
- 目前市面上流行的爬虫以python居多,简单了解之后,觉得简单的一些页面的爬虫,主要就是去解析目标页面(html)。那么就在想,java有没
- 在C#中常用到的运算符有条件运算符,is运算符,as运算符,typeof 运算符等等,接下来在文章中将为大家具体介绍各个运算符的使用方法条件
- 前言 之前在做一个Viewpager上面加载多个Fragment时总会实例化已经创建好的Fragmnet对象类似 viewPag
- RocketMQ存储路径默认是${ROCKRTMQ_HOME}/store,主要存储消息、主题对应的消息队列的索引等。1、概述查看其目录文件
- 1.理解全过程1.1.概述需要具备的知识Socket网络编程反向代理的理解平滑加权轮询算法的理解线程池的理解目的:实现Socket 集群服务