0
如何讓用戶從Android的本地圖庫中選擇,而不是像ASTRO文件管理器那樣的其他圖庫類應用程序?通過intent訪問Android本地圖庫
下面的代碼提供一個活動的列表,可以選擇圖像:
Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
List<ResolveInfo> infos = activity.getPackageManager().queryIntentActivities(intent, 0);
如果我那麼做這樣的事情:
activity.startActivityForResult(Intent.createChooser(intent, "Select Picture"), REQUEST_CHOOSE_IMAGE);
那麼如果用戶有多個應用程序,可以像一個畫廊(如ASTRO文件管理器),他/她會被提示選擇其中的一個,而沒有「設置爲默認」選項。
我不希望每次都提示用戶選擇它們,所以我只想使用本地圖庫。
下面的哈克代碼示例使用白名單來測試已知天然像冊名:
for (ResolveInfo info : infos) {
if ( 0==info.activityInfo.name.compareTo("com.cooliris.media.Gallery")
|| 0==info.activityInfo.name.compareTo("com.htc.album.CollectionsActivity")
) {
// found the native gallery
doSomethingWithNativeGallery();
}
}
感覺有點髒。有沒有更好的辦法?我懷疑我錯過了一些我的意圖。
這不起作用的東西 - 它不會從選擇可能安裝了多個類似圖庫的應用程序 - 也可以使用ASTRO安裝。此外,你不應該直接引用SD卡 - 而是使用Environment.getExternalStorageDirectory() – 2011-02-06 01:05:45