Android在Base64中打开PDF文件编码

时间:2020-11-01 13:09:31

标签: android pdf base64

我正在尝试在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();
                    }

0 个答案:

没有答案
相关问题