安卓权限WRITE_EXTERNAL_STORAGE和READ_EXTERNAL_STORAGE会触发Android的新授予权限对话框吗?
发布于 2015-10-15 03:07:40
我同意纪尧姆?佩罗的回答。我在写“READ_WRITE_EXTERNAL_STORAGE in AndroidManifest.xml”时也遇到过类似的问题。
默认情况下,由于应用程序中没有显示权限,人们需要将应用程序( permissions.Then I)中存储的切换按钮( targetSdkVersion in build.gradle )切换到小于23(MNC)和与安装有权限的sdkVersion相关的其他数字。
另一种方法是在需要允许的地方编写requestpermission函数。守则如下:
if (checkSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE)==
PackageManager.PERMISSION_GRANTED) {
//do the things} else {
requestPermissions(new String[] { Manifest.permission.WRITE_EXTERNAL_STORAGE },
AnyNumber);因为我的名声还不到15个,所以我不能投票支持纪尧姆·珀罗的answer.Just,用这种方式来表达我的想法。
发布于 2016-10-12 15:53:45
我解决了为Android添加这个检查版本的问题
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
requestPermissions(new String[]{android.Manifest.permission.WRITE_EXTERNAL_STORAGE}, 1);
requestPermissions(new String[]{android.Manifest.permission.READ_EXTERNAL_STORAGE}, 1);
}发布于 2015-08-11 02:50:46
我的答案是基于我在版本2上使用仿真器进行的测试。
如果您的目标是MNC预览API级别,默认情况下不会授予WRITE_EXTERNAL_STORAGE,而是新的动态权限API的一部分。
您将在设备设置中的新应用权限菜单中将存储权限作为切换按钮,您可以使用Activity.requestPermissions显示该权限的弹出。
但是,如果您的目标是api级别< MNC,它将不会被归类为危险的权限,因此将被授予而不需要用户禁用它(没有显示在权限设置中),而且您也无法使用Activity.requestPermissions编译代码,因为预览SDK强制minSdkVersion="MNC"使用新的api。
这是一种与位置权限不同的行为:无论您的API级别是什么,用户都可以在“权限”菜单中关闭位置。
对于权限菜单本身,默认情况下是打开权限切换状态:
否则,默认情况下,您将看到切换被关闭。
希望能帮上忙。
https://stackoverflow.com/questions/31162638
复制相似问题