如何解决无法获得对 android 11 中存储目录的运行时权限
我的项目存储目录:/storage/emulated/0/Android/data/myprojectapp
问题:在运行时获取我的项目目录的存储访问权限
在 AndroidManifest.xml 中添加了下面提到的权限
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE" />
检查运行时权限的代码
@Override
public void onCreate(Bundle savedInstanceState){
Log.d(TAG,"onCreate() [IN]");
super.onCreate(savedInstanceState);
if (ContextCompat.checkSelfPermission(this,Manifest.permission.READ_EXTERNAL_STORAGE)
!= PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(this,new String[]{Manifest.permission.READ_EXTERNAL_STORAGE},PERMISSION_READ_EXTERNAL_STORAGE_CONSTANT);
} else {
setMainActivity();
}
}
@Override
public void onRequestPermissionsResult(int requestCode,@NonNull String permissions[],@NonNull int[] grantResults) {
switch (requestCode) {
case PERMISSION_READ_EXTERNAL_STORAGE_CONSTANT: {
// If request is cancelled,the result arrays are empty.
if (grantResults.length > 0 &&
grantResults[0] == PackageManager.PERMISSION_GRANTED) {
Log.d(TAG,"permission granted"); // able to see this is the log as permission granted
setMainActivity();
} else {
Toast.makeText(this,"Need sdcard permissions",Toast.LENGTH_SHORT).show();
}
}
}
}
//After the permssion is granted in runtime below mentioned method is called
private void setMainActivity() {
static final String PKGPUSH_DIR = "/storage/emulated/0/Android/data/myprojectapp";
//checking whether the is writable or not
File directory = new File(Constants.PKGPUSH_DIR);
if(directory.canWrite()){
Log.i(TAG,"set as writable "+directory);
}else{
Log.i(TAG,"Set as not writable"); // always it return the log as set as not writable
}
}
首先在授予运行时权限后未创建目录 有人能告诉我为什么即使在授予运行时权限后也没有创建目录以及为什么它不能访问吗?
是不是因为 Android 11 范围的存储变化:
默认配置{ applicationId“myprojectapp” minSdk 版本 26 目标SDK版本30 }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。