来自Android文档,https://developer.android.com/training/data-storage/manage-all-files#all-files-access
应用程序可以通过以下方式请求用户的全部文件访问权限:
在清单中声明 MANAGE_EXTERNAL_STORAGE 权限。
使用 ACTION_MANAGE_ALL_FILES_ACCESS_PERMISSION 意图操作将用户引导到系统设置页面,在该页面上,用户可以为您的应用启用“允许访问所有文件”的选项。
我尝试过的
我知道唯一请求权限的方法是使用 ActivityCompat
。我已经尝试了以下代码:
ActivityCompat.requestPermissions(this, new String[]{Settings.ACTION_MANAGE_ALL_FILES_ACCESS_PERMISSION},1);
和
ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.MANAGE_EXTERNAL_STORAGE},1);
但两者都没有任何反应。
Android文档很全面,但对新手不太友好。我理解意图操作,并且知道它们可用于在活动之间切换,但我不知道“意图操作”是什么以及如何使用它来请求权限。
startActivity(new Intent(Settings.ACTION_MANAGE_ALL_FILES_ACCESS_PERMISSION, foo));``` 但是遇到了致命错误,```Caused by: android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.settings.MANAGE_ALL_FILES_ACCESS_PERMISSION dat=package:com.example.storagecleaner }```。
- Chris AACTION_MANAGE_APP_ALL_FILES_ACCESS_PERMISSION
,而不是ACTION_MANAGE_ALL_FILES_ACCESS_PERMISSION
。我在我的应用程序中进行了更改,效果非常好 :) - Chris AAPPLICATION_ID
已被弃用,请将BuildConfig.APPLICATION_ID
替换为BuildConfig.LIBRARY_PACKAGE_NAME
。 - Fahad AlduraibiAPPLICATION_ID
对于应用程序模块仍然有效。 - CommonsWare