在Android应用程序中打开PDF

我正在开发一个应用程序,需要在设备中打开PDF文件,

实际上,我在网上获得了与大多数示例类似的代码。 但是,问题是我无法打开文件,控件直接进入“Exception”部分。

这是下面的代码:

public class MyPDFDemo extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Button OpenPDF = (Button) findViewById(R.id.button); OpenPDF.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { File pdfFile = new File("/sdcard/Determine_RGB_Codes_With_Powerpoint [PDF Library].pdf"); if(pdfFile.exists()) { 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(MyPDFDemo.this, "No Application available to view pdf", Toast.LENGTH_LONG).show(); } } } }); } 

当我运行这个代码时:我曾经看到“No Application available to view pdf”。 任何人都可以请我查看PDF文件。

Solutions Collecting From Web of "在Android应用程序中打开PDF"

由于您的catch块有ActivityNotFoundException,这意味着您没有任何可以读取“application / pdf”文件types格式的活动/应用程序。 从Android Market安装任何pdf查看器(Adobe最近发布他们的),或者使用上面提到的开源PDF查看器,你的问题很可能将被解决。

http://code.google.com/p/apv/downloads/list

https://market.android.com/details?id=cx.hell.android.pdfview&feature=search_result

当您开始使用给定的参数进行活动时,它会search已注册为打开pdf格式的所有应用程序/活动/意向。 由于您的设备中没有任何设备,因此您将收到ActivityNotFoundException

你的代码是正确的,我也使用相同的代码,在查看器中打开PDF文件。

由于您没有在设备上安装查看器,因此无法在没有任何查看器的情况下打开查看器。

您可以安装Adobe Reader for Android。

我无法在模拟器中打开PDF文件,所以我必须使用我的设备进行testing。

首先在设备上安装pdf阅读器。 比使用此代码从内存中读取PDF文件。

  protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); setSupportActionBar(toolbar); final TextView tv = (TextView)findViewById(R.id.tv); Button bt=(Button)findViewById(R.id.openbtn); bt.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { File pdfFile = new File(Environment.getExternalStorageDirectory(),"Leave.pdf"); if(pdfFile.exists()) { 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){ tv.setText("No Application available to view PDF"); } } else { tv.setText("File not found"); } } }); 

}