中的文件啓動活動我正在開發一個應用程序列出文件夾(在ListView中)的文件。當用戶點擊其中一個項目時,如果它是一個文件,那麼我想啓動一個可以處理它的活動(如果有的話),或者如果沒有則顯示某種錯誤消息。基於Android
我該怎麼做?當然不是全部,但是我怎樣才能確定哪個應用程序可以處理文件(如果有的話)。
中的文件啓動活動我正在開發一個應用程序列出文件夾(在ListView中)的文件。當用戶點擊其中一個項目時,如果它是一個文件,那麼我想啓動一個可以處理它的活動(如果有的話),或者如果沒有則顯示某種錯誤消息。基於Android
我該怎麼做?當然不是全部,但是我怎樣才能確定哪個應用程序可以處理文件(如果有的話)。
基於...
我怎麼能確定哪個應用程序(一個或多個)可以處理一個文件,如果有的話?
我想你想要的是PackageManager.queryIntentActivities你創建一個基於目標文件的意圖,然後讀取返回的列表。
首先,您需要確定文件的MIME類型。您可以使用MimeTypeMap做到這一點:
MimeTypeMap map = MimeTypeMap.getSingleton();
String extension = map.getFileExtensionFromUrl(url); // url is the url/location of your file
String type = map.getMimeTypeFromExtension(extension);
然後,一旦你知道的MIME類型,您可以創建該類型的意圖:
Intent intent = new Intent();
intent.setType(type);
最後,要檢查是否有任何活動可以解決意圖與這種類型。這可以通過PackageManager來完成:
PackageManager manager = getPackageManager(); // I'm assuming this is done from within an activity. This a Context method.
List<ResolveInfo> resolvers = manager.queryIntentActivities(intent, 0);
if (resolvers.isEmpty()) {
// display error
} else {
// launch the intent. You will also want to set the data based on the uri of your file
}
有這個但回答我的問題,所以請仔細檢舉此爲重複之前閱讀其他職位沒有這種特定的,沒有什麼其他很多類似的帖子。 – Gallal 2011-06-14 01:48:00