笔记-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>

//根据包名卸载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
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值