为了账号安全,请及时绑定邮箱和手机立即绑定

Android 9 无法在 Android 外部公共路径

Android 9 无法在 Android 外部公共路径

POPMUISE 2023-04-13 10:28:05
我想在 Android 外部公共路径 ( ) 中创建一个目录"storage/emulated/0/MyImages"。该代码在 Android 9 上运行。授予所有在外部存储上写入的运行时权限。试过这样的代码。File dir = new File(Environment.getExternalStorageDirectory() + File.separator + "MyImages");if (!dir.exists) {  dir.mkdirs();}该dir变量具有路径 - "/storage/emulated/0/MyImages"。dir.mkdirs()总是返回false。LogCat 有一个简短的日志:W/System.err: java.io.IOException: No such file or directoryW/System.err: at java.io.UnixFileSystem.createFileExclusively0(Native Method)W/System.err: at java.io.UnixFileSystem.createFileExclusively(UnixFileSystem.java:281)W/System.err: at java.io.File.createNewFile(File.java:1008)
查看完整描述

1 回答

?
哔哔one

TA贡献1854条经验 获得超8个赞

首先,如果是,请检查权限然后调用您的函数来调用 showPhoneStatePermission


在清单中添加权限


<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />


private void showPhoneStatePermission() {

    int permissionCheck = ContextCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE);

    if (permissionCheck != PackageManager.PERMISSION_GRANTED) {

        if (ActivityCompat.shouldShowRequestPermissionRationale(this,Manifest.permission.WRITE_EXTERNAL_STORAGE)) {

            showExplanation("Permission Needed", "Rationale", Manifest.permission.WRITE_EXTERNAL_STORAGE, REQUEST_PERMISSION_WRITE_EXTERNAL_STORAGE);

        } else {

            requestPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE, REQUEST_PERMISSION_WRITE_EXTERNAL_STORAGE);

        }

    } else {

        Toast.makeText(MainActivity.this, "Permission (already) Granted!", Toast.LENGTH_SHORT).show();

    }

}


查看完整回答
反对 回复 2023-04-13
  • 1 回答
  • 0 关注
  • 143 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信