В моем приложении я загружаю pdf в папку «Загрузить» и пытаюсь открыть, используя приведенный ниже код.
String FileName="CardsDecks";
File imagePath = new File(this.getFilesDir(), "Download");
File newFile = new File(imagePath, FileName+ ".pdf");
Uri contentUri = FileProvider.getUriForFile(this, "com.cards.mycards.fileprovider", newFile);
Intent intent =new Intent(Intent.ACTION_VIEW)
.setDataAndType(contentUri, "application/pdf")
.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
Intent intent1 = Intent.createChooser(intent, "Open File");
startActivity(intent1);
Определение провайдера в файле манифеста
<provider
android:name="androidx.core.content.FileProvider"
android:authorities="com.cards.mycards.fileprovider"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/provider_paths" />
</provider>
provider_paths.xml
<paths>
<files-path name="CardsDecks" path="." />
</paths>
Приложение показывает только средство просмотра PDF-файлов и параметры слова, чтобы открыть файл, а не средство просмотра PDF, присутствующее в мобильном телефоне.
когда я нажимаю на средство просмотра PDF-файлов, оно открывается и сразу же закрывается. Я проверил файл в папке загрузки, файл присутствует там с присутствующим в нем содержимым.
пожалуйста, помогите выше.
setFlags
имеет приоритет надaddFlags
. - person StenSoft   schedule 01.01.2020Uri contentUri = FileProvider.getUriForFile(this, "com.cards.mycards.fileprovider", imagePath); Intent intent = new Intent(Intent.ACTION_VIEW) .setDataAndType(Uri.fromFile(imagePath), "application/pdf") .addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
, но получаю сообщение об ошибке java.lang.IllegalArgumentException: не удалось найти настроенный корень, содержащий /storage/emulated/0/Download/CardsDecks.pdf - person Ajinkya kadam   schedule 01.01.2020File imagePath = new File(this.getFilesDir(), "Download"); File newFile = new File(imagePath, FileName+ ".pdf"); Uri contentUri = FileProvider.getUriForFile(this, "com.cards.mycards.fileprovider", newFile);
, то я думаю, что мое приложение пытается открыть pdf, и оно сразу закрывается даже после вводаIntent intent = Intent.createChooser(target, "Open File");
- person Ajinkya kadam   schedule 01.01.2020Failed to find configured root...
. Показать определение поставщика в файле манифеста. Также покажите пути провайдера в файле .xml. (В вашем посте оба. Не в комментариях). - person blackapps   schedule 01.01.2020<paths> <files-path name="files" path="." /> </paths>
- person Ashvin solanki   schedule 01.01.2020