Доступ к файлам проекта приложения на платформе Android - PullRequest
0 голосов
/ 24 февраля 2012

Итак, в моем проекте Eclipse для Android у меня есть файл PDF, который я хотел бы открыть, я посмотрел стандартный адрес на странице разработчика Android и нашел следующий указатель:

File file = new File("Android/data/com.alex.testing.app/res/raw/jazz.pdf");

где jazz.pdf находится в res->raw в моем проекте eclipse, а com.alex.testing - это имя моего пакета.

Тем не менее, когда я пытаюсь if(file.exists()), функция возвращает false (в эмуляторе он переходит к другому, которое я настроил для отображения сообщения об ошибке) ...

Извините за вопрос новичка, но я действительно застрял с этим: (.

Ответы [ 3 ]

1 голос
/ 24 февраля 2012

поместите файл в папку активов и выберите файл оттуда

Теперь используйте Context.getAssets().open("jazz.pdf") и передайте полученный InputStream в библиотеку парсера PDf

0 голосов
/ 24 февраля 2012

Хорошо, для доступа к ресурсам из текущего приложения вы можете использовать что-то вроде

Uri path = Uri.parse("android.resource://<you package>/raw/<your_file.pdf>");

OR

Uri path = Uri.parse("android.resource://" + getPackageName() + "/" R.raw.<your_file.pdf>);

Но у меня есть сомнения, если вы пытаетесь использовать этот файл pdf в своем приложении, тогда все в порядке, но если вы хотите просмотреть этот файл с помощью любого стороннего приложения, то, я думаю, вы не сможете это сделать.

Поскольку внешнее приложение не может получить доступ к файлу ресурсов пакета приложения.

Так что лучше поместить этот файл в каталог /asset, затем скопировать его в любую общедоступную область и просмотреть этот файл по этому пути.

0 голосов
/ 24 февраля 2012

// если вы храните в SDcard, ваше местоположение будет

"data/data/com.alex.testing/res/raw/jazz.pdf"

// вы читаете ресурсы из папки raw через приведенный ниже код

InputStream inputStream = getResources().openRawResource(R.raw.jazz);
byte[] reader = new byte[inputStream.available()];
...