Android10开发者常见问题(小结)

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,或告诉我们更具体的需求。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • Android仿IOS10圆盘时间选择器

    介绍 这是一款仿IOS10(就寝功能)的圆盘时间选择器 项目演示 实现思路 以720度为一个周期,0~360°对应0~12小时,360°~720°对应12~24小时 这里以"开始时间设置按钮"为例来谈谈它的滑动实现: 将"开始时间设置按钮"作为点A,表盘中心作为点O,手指触摸点作为点P.通过反正切公式可以计算出∠AOP的大小,然后随着手指的位置不断变化去更新点A的位置(即点A的角度). // 坐标系的直线表达式 // 直线l1的表达式子:过钟表中心点和开始控件中心点

  • 解决Android 10/Android Q手机在后台无法正常定位问题

    Android 10 在2019年9月份正式发布,带来了一个非常重大的GPS权限改变.为用户提供了 仅在使用此应用时允许.一旦用户选择"仅在使用此应用时允许",就会导致APP在后台或者锁屏时候无法正常记录GPS轨迹,这个对像滴滴出行.共享单车.跑步软件影响非常的大. 针对这个变化,Google也给出了新的 解决方案. 第一步:升级SDK 修改build.gradle,升级APP的 compileSdkVersion 和 targetSdkVersion. android { compi

  • android 中win10 使用uwp控件实现进度条Marquez效果

    本文将告诉大家,如何做一个带文字的进度条,这个进度条可以用在游戏,现在我做的挂机游戏就使用了他. 如何做上图的效果,实际需要的是两个控件,一个是显示文字 的 TextBlock 一个是进度条. 那么如何让 文字和左边的距离变化?使用 TranslateTransform 看起来 Marquez 的界面就是: <ProgressBar x:Name="Mcdon" Maximum="100" Minimum="0" Value="2

  • Android10开发者常见问题(小结)

    Q 1: 指定 SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION 好像并不能隐藏导航栏和状态栏? A: 您需要告诉系统您希望的布局方式.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN: 全屏,状态栏浮在应用之上:SYSTEM_UI_FLAG_LAYOUT_STABLE: 将视图保持稳定,使用最极端的布局方式. setSystemUiVisibility() 仅在所指定的视图可见时生效.更具体来说,所指定的视图必须保持可见才能让导航栏保持隐藏. Q 2:

  • SpringBoot常见问题小结

     1.在外部tomcat中运行 pom文件中 jar 改成 war,内置tomcat要改成provide <dependency> <groupId>org.apache.tomcat.embed</groupId> <artifactId>tomcat-embed-jasper</artifactId> <scope>provided</scope> </dependency> 启动类改成如下: @Sprin

  • Win7 64位 mysql 5.7下载安装常见问题小结

    1.从官网下载MySQL: 这是我们要找的,win7 64位 点击下载; 出现如图所示,我们不必要登录注册,点击红线内的即可的即可. 2.安装及配置: 然后解压到本机文件夹内: 进入到该目录下,将my-default.ini文件复制一份改名为my.ini 打开my.ini 进行配置 代码:(把里面D:\mysql\mysql-5.6.17-winx64改成你自己的软件路径,保存) [mysql] # 设置mysql客户端默认字符集 default-character-set=utf8 [mysq

  • Android 播放视频常见问题小结

    在android 开发中常见到视频播放的问题,在常规的视频中 有直接用videoView + MediaController 或者 mediaController + serfercie holder 常见的问题 1 在播放中如何处理播放器的横屏切换 和 播放器上的文案显示的布局变化 在activity 中 设置 android:configChanges="orientation|screenSize" 这样在旋转中,activity 就不会重建 重写系统方法 public void

  • Mysql5.7解压版的安装和卸载及常见问题小结

    一.安装 1.下载 到mysql官网 http://dev.mysql.com/downloads/mysql/ 下载mysql 注:msi的是安装版 2.解压 解压到想安装的目录下,我的是D:\mysql-5.7.13-winx64 3.配置my.ini 在D:\mysql-5.7.13-winx64目录下新建my.ini文件,输入以下配置代码: [mysqld] # 设置mysql的安装目录 basedir=D:\mysql-5.7.13-winx64 # 设置mysql数据库的数据的存放目

  • SpringBoot整合mybatis常见问题(小结)

    Spring中常见问题 1.NoSuchBeanDefinitionException 2.'..Service' that could not be found service找不到 3.port 80 was already in use 端口号被占用 4.TemplateInputException 模板解析异常或找不到模板 1.检查模板所在的目录是否与配置的前缀目录相同 2.检查返回的模板是否存在,返回值类型是否一致 3.检查配置前缀时是否以"/"斜杠结尾 4.控制层的url与

  • pycharm中TensorFlow调试常见问题小结

    1. RuntimeError: Attempted to use a closed Session. 在pycharm下调用tensorflow库时,运行出现以下问题: RuntimeError: Attempted to use a closed Session. 解决方法:将STEP=5000开始的程序整体右移,包含在"with"内 可能遇见的问题:python代码如何整体移动 选中代码,按下"Tab"键即可整体右移 选中代码,按下"Shift+Ta

  • React useEffect异步操作常见问题小结

    目录 三个常见的问题: 一.react hooks发异步请求 二.如何在组件加载的时候发起异步任务 三.如果在响应回来之前组件被销毁了会怎样? 四.如何在组件交互时发起异步任务 为什么两种写法会有差异呢? 五.其他陷阱 总结 useEffect 和异步任务搭配使用的时候会遇到的一些坑总结. 三个常见的问题: 1.如何在组件加载的时候发起异步任务 2.如何在组件交互的时候发起异步任务 3.其他陷阱 一.react hooks发异步请求 1.使用useEffect发起异步任务,第二个参数使用空数组可

  • Python asyncio异步编程常见问题小结

    目录 一.asyncio编程简单示例 二.asyncio编程常见问题 三.报错原因及解决方案 今天继续给大家介绍Python相关知识,本文主要内容是Python asyncio异步编程常见问题. 一.asyncio编程简单示例 首先,我们来看一段简单的Python asyncio异步编程代码,相关代码如下所示: import asyncio async def fun(): print(1) await asyncio.sleep(2) print(2) return 3 async def m

  • MySQL无法启动几种常见问题小结

    昨天在群里看到有新同学还在问MySQL无法启动的问题,于是总结了几个常见情况,权当普及帖了,老鸟自觉飞过. 问题1:目录.文件权限设置不正确 MySQL的$datadir目录,及其下属目录.文件权限属性设置不正确,导致MySQL无法正常读写文件,无法启动. 错误信息例如: 复制代码 代码如下: [code] mysqld_safe Starting mysqld daemon with databases from /usr/local/mysql/data /usr/local/mysql/b

随机推荐