Не удается прочитать файл из приложения Android SDCARD - PullRequest
0 голосов
/ 16 октября 2018

Я пытаюсь прочитать файл json с SDCard в телефоне. (SAMSUNG SM-G532M).

Но я не могу.

Я хочу поместить файлв папке «Загрузки», и заставьте приложение искать в этой папке, в частности, для определенного имени файла.

Но я получаю исключение FileNotFoundException.

Когда я отлаживаю приложение, путьотличается от того, что я предполагал.Я получаю "/ storage / emulated / 0", но я хочу прочитать папку загрузки на SDCARD.

Когда я использую это предложение:

ruta_sd = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS);

и я отлаживаю значение,это означает:

 /storage/emulated/0/Download

Когда я пытаюсь перемещаться с помощью Обозревателя файлов устройств, я получаю сообщение "Opendir Failed: Permission Denied"

Что я делаю неправильно?

Я добавил эту строку в манифест.

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE">

</uses-permission>

Примечания: Разработка под Android Studio 3.2 Телефон: Samsung: SM-G532M (не эмулируется)

Заранее спасибо!С наилучшими пожеланиями

1 Ответ

0 голосов
/ 16 октября 2018

Вам необходимо запросить среду выполнения.

public static final int READ_EXTERNAL_STORAGE = 112;


protected void readSDcardDownloadedFiles() {
    if (ContextCompat.checkSelfPermission(this, Manifest.permission.READ_EXTERNAL_STORAGE)
            != PackageManager.PERMISSION_GRANTED) {
        ActivityCompat.requestPermissions(this,
                new String[]{Manifest.permission.READ_EXTERNAL_STORAGE}, READ_EXTERNAL_STORAGE);
    } else {
       //Permission is granted
       //Call the method to read file. 
    }
}

@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
    super.onRequestPermissionsResult(requestCode, permissions, grantResults);
    if (grantResults.length > 0
            && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
        //Read the files
    } else {
        // permission denied, boo! Disable the
        // functionality that depends on this permission.
    }
}
...