需求:用户点击PDF文件,打开文件选中PDFDemo打开,PDFDemo自动显示文件的名称,点击文件可选择浏览工具。
要点:
- 在AndroidManifest.xml设置pdf类型监听
- 从传递的pdf文件路径截取文件名称
- 选择手机可以查看pdf文件的APP
效果图展示:
1、用户选择PDFDemo打开PDF文件:
2、PDFDemo接受PDF文件的显示页面:
3、点击图片,选择浏览PDF文件的APP:
要点代码块:
在AndroidManifest.xml中定义:
<activity
android:name="com.slightsnower.pdfdemo.PDFActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.VIEW"/>
<data android:mimeType="application/pdf"/>
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
在PDFActivity中罗列出可以读pdf文件的APP的代码:
接受文件传递的路径的代码:
private void getPDF_FileName() {
Intent intent = getIntent();
if (intent == null) return;
Uri uri = intent.getData();
if (uri == null) {
return;
}
path = uri.getPath();
if (path == null) {
Toast.makeText(getApplicationContext(), "无文件传递", Toast.LENGTH_LONG).show();
} else {
String fileName = path.substring(path.lastIndexOf("/") + 1, path.length());
file_name_tv.setText(fileName);
}
}
罗列出可以打开pdf文件的APP代码:
private Intent getPdfFileIntent(){
Intent intent = new Intent("android.intent.action.VIEW");
intent.addCategory("android.intent.category.DEFAULT");
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
Uri uri = Uri.fromFile(new File(path));
intent.setDataAndType(uri, "application/pdf");
return intent;
}
引用:
Intent intent = getPdfFileIntent();
startActivity(intent);
注:还有其他的一些方法浏览pdf:
- 其实谷歌提供了webview在线浏览pdf文件,噢,需要翻墙——
wv.loadUrl("http://docs.google.com/gview?embedded=true&url="
+path); - 使用第三方的pdf插件