今天做项目遇到了下载更新APP后自动安装的功能,也就是说当下载之后打开该Apk文件。我们可以通过intent的setDataAndType方法实现,这里列举出更多的打开方式:

我的具体代码实现片段是:

<pre name="code" class="java">Intent intent = new Intent(Intent.ACTION_VIEW);intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); intent.setDataAndType(Uri.fromFile(new File(filePath)),"application/vnd.android.package-archive");startActivity(intent);
  

  

filePath是该文件的绝对路径。

uri要换为你要打开的文件绝对路径,类型是”android.net.Uri“ 参考博主:http://blog.csdn.net/weich_java/article/details/7002829

1.打开所有文件类型

Intent intent = new Intent();    intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);    intent.setAction(android.content.Intent.ACTION_VIEW);intent.setDataAndType(uri,"*/*");
2.打开apk文件

Intent intent = new Intent();    intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);    intent.setAction(android.content.Intent.ACTION_VIEW);    intent.setDataAndType(uri,"application/vnd.android.package-archive"); 
3.打开Video文件

Intent intent = new Intent("android.intent.action.VIEW");  intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);  intent.setDataAndType(uri, "video/*");
4.打开audio文件

Intent intent = new Intent("android.intent.action.VIEW");  intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); intent.setDataAndType(uri, "audio/*"); 

5.打开HTML文件

Uri uri2 = Uri.parse(uri).buildUpon().encodedAuthority("com.android.htmlfileprovider").scheme("content").encodedPath(param ).build();  Intent intent = new Intent("android.intent.action.VIEW");  intent.setDataAndType(uri2, "text/html");
6.打开Image文件

Intent intent = new Intent("android.intent.action.VIEW");  intent.addCategory("android.intent.category.DEFAULT");  intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); intent.setDataAndType(uri, "image/*");
7.打开PPT文件

Intent intent = new Intent("android.intent.action.VIEW");     intent.addCategory("android.intent.category.DEFAULT");     intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);    intent.setDataAndType(uri, "application/vnd.ms-powerpoint");
8.打开Excel文件

Intent intent = new Intent("android.intent.action.VIEW");     intent.addCategory("android.intent.category.DEFAULT");     intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);     intent.setDataAndType(uri, "application/vnd.ms-excel");
9.打开word文件

Intent intent = new Intent("android.intent.action.VIEW");     intent.addCategory("android.intent.category.DEFAULT");     intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);intent.setDataAndType(uri, "application/msword");
10.打开CHM文件

Intent intent = new Intent("android.intent.action.VIEW");     intent.addCategory("android.intent.category.DEFAULT");     intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);intent.setDataAndType(uri, "application/x-chm");
11.打开文本文件

Intent intent = new Intent("android.intent.action.VIEW");     intent.addCategory("android.intent.category.DEFAULT");     intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);intent.setDataAndType(uri1, "text/plain");
12.打开PDF文件

Intent intent = new Intent("android.intent.action.VIEW");     intent.addCategory("android.intent.category.DEFAULT");     intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);intent.setDataAndType(uri, "application/pdf");

有关Intent的知识请移步博客: http://blog.csdn.net/liuhe688/article/details/7162988










更多相关文章

  1. Android(安卓)FFmpeg 编译.so库
  2. Eclipse在线安装ADT等Android插件连接不上的解决方案
  3. Android通话默认打开扬声器
  4. android 模拟器上查看shareperference文件内容
  5. apk、dex、odex梳理
  6. 使用Android(安卓)Studio创建OpenCV 4.1.0 项目
  7. Android(安卓)Studio使用技巧
  8. android下的读写权限
  9. 《Android(安卓)Activity》活动的介绍和创建

随机推荐

  1. android传送照片到FTP服务器
  2. android 软键盘回车变搜索
  3. Android—(提交数据至服务器)
  4. Android(安卓)popupwindow的基本使用
  5. 纯属娱乐,对入门Android有一定的帮助
  6. Android文件拷贝
  7. android使用finish()和System.exit()退出
  8. 处理空列表
  9. android 唤醒和解锁屏幕
  10. Android开发规范