java ContextCompat。尽管已授予写入外部存储,checkSelfPermission返回1
在电话设置中授予权限。安卓8.0手机
compileSdkVersion 28
minSdkVersion 16
targetSdkVersion 28
舱单有:
<uses-permission 安卓:name="安卓.permission.READ_EXTERNAL_STORAGE" />
<uses-permission 安卓:name="安卓.permission.WRITE_EXTERNAL_STORAGE" />
在我的代码中,此“permissions”变量始终等于-1:
int permissions = ContextCompat.checkSelfPermission(getContext(), Manifest.permission.WRITE_EXTERNAL_STORAGE);
# 1 楼答案
好的,感谢Larry Schiefer提供的运行时权限
考虑到android文档:
link 1 link 2
我对链接2中的方法做了一些更改。在执行某些操作之前,它会检查权限,必要时会要求用户确认,在其他情况下,它会强制设置权限
用法示例:
requestRuntimePermission中的p.S.requestCode参数可用于标识onRequestPermissionsResult回调中允许的权限。(link 3)
# 2 楼答案
从Android 6(API 23)开始,您还必须在运行时请求此权限。此视频可能有帮助:https://youtu.be/WGz-alwVh8A