• 笔记-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();

  • 相关阅读:
    PAT1038
    PAT1034
    PAT1033
    PAT1021
    PAT1030
    PAT1026
    PAT1063
    PAT1064
    PAT1053
    PAT1025
  • 原文地址:https://www.cnblogs.com/mqxnongmin/p/10770762.html
Copyright © 2020-2023  润新知