`

利用Intent,打开word,pdf等文件

阅读更多

本例演示如何通过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等文件

    总的来说,Android开发中打开Word和PDF文件的关键在于正确设置Intent的MIME类型,以及正确处理可能存在的无应用可处理的情况。通过这样的方式,我们可以充分利用Android系统的开放性,为用户提供方便的文件操作体验...

    打开word文件

    - 提供错误处理机制,当用户没有安装能打开Word文件的应用时,提示他们安装。 - 考虑文件大小,大文件可能需要较长加载时间,考虑是否提供进度提示。 以上就是在Android平台上打开Word文档的基本方法和关键知识点...

    安卓Excelwordppt文档读写相关-Android插件式打开PDF文件.rar

    在Android平台上,处理像Excel、Word和PPT这样的文档以及PDF文件是常见的需求。这个压缩包文件"安卓Excelwordppt文档读写相关-Android插件式打开PDF文件.rar"主要涉及的是Android应用如何以插件化的方式处理PDF文档...

    wenjian.zip.zip_Unity打开word等_zip

    在"Unity中实现文件的打开(视频、图片、pdf、excel、word、ppt等).txt"这个文件中,可能包含了具体实现这些功能的步骤、代码示例或者推荐的第三方库和插件。你可以根据这个文本文件的内容进行更深入的学习和实践。 ...

    Android编程开发之打开文件的Intent及使用方法

    以下是关于如何使用Intent打开文件的详细说明: 1. **获取文件后缀**: 在Android应用中,识别文件类型通常基于其扩展名(后缀)。为了方便管理,可以在`values`目录下创建一个XML资源文件(如`fileendings.xml`)...

    安卓预览Office文档

    在安卓平台上预览Office文档是一项常见的需求,尤其在企业级应用中,用户可能需要查看、编辑或分享Word、Excel、PowerPoint等格式的文件。本文将深入探讨如何利用TBS(腾讯浏览服务)、AgentWeb、pdfjs以及系统能力...

    android 播放office文件

    - 使用`Intent.ACTION_VIEW`可以打开系统默认的应用来查看文件,但这种方式可能无法控制用户体验,且不适用于所有文件类型。 4. **文件流处理**: - 文件可能来自本地存储、网络或其他来源。通过输入/输出流...

    Android实验报告—网络通信(word文档良心出品).pdf

    2. **链接网页**:利用Intent的另一功能,将用户输入的URI信息转化为链接,打开网页。点击"链接网页"按钮,用户可以输入网站的URL,Intent会根据Uri启动浏览器或者其他能处理HTTP请求的应用。 实验的实现步骤如下:...

    OpenWPS.rar

    在Android模拟器或实际设备上运行,点击相应的按钮尝试打开Excel、Word或PDF文件,确认它们能够正确地由Wps Office打开并进行编辑。 通过以上步骤,你就成功地在Android应用中集成了Wps Office,实现了调用Wps ...

    zouxin.rar

    本教程将详细讲解如何在Unity中调用Android系统的功能,特别是如何利用Unity来启动第三方应用,如WPS Office,以便在Android设备上打开并浏览Excel、Word以及PDF等文档。 首先,了解Unity对Android的API调用机制。...

    Android office

    可以利用Android的Intent系统,让其他已经安装的Office应用处理文件。 8. **安全考虑**: 当处理敏感数据时,确保加密和安全存储文件是至关重要的。同时,避免在未经用户许可的情况下访问或修改文件。 综上所述,...

    Android-DocumentPreview-Util:Android world,pdf 等文档预览

    - **第三方库集成**: 对于非PDF格式,可能需要集成其他的第三方库,如Apache POI库用于处理Office文件,或者使用内置的Android Intent系统向其他能打开相应文件的应用发起请求。 3. **权限管理** - **存储访问...

Global site tag (gtag.js) - Google Analytics