筆記-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();

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章