【发布时间】:2021-08-20 04:54:39
【问题描述】:
我需要在我的应用程序中使用后台服务一段时间后删除屏幕截图图像文件,并且使用上述方法可以正常工作
private void deleteTheFile(String path) {
File fdelete = new File(path);
if (fdelete.exists()) {
if (fdelete.delete()) {
getApplicationContext().sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, Uri.fromFile(new File(path))));
Log.i(TAG, "deleteTheFile: file deleted");
} else {
Log.i(TAG, "deleteTheFile: file not dellleeettteeeddd");
}
}
但众所周知,android R (11) 带来的变化 所以我尝试用
更新我的应用程序MANAGE_EXTERNAL_STORAGE 权限
但谷歌拒绝了我的更新说
问题:需要使用 Media Store API
您已请求访问所有文件访问权限,但它 您的应用的核心功能似乎只需要访问媒体 文件。使用 MediaStore API,应用程序可以贡献和访问媒体 可以在外部存储卷上使用,而无需 访问所有文件的权限。
请更新您的应用,以便该功能使用 Media Store API 和 删除所有文件访问 (MANAGE_EXTERNAL_STORAGE) 权限。
但我以前从未使用过媒体存储 API,我不知道它是否可以用它删除图像文件,因为删除文件属于可写部分
【问题讨论】:
标签: android file-permissions delete-file mediastore android-11