android 10适配

外部存储访问权限

对于以 Android 10 及更高版本为目标平台的应用,文件访问权限会有分区的限制,分为内部存储和外部存储

内部存储: /data 目录。一般我们使用getFilesDir() 或 getCacheDir() 方法获取本应用的内部储存路径,读写该路径下的文件不需要申请储存空间读写权限,且卸载应用时会自动删除。

外部储存:/storage 或 /mnt 目录。一般我们使用getExternalStorageDirectory()方法获取的路径来存取文件。

我们访问不到了sdcard的根目录的路径,但是可以访问一些外部存储中公共的位置

照片、视频、音频这类媒体文件。使用MediaStore 访问,访问其他应用的媒体文件时需要READ_EXTERNAL_STORAGE权限。

适配

可以在清单文件中添加配置,这样就可以不用适配了,但是只是权宜之计吧,以后肯定是要适配的,不如一步到位.

android:requestLegacyExternalStorage="true"来请求使用旧的存储模式。

1.文件

对于文件之前我们都是存放在Environment.getExternalStorageDirectory(),那以后就放在getExternalFilesDir(),或者getExternalCacheDir()即可,这两个位置为我们的沙盒目录,跟随APP的存在而存在,卸载而删除,

2.资源

对于图片,视频等资源,可使用使用MediaStore,将文件存至对应的媒体类型中(图片:MediaStore.Images ,视频:MediaStore.Video,音频:MediaStore.Audio)需要申请权限
READ_MEDIA_IMAGES,READ_MEDIA_VIDEO,READ_MEDIA_AUDIO

后台访问定位

与iOS系统一样,Q中也加入了后台位置权限ACCESS_BACKGROUND_LOCATION,如果应用需要在后台时也获得用户位置(比如滴滴),就需要动态申请ACCESS_BACKGROUND_LOCATION权限。

设备唯一标识符的变更

从 Android Q 开始,应用必须具有 READ_PRIVILEGED_PHONE_STATE
签名权限才能访问设备的不可重置标识符(包含 IMEI 和序列号)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值