чтение файла в ресурсах или сырой папке в Android - PullRequest
1 голос
/ 25 февраля 2011

Я должен отправить PDF-файлы вместе с моим приложением и отобразить их в виде списка, и при нажатии каждый из них должен открыться в Adobe Reader. Я попытался поместить файлы PDF в папку / assets также в папку / res / raw. Но в любом случае я сталкиваюсь с исключением ActivityNotFound. Код и сообщение об исключении приведены ниже.

Размещение файла в папке / assets / pdf

try {
            files = amanager.list("pdf");
            //AssetFileDescriptor fd = amanager.openFd(files[0]);
            Uri path = Uri.parse("android.resource://com.csg.android.myproject/assets/pdf/csgsample")  ;
            Intent intent = new Intent(Intent.ACTION_VIEW);
            intent.setPackage("com.adobe.reader");
            intent.setDataAndType(path, "application/pdf");
            intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

            try {
                startActivity(intent);
            }
            catch (ActivityNotFoundException e){
                Toast.makeText(FirstTab.this, "NO Viewer", Toast.LENGTH_SHORT).show();
            }


        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

Размещение файла в папке / res / raw

Uri.parse("android.resource://com.csg.android.myproject/raw/csgsample")  ;

Исключение:

android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.VIEW dat=android.resource://com.csg.android.myproject/assets/pdf/csgsample typ=application/pdf flg=0x4000000 pkg=com.adobe.reader }

Любая помощь будет принята с благодарностью.

Заранее спасибо, Навин

Ответы [ 3 ]

2 голосов
/ 25 февраля 2011

Если вы получаете ActivityNotFoundException, это потому, что нет приложения для обработки такого рода контента. Так что в этом случае я уверен, что Adobe Reader установлен.

Кроме того, я думаю, что вы должны скопировать файл на SDCard, чтобы другие приложения могли получить к нему доступ. Они не могут получить доступ к вашим личным данным напрямую из соображений безопасности.

0 голосов
/ 01 декабря 2011

У меня та же проблема, но я должен отметить, что именно так я открываюсь по идентификатору ресурса

Uri.parse("android.resource://com.csg.android.myproject/" + R.raw.csgsample);
0 голосов
/ 27 сентября 2011

Я думаю, что ресурсы и необработанные файлы доступны для просмотра только вашим приложением.Сторонние приложения (в комплекте или нет) не могут получить доступ к этим файлам.Сначала вы должны поместить свои файлы в SD-карту устройства, прежде чем открывать их.

...