笔记-Android中打开各种格式的文件(apk、word、excel、ppt、pdf、音视频、图片等)
打开后缀.apk的文件,即启动安装程序;
//apkFilePath 文件路径 public void installAPK(String apkFilePath) { // 创建URI Uri uri = Uri.fromFile(new File(apkFilePath)); Intent intent = new Intent(Intent.ACTION_VIEW); // 设置Uri和类型 intent.setDataAndType(uri, "application/vnd.android.package-archive"); // 执行安装 mContext.startActivity(intent); }
/** * 打开多种类型文件 * @param path 文件路径 * @param type 文件类型 */ public void openText(String path , int type){ Intent intent = new Intent(Intent.ACTION_VIEW); intent.addCategory(Intent.CATEGORY_DEFAULT); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); Uri uri = Uri.fromFile(new File(path )); //判断文件类型 if (FILE_TYPE_PPT == type) { intent.setDataAndType(uri, "application/vnd.ms-powerpoint"); } else if (FILE_TYPE_WORD == type) { intent.setDataAndType(uri, "application/msword"); } else if(FILE_TYPE_EXCEL == type){ intent.setDataAndType(uri, "application/vnd.ms-excel"); } else if(FILE_TYPE_TXT == type){ intent.setDataAndType(uri, "text/plain"); } else if(FILE_TYPE_PDF == type){ intent.setDataAndType(uri, "application/pdf"); } else if(FILE_TYPE_HTML == type){ Uri htmluri = Uri.parse(path).buildUpon().encodedAuthority("com.android.htmlfileprovider") .scheme("content").encodedPath(path).build(); intent.setDataAndType(htmluri, "text/html"); } try { activity.startActivity(intent); } catch (Exception e) { Toast.makeText(mContext, "设备中没有安装支持该格式的程序", Toast.LENGTH_SHORT).show(); } }
<pre name="code" class="java"> ////////打开多媒体类型 intent.setDataAndType(uri, "audio/*"); //音频 intent.setDataAndType(uri, "video/*"); //视频 intent.setDataAndType(uri, "image/*"); //图片 intent.setDataAndType(uri, "application/x-chm"); //打开chm文件
////判断文件名是否是某种类型的后缀 private boolean check(final String name, final String[] extensions) { for (String end : extensions) { if (name.toLowerCase().endsWith(end)) { return true; } } return false; } /////////////设置类型 if (check(name, ".apk")){ file.setType(FILE_TYPE_APK); } else if(check(name, ".pdf")){ file.setType(FILE_TYPE_PDF); } else if(check(name, getStringArray(R.array.ppt_filter))){ file.setType(FILE_TYPE_PPT); } ................... array.ppt_filter: <array name="ppt_filter"> <item>.ppt</item> <item>.pptx</item> </array>
//获取设备存储路径(sd卡,usb)
Environment.getExternalStorageDirectory();
Environment.getExternalStorageDirectory().getParent();
笔记-Android中打开各种格式的文件(apk、word、excel、ppt、pdf、音视频、图片等),,5-wow.com
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。