我开发了一个应用程序,可以从本地服务器下载pdf发票,并使用默认的pdf查看器查看它。 最初以较小的文件(±20 kB)开始,一切正常。
新的结算周期已经过去,并且有大量文件大小的新发票(±900 kB),现在当我尝试查看它们时,Google pdf查看器,Google云端硬盘PDF查看器会出现TOAST错误无法显示PDF( factura.pdf的格式无效)
我尝试了其他pdf查看器,一些打开的空白PDF,有些卡在加载状态屏幕上。
应用程序在查看之前将PDF下载到外部存储器,奇怪的是如果我尝试从外部存储打开PDF,它确实打开正常,只是在应用程序内部,它没有。所以我知道文件没有损坏并且下载得很好。
要查看该文档,我没有使用任何与众不同的东西:
public void view(View v)
{
File pdfFile = new File(Environment.getExternalStorageDirectory() + "/Facturas/" + "factura.PDF");
Uri path = Uri.fromFile(pdfFile);
Intent pdfIntent = new Intent(Intent.ACTION_VIEW);
pdfIntent.setDataAndType(path, "application/pdf");
pdfIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
try{
startActivity(pdfIntent);
}catch(ActivityNotFoundException e){
Toast.makeText(BuscaFactura.this, "No Application available to view PDF", Toast.LENGTH_SHORT).show();
}
}
注意:Manifest中的所有权限都设置为对外部存储进行读写操作。
当我在一些论坛上阅读时,我尝试了小写和大写扩展,但没有区别。
感谢任何帮助。