Файл.listFiles возвращает null, когда он не должен
Я пытаюсь получить список файлов, существующих в папке Phone Pictures (внутренняя память, не вставлена SD-карта), используя это:
File file = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES);
File[] files = file.listFiles();
Но значение файла всегда равно null.
Я также добавляю это к AndroidManifest.xml
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
Любые идеи будут высоко оценены, заранее спасибо.
3 ответов:
Если вы нацелены на Android SDK >=23, вам нужно получить разрешение во время выполнения.
Https://developer.android.com/training/permissions/requesting.html
Он возвращает null, так как
Environment.getExternalStoragePublicDirectoryбудет / должен обрабатывать файлы из внешнего хранилища, например SD card..as вы утверждаете, что sd-карта не вставлена
Как предположил Абхишек Ариан, я использую Android SDK >=23, поэтому мне пришлось получить разрешения с помощью кода:
boolean grantedAll = ContextCompat.checkSelfPermission(Manifest.permission.READ_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED; if (!grantedAll) { ActivityCompat.requestPermissions(thisActivity, new String[]{Manifest.permission.READ_EXTERNAL_STORAGE}, REQUEST_PERMISSIONS); }
Comments