程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> android-如何打開所有格式的文件?

android-如何打開所有格式的文件?

編輯:編程綜合問答
如何打開所有格式的文件?

我想實現一個 browser-like 程序。
我想打開設備能提供的所有的文件格式。
我用的下面的代碼只能打開特殊的格式:

String mimetype = mime_type(FileName);
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.fromFile(File), mimetype);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);

public String mime_type(String name) {
String type = null;
String[] mime = {".htm\ttext/html", ".html\ttext/html", ".doc\tapplication/msword", ".ppt\tapplication/vnd.ms-powerpoint", ".xls\tapplication/vnd.ms-excel", 
                ".txt\ttext/plain", ".pdf\tapplication/pdf", ".xlsx\tapplication/vnd.openxmlformats-officedocument.spreadsheetml.sheet", 
                ".pptx\tapplication/vnd.openxmlformats-officedocument.presentationml.presentation", ".docx\tapplication/vnd.openxmlformats-officedocument.wordprocessingml.document"};
int i;
for(i = 0; i < mime.length; i++) {
if(name.toLowerCase().endsWith(mime[i].split("\t")[0])) {
return mime[i].split("\t")[1];
}
}
return type;
}

文件的格式我不能全部列出來。
是否有什麼方法可以用於所有的格式呢?或者來列出所有的程序讓用戶選擇?

最佳回答:


下面這個方法可以得到所有能打開當前文件的程序集合,遍歷下list就可以得到對應的應用名
List list = getPackageManager().queryIntentActivities(
mimetypeIntent, PackageManager.MATCH_DEFAULT_ONLY);
if (list.size() > 0) {
mimetypeIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
startActivity(mimetypeIntent);
}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved