Android11适配

https://developer.android.google.cn/preview/privacy/storage

1.用户权限授权

​ (1)应用请求位置信息、麦克风、摄像头时,系统会弹出“仅限这一次”选项,属于临时授权,下次使用会再次提示用户授权。
​ (2)自动重置未使用应用权限,几个月不使用的应用,被授予的权限自动恢复为重新授权状态。
​ 如果想避免自动被重置权限(如:同步数据、与智能设备通信、与配套设备匹配),可以引导用户Intent跳转到Settings.ACTION_APPLICATION_DETAILS_SETTINGS 进行设置。调用 isAutoRevokeWhitelisted()判断权限是否被授予。
​ (3)读取电话号码相关权限更改

<uses-permission android:name="READ_PHONE_STATE"
                     android:maxSdkVersion="29" />
	     <uses-permission android:name="READ_PHONE_NUMBERS" />

2.存储(分区存储)

​ (1)API30之前可以使用requestLegacyExternalStorage进行适配,默认选用老的存储架构,Android11会自动忽略,会强制执行分区存储策略。
​ (2)preserveLegacyExternalStorage 设置为true,用于数据迁移,可以使应用保留原有的存储模型,只在卸载应用前有效,重新安装应用将启用新模型。系统不建议使用。
​ (3)存储:
​ 外部存储:1.应用私有存储区,android/包名,不需要存储权限即可,随着应用删除而被删除
​ getExternalFilesDir():/storage/emulated/0/Android/data/packname/files
​ getExternalCacheDir():/storage/emulated/0/Android/data/packname/cache
​ 2.MediaStroe: Media.Audio、Media.Video、Media.Images、Media.Downloads, 存储在用户手机上,不随应用删除
​ 3.SD别的目录,使用SAF框架

​ 内部存储:1.sp
​ 2.数据库
​ 3.getFilesDir():/data/user/0/packname/files
​ 4.getCacheDir():/data/user/0/packname/cache

3.Andorid11软件包的可见性(查询设备上的其他应用方式改变)

​ (1)清单文件中配置用来指定要交互或者访问的应用包名或者intent签名。

eg: <queries>
			<package android:name="com.example.store" />
			<package android:name="com.example.services" />
		    </queries>
		   或者
		   <queries>
			<intent>
				<action android:name="android.intent.action.SEND" />
				<data android:mimeType="image/jpeg" />
			</intent>
		   </queries>

​ (2)针对intent隐式打开应用时,为了避免出现ActivityNotFoundException异常,添加捕获异常操作。

 <intent>
		<action android:name="android.intent.action.VIEW" />
		<!-- If you don't know the MIME type in advance, set "mimeType" to "*/*". -->
		<data android:mimeType="application/pdf" />
	     </intent>

​ 并且使用intent时进行显示activity是否可用resolveActivity(),
​ 类似用例参考官方用例:https://developer.android.google.cn/preview/privacy/package-visibility-use-cases

4.Android11前台服务类型

​ (1)Android9开始,应用仅限于在前台访问摄像头和麦克风,Android11改变了在前台服务中访问摄像头和麦克风相关数据的方式,需要在foregroundServiceType 属性中添加新的 camera 和 microphone 类型。

eg: <service ... android:foregroundServiceType="location|camera" />
		    <service ... android:foregroundServiceType="location|camera|microphone" />

5.Scudo Hardened Allocator

​ (1)Android11内部使用的堆分配提供服务,报错提示Scudo ERROR:,可查阅 Scudo 问题排查文档(https://source.android.google.cn/devices/tech/debug/scudo#Troubleshooting)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值