Чтение PDF-файла, хранящегося во внутренней памяти (путь к файлу не действителен) - PullRequest
6 голосов
/ 16 декабря 2011

Я хочу открыть PDF-файл, хранящийся во внутренней памяти ... я пытаюсь передать путь к файлу в Uri .. но он продолжает показывать мне эту ошибку «Путь к файлу не действителен» но я уверен, что ставлю правильный путь ..

    targetFile=new File("/data/data/package Name/app_mydir/test.pdf");

            }

        Intent intent;
        intent = new Intent(Intent.ACTION_VIEW);
        intent.setDataAndType(Uri.fromFile(targetFile), "application/pdf");


               startActivity(intent);

Ответы [ 2 ]

7 голосов
/ 17 декабря 2011

Файлы во внутренней директории вашего приложения по умолчанию являются частными для вашего приложения.Это означает, что ни одно приложение PDF-Reader не может прочитать этот файл (поскольку оно не запускается с pid вашего приложения - разрешение на чтение не предоставляется) .

Вы должны сохранить этот PDF сявные разрешения на чтение для других приложений с использованием флага Context.MODE_WORLD_READABLE.См. документация по хранению данных , как это сделать точно.

Также используйте Context.openFileOutput() и Context.openFileInput() для чтения и записи файлов во внутреннем каталоге (как упомянуто в документах выше) .Не указывайте жесткие пути, подобные этим, они могут измениться.

1 голос
/ 16 декабря 2011

Проверьте вывод

targetFile.exists ();

Если это возвращает true, тогда вы можете пойти иначе, если что-то не так с вашим путем.

...