我正在尝试在base64中打开一个PDF文件编码。我想我的道路有问题...您能帮我吗? 在调试模式下,路径似乎并不相同。我尝试了很多事情。 我想在我的应用程序中打开pdf文件。
感谢您的帮助
最终文件newFilePath =新文件(ViePratiqueConseilActivity.this.getFilesDir(),text.get(position).getNom_fichier()); => /data/user/0/com.vivre.saintrenan/files/20200921-CR-conseil-municipal.pdf
FileProvider.getUriForFile(ViePratiqueConseilActivity.this,ViePratiqueConseilActivity.this.getPackageName()+“ .provider”,新File(text.get(position).getNom_fichier())) => content://com.vivre.saintrenan.provider/root/20200921-CR-conseil-municipal.pdf
我看到我的路径不同,但是找不到解决方法。
FileOutputStream fos = null;
try {
if (text.get(position).getDonnees() != null) {
final File newFilePath = new File(ViePratiqueConseilActivity.this.getFilesDir(), text.get(position).getNom_fichier());
fos = new FileOutputStream(newFilePath, false);
//fos = new FileOutputStream(ViePratiqueConseilActivity.this.getApplicationContext().getPackageName());
byte[] decodedPDF = android.util.Base64.decode(text.get(position).getDonnees(), android.util.Base64.DEFAULT);
fos.write(decodedPDF);
fos.flush();
fos.close();
}
} catch (Exception e) {
e.printStackTrace();
} finally {
if (fos != null) {
fos = null;
}
}
Uri path = FileProvider.getUriForFile(ViePratiqueConseilActivity.this, ViePratiqueConseilActivity.this.getPackageName(), new File(text.get(position).getNom_fichier()));
//Uri path = FileProvider.getUriForFile(ViePratiqueConseilActivity.this, ViePratiqueConseilActivity.this.getApplicationContext().getPackageName(), new File(text.get(position).getNom_fichier()));
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(path, "application/pdf");
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
try {
startActivity(intent);
}
catch (ActivityNotFoundException e) {
Toast.makeText(ViePratiqueConseilActivity.this,
"No Application Available to View PDF",
Toast.LENGTH_SHORT).show();
}