PDF-файлы в папке активов в приложении Android - PullRequest
0 голосов
/ 25 февраля 2011

Я отправляю файлы PDF, поместив их в папку assets моего приложения для Android.Я могу прочитать имена файлов, используя AssetManager.Мне нужно отобразить их на экране, и я могу это сделать.Но мне нужно открыть их с помощью pdfviewer.

Чтобы записать намерение в onclick() для каждого элемента, мне нужно передать URI файла PDF.И используя AssetManager я не могу получить URI файла.Есть ли лучший способ справиться со всем этим?

Даже если мы смогли извлечь URI, сможет ли программа просмотра PDF прочитать файл PDF в папке ресурсов?

ОБНОВЛЕНИЕ:
Основываясь на предложении ниже, я написал следующий код

  try {

                Uri path = Uri.parse("android.resource://com.csg.android.myproject/raw/csgsample")  ;
                Intent intent = new Intent(Intent.ACTION_VIEW);
                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();
            }

Он выдает ActivityNotFoundException со следующим сообщением об исключении:

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 }

Я запросил устройство с помощью PackageManager и обнаружил, что установлен Adobe Reader.Но я не уверен, почему он выбрасывает эту ошибку.Я также попытался поместить это в папку assets, а затем изменил URI соответствующим образом и запустил программу, но все равно я получаю ту же ошибку.

1 Ответ

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

Вы можете поместить их в папку res / raw, а затем создать URI ресурсов , чтобы указать на них.Они в форме android.resource://com.example.myapp/raw/my_resource.Что я точно не знаю, так это если другие приложения, такие как программа для чтения PDF, смогут их открывать.Попробуйте!

...