Каталог не создан в API 29 (Android Q) - PullRequest
1 голос
/ 13 января 2020

Я пытаюсь создать каталог, он работает в более низком API 29, но не работает в API 29. Это мой код в mainActivity:


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);


        if (Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState())) {
            int writePermissionResult = ActivityCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE);

            if (writePermissionResult == PackageManager.PERMISSION_DENIED) {
                String[] permissions = {Manifest.permission.WRITE_EXTERNAL_STORAGE};
                ActivityCompat.requestPermissions(this, permissions, 100);
            }
            else
                createDirectory();
        }
    }

    @Override
    public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
        super.onRequestPermissionsResult(requestCode, permissions, grantResults);
        if (requestCode == 100)
            if (grantResults[0] == 0)
                createDirectory();
    }

    protected void createDirectory() {
        String dirName = Environment.getExternalStorageDirectory().getAbsolutePath() + "/testdir";

        File file = new File(dirName);
        if (!file.exists()) {
            boolean isCreated = file.mkdir();
            Log.i("CLS", "Created ? " + isCreated + "");
        } else
            Log.i("CLS", "Exists ");
    }
}

и использование-разрешения, android:name="android.permission.WRITE_EXTERNAL_STORAGE" Также добавлено в файл манифеста. с помощью этого кода каталог был создан в более низком API, но не работает в API 29. Кто-нибудь может помочь? спасибо.

...