android打开各种文件格式,笔记-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();

}

}

打开多媒体类型

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:

.ppt

.pptx

//依据包名卸载apk

private void uninstallPkg(String pkg) {

Uri packageURI = Uri.parse("package:"+pkg);

Intent uninstallIntent = new Intent(Intent.ACTION_DELETE, packageURI);

startActivity(uninstallIntent);

//也能够用这样的方法卸载

// getPackageManager().deletePackage(pkg, null, 0);

}

//获取设备存储路径(sd卡,usb)

Environment.getExternalStorageDirectory();

Environment.getExternalStorageDirectory().getParent();

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值