Android 10 适配及具体解决办法,深度好文

<application android:requestLegacyExternalStorage=“true” … >


  1. 推荐方法, 将文件存储到过滤视图中, 此时也不需要申请权限, 但是应用卸载会把文件删除

kotlin:

//图片文件
val file = context.getExternalFilesDir(Environment.DIRECTORY_PICTURES)

//还有以下那么多环境, 根据存储文件类型选择不同环境
var DIRECTORY_ALARMS = “Alarms”
var DIRECTORY_AUDIOBOOKS = “Audiobooks”
var DIRECTORY_DCIM = “DCIM”
var DIRECTORY_DOCUMENTS = “Documents”
var DIRECTORY_DOWNLOADS = “Download”
var DIRECTORY_MOVIES = “Movies”
var DIRECTORY_MUSIC = “Music”
var DIRECTORY_NOTIFICATIONS = “Notifications”
var DIRECTORY_PICTURES = “Pictures”
var DIRECTORY_PODCASTS = “Podcasts”
var DIRECTORY_RINGTONES = “Ringtones”
var DIRECTORY_SCREENSHOTS = “Screenshots”

java:

//图片文件
File file = context.getExternalFilesDir(Environment.DIRECTORY_PICTURES);

//还有以下那么多环境, 根据存储文件类型选择不同环境
public static String DIRECTORY_ALARMS = “Alarms”;
public static String DIRECTORY_AUDIOBOOKS = “Audiobooks”;
public static String DIRECTORY_DCIM = “DCIM”;
public static String DIRECTORY_DOCUMENTS = “Documents”;
public static String DIRECTORY_DOWNLOADS = “Download”;
public static String DIRECTORY_MOVIES = “Movies”;
public static String DIRECTORY_MUSIC = “Music”;
public static String DIRECTORY_NOTIFICATIONS = “Notifications”;
public static String DIRECTORY_PICTURES = “Pictures”;
public static String DIRECTORY_PODCASTS = “Podcasts”;
public static String DIRECTORY_RINGTONES = “Ringtones”;
public static String DIRECTORY_SCREENSHOTS = “Screenshots”;

数据和标识符变更

说明: 从 Android Q 开始,应用必须具有 READ_PRIVILEGED_PHONE_STATE 特许权限才能访问设备的不可重置标识符(包含 IMEI 和序列号, 并且这个权限只有系统app才可以使用, 也就是说在Android Q上已经不能获取DeviceId了

替代方法:

  1. A
  • 21
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值