<application android:requestLegacyExternalStorage=“true” … >
…
- 推荐方法, 将文件存储到过滤视图中, 此时也不需要申请权限, 但是应用卸载会把文件删除
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了
替代方法:
- A