我想打开已经在我的SD卡上下载的pdf文件。但是通过Intent打开该文件时,我发现错误,因为没有找到处理此意图的活动。我想通过pdf阅读器或任何其他方式在我的应用程序中打开pdf。如果可能的话,建议我更好地解决打开pdf的问题。
PackageManager packageManager = getPackageManager();
Intent pdf= new Intent(Intent.ACTION_MAIN);
pdf.addCategory("android.intent.category.LAUNCHER");
pdf.setPackage("com.adobe.reader");
pdf.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
pdf.setDataAndType(Uri.fromFile(pdfPath),"application/pdf");
pdf.setData(Uri.parse( Environment.getExternalStorageDirectory().toString() + "/downloadedfile.pdf"));
请帮助我。
答案 0 :(得分:1)
嘿,我在这里找到了解决方案..我在Adobe pdf阅读器中打开它。如果没有安装adobe reader,我将重定向到google play。
private void viewPdf(Uri file){
Intent intent;
intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(file, "application/pdf");
try{
startActivity(intent);
}catch(ActivityNotFoundException e){
AlertDialog.Builder builder = new AlertDialog.Builder(getApplicationContext());
builder.setTitle("No Application Found");
builder.setMessage("Download from Android Market?");
builder.setPositiveButton("Yes, Please", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
Intent marketIntent = new Intent(Intent.ACTION_VIEW);
marketIntent.setData(Uri.parse("market://details?id=com.adobe.reader"));
startActivity(marketIntent);
}
});
builder.setNegativeButton("No, Thanks", null);
builder.create().show();
}