利用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
相关推荐
elizabethxxy 2020-11-11
CodeAsWind 2020-11-03
Andyshrk 2020-08-29
千锋 2020-08-20
82550495 2020-08-03
demm 2020-07-28
waiwaiLILI 2020-07-20
higher0 2020-07-08
songfens 2020-07-05
hermanncain 2020-06-25
Aleks 2020-06-13
Elmo 2020-06-13
学习进步 2020-06-11
Kwong 2020-06-11
GhostLWB 2020-06-08
xmwang0 2020-06-08
菇星獨行 2020-05-15
ChenRuiyz 2020-05-15