2011-11-24 52 views
1

我正在開發允許用戶從圖庫中選擇圖像的應用程序,但我希望能夠在可能的情況下選擇圖像或視頻。檢查設備是否有應用程序從圖庫中選擇「媒體/ *」

到目前爲止,如果我改變:

Intent intent = new Intent(Intent.ACTION_GET_CONTENT); 
intent.setType("image/*"); 

到:

Intent intent = new Intent(Intent.ACTION_GET_CONTENT); 
intent.setType("media/*"); 

選擇從畫廊是不可見的選項,但其他程序顯示出來(如ASTRO)

有沒有什麼方法可以通過程序檢測設備是否有其他程序來選擇媒體/ *,所以我可以選擇我要在意圖中設置的類型?

回答

1

致電PackageManager,意圖瞭解哪些應用程序處理此內容類型。

Intent intent = new Intent(Intent.ACTION_GET_CONTENT); 
intent.setType("media/*"); 
final PackageManager packageManager = getPackageManager(); 
List<resolveinfo> list = packageManager.queryIntentActivities(intent, 0); 

從那裏,你可以檢查列表大小,或者如果列表包含給定的包名稱,並做適當的操作。

+0

在一個相關主題中,我寫了一篇關於[如何挑選默認Twitter客戶端]的博客文章(http://regis.decamps.info/blog/2011/06/intent-to-open-twitter-client -on-android /) – rds

+0

謝謝!有效 :) – SERPRO

相關問題