2017-09-02 91 views
0

我想給用戶選擇多個圖像的選項。這是我的代碼,以便讓用戶選擇想要的畫廊,並從那裏挑選圖片:試圖從三星的圖庫中挑選圖像

public void pickImages() { 

     Intent intent = new Intent(Intent.ACTION_PICK, 
       android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI); 
     intent.setType("image/*"); 
     intent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, true); 

     startActivityForResult(Intent.createChooser(intent,"Select Picture"), PICK_IMAGE_MULTIPLE); 
    } 

當我點擊pickImages按鈕,我可以在默認的畫廊之間的這種情況下選擇,就像 - 三星,或谷歌的照片等...

當我選擇谷歌照片庫,我可以選擇照片,但在同一設備(三星Galaxy S6邊緣),我選擇三星的畫廊,我不能即使只選一張照片,這只是他們的一個展示,無論我點擊一張照片多久,它都不會改變。

當我從他們的發射器進入三星的畫廊時,顯示屏會有所不同,並且我可以長按以選擇圖像。

我也檢查過小米的默認畫廊,它的工作,我可以選擇照片。

我該如何改變它並打開正確的畫廊展示?

回答

1

這是我的代碼,以便讓用戶選擇想要的畫廊,並從那裏

首先,沒有什麼是有很大的一個「畫廊」的代碼挑圖片。任何數量的應用程序都可以響應該結構,而這些應用程序不必是「畫廊」。

其次,ACTION_PICK不應指定MIME類型。見the documentation

三,ACTION_PICK不支持EXTRA_ALLOW_MULTIPLE。見the documentation

我選擇三星的畫廊後,我不能選擇,甚至一張照片,這只是他們的顯示,無論多久,我點擊一張照片,它不會改變

第一,並不要求所有應用都支持長時間點擊內容。

其次,長按模式通常只與多選情況相關,並且ACTION_PICK不支持多選。

但是,您在三星的應用程序中看到一個真正的錯誤是完全可能的。

我怎樣才能改變它

嗯,你可以清理ACTION_PICKIntent您正在使用(去掉setType()putExtra()電話),看看有沒有改變任何東西。

或者,您可以切換到ACTION_GET_CONTENT,這確實使用setType()確實有支持EXTRA_ALLOW_MULTIPLE的潛力。沒有要求任何ACTION_GET_CONTENT實施支持EXTRA_ALLOW_MULTIPLE,並且您不會使用UriMediaStore.Images.Media.EXTERNAL_CONTENT_URI)。或者,向三星抱怨應用程序中的錯誤。

打開正確的畫廊顯示?

沒有「正確的畫廊顯示」。什麼處理特定的隱含的IntentACTION_PICK,ACTION_GET_CONTENT)對於用戶,其次是設備製造商。你沒有得到一票。

您可以隨時構建自己的畫廊式圖像選擇UI。這會讓你在各種設備上獲得一致的結果,但這將是更多的工作。

+0

感謝您的詳細解答。沒有任何建議對我有用,所以我想這是一個錯誤。只是爲了記錄,他們確實有一個選項可以長時間點擊選擇他們的應用程序,而不是從我的應用程序打開的顯示中。 –