我正在尝试在外部SD卡的根目录下创建一个文件夹(然后将我的应用程序生成的文件放入其中(。
我正在征求WRITE_EXTERNAL_STORAGE许可,但我认为在外部SD卡上实际写入是不够的。
这是我的代码:
private boolean authorized = false;
private final static int MY_PERMISSIONS_REQUEST_EXTERNAL_STORAGE = 1;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
long debut = System.currentTimeMillis();
if (ContextCompat.checkSelfPermission(getApplicationContext(), Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
debut = System.currentTimeMillis();
ActivityCompat.requestPermissions(MainActivity.this, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, MY_PERMISSIONS_REQUEST_EXTERNAL_STORAGE);
} else {
authorized = true;
}
while (!authorized) {
if (ContextCompat.checkSelfPermission(getApplicationContext(), Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED) {
authorized = true;
} else if (System.currentTimeMillis() - debut >= 5000) {
this.finish();
System.exit(0);
}
}
//SDCARD path = "/storage/9016-4EF8"
new File("/storage/9016-4EF8"+"/MyApp").mkdirs();
}
我的代码适用于我的手机(安卓 5.1(,但不适用于我的平板电脑(安卓 8.1(。似乎我只有最新版本的安卓的读取权限。如何获得 SD 卡上的写入权限?
我正在使用文件资源管理器应用程序Xplore,并且此应用程序似乎在能够修改SD卡上的文件之前要求其他权限:
"授予Xplore访问SD卡上的数据(包括照片和视频(的权限">
我如何请求此许可(如果可能的话(?
你是对的!如果要访问SD卡,这还不够。您需要使用documentFile
.
请参阅我对有关SD卡的旧问题的回答,以了解如何在此处访问SD卡。