Я отправляю файлы 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 соответствующим образом и запустил программу, но все равно я получаю ту же ошибку.