本例演示如何通过Intent来打开手机sd卡中的word,pdf文件,这里实际上是通过Intent打开手机中能够阅读word,或pdf的应用,让那个应用来打开文件。而不是我们这个例子本身能够打开文件。
直接上代码:
activity_main.xml:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<Button
android:id="@+id/btn_open_word"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:text="打开word" />
<Button
android:id="@+id/btn_open_pdf"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:layout_below="@+id/btn_open_word"
android:text="打开pdf" />
</RelativeLayout>
MainActivity.java:
public class MainActivity extends Activity {
private static final String TAG = "MainActivity";
private Button btnOpenWord;
private Button btnOpenPdf;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btnOpenWord = (Button)findViewById(R.id.btn_open_word);
btnOpenPdf = (Button)findViewById(R.id.btn_open_pdf);
btnOpenWord.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
File file = new File(getSDPath()+"/***.doc");//这里更改为你的名称
Log.e(TAG, "file exsit:"+file.getPath());
if (file.exists()) {
Uri path = Uri.fromFile(file);
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(path, "application/msword");
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
try {
startActivity(intent);
}
catch (ActivityNotFoundException e) {
Toast.makeText(MainActivity.this,
"No Application Available to View WORD",
Toast.LENGTH_SHORT).show();
}
}
}
});
btnOpenPdf.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
File file = new File(getSDPath()+"/***.pdf");//这里更改为你的名称
Log.e(TAG, "file exsit:"+file.exists());
if (file.exists()) {
Uri path = Uri.fromFile(file);
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(path, "application/pdf");
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
try {
startActivity(intent);
}
catch (ActivityNotFoundException e) {
Toast.makeText(MainActivity.this,
"No Application Available to View PDF",
Toast.LENGTH_SHORT).show();
}
}
}
});
}
/**
* 获取sd卡路径
*
* */
private String getSDPath(){
File sdDir = null;
boolean sdCardExist = android.os.Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState());//判断sd卡是否存在
if(sdCardExist){
sdDir = Environment.getExternalStorageDirectory();//获取目录
}
Log.e(TAG, "sdCard:"+sdDir.toString());
return sdDir.toString();
}
}
在我的机器Nexus s中,能够通过Document Viewer正常打开word和pdf
分享到:
相关推荐
总的来说,Android开发中打开Word和PDF文件的关键在于正确设置Intent的MIME类型,以及正确处理可能存在的无应用可处理的情况。通过这样的方式,我们可以充分利用Android系统的开放性,为用户提供方便的文件操作体验...
- 提供错误处理机制,当用户没有安装能打开Word文件的应用时,提示他们安装。 - 考虑文件大小,大文件可能需要较长加载时间,考虑是否提供进度提示。 以上就是在Android平台上打开Word文档的基本方法和关键知识点...
在Android平台上,处理像Excel、Word和PPT这样的文档以及PDF文件是常见的需求。这个压缩包文件"安卓Excelwordppt文档读写相关-Android插件式打开PDF文件.rar"主要涉及的是Android应用如何以插件化的方式处理PDF文档...
在"Unity中实现文件的打开(视频、图片、pdf、excel、word、ppt等).txt"这个文件中,可能包含了具体实现这些功能的步骤、代码示例或者推荐的第三方库和插件。你可以根据这个文本文件的内容进行更深入的学习和实践。 ...
以下是关于如何使用Intent打开文件的详细说明: 1. **获取文件后缀**: 在Android应用中,识别文件类型通常基于其扩展名(后缀)。为了方便管理,可以在`values`目录下创建一个XML资源文件(如`fileendings.xml`)...
在安卓平台上预览Office文档是一项常见的需求,尤其在企业级应用中,用户可能需要查看、编辑或分享Word、Excel、PowerPoint等格式的文件。本文将深入探讨如何利用TBS(腾讯浏览服务)、AgentWeb、pdfjs以及系统能力...
- 使用`Intent.ACTION_VIEW`可以打开系统默认的应用来查看文件,但这种方式可能无法控制用户体验,且不适用于所有文件类型。 4. **文件流处理**: - 文件可能来自本地存储、网络或其他来源。通过输入/输出流...
2. **链接网页**:利用Intent的另一功能,将用户输入的URI信息转化为链接,打开网页。点击"链接网页"按钮,用户可以输入网站的URL,Intent会根据Uri启动浏览器或者其他能处理HTTP请求的应用。 实验的实现步骤如下:...
在Android模拟器或实际设备上运行,点击相应的按钮尝试打开Excel、Word或PDF文件,确认它们能够正确地由Wps Office打开并进行编辑。 通过以上步骤,你就成功地在Android应用中集成了Wps Office,实现了调用Wps ...
本教程将详细讲解如何在Unity中调用Android系统的功能,特别是如何利用Unity来启动第三方应用,如WPS Office,以便在Android设备上打开并浏览Excel、Word以及PDF等文档。 首先,了解Unity对Android的API调用机制。...
可以利用Android的Intent系统,让其他已经安装的Office应用处理文件。 8. **安全考虑**: 当处理敏感数据时,确保加密和安全存储文件是至关重要的。同时,避免在未经用户许可的情况下访问或修改文件。 综上所述,...
- **第三方库集成**: 对于非PDF格式,可能需要集成其他的第三方库,如Apache POI库用于处理Office文件,或者使用内置的Android Intent系统向其他能打开相应文件的应用发起请求。 3. **权限管理** - **存储访问...