2015-06-03 82 views
4

我希望用戶將一堆視頻/照片導入到我的應用中。這是我以前使用的代碼:從Android上的新Google照片應用獲取照片和視頻

 Intent intent = new Intent(Intent.ACTION_GET_CONTENT); 
     intent.addCategory(Intent.CATEGORY_OPENABLE); 
     intent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, true); 
     intent.setType("image/*,video/*"); 
     activity.startActivityForResult(intent, REQUEST_CODE_PICK_MEDIA); 

我遇到的問題是,上述內容僅返回來自新Google照片應用的照片。如果我只將數據類型更改爲「視頻/ *」,那麼照片應用會返回視頻。這是奇巧+

編輯:

我試過下面的代碼 - 它可以在一些畫廊而不是與大多數,而不是谷歌照片:

Intent intent = new Intent(Intent.ACTION_GET_CONTENT); 
    intent.addCategory(Intent.CATEGORY_OPENABLE); 
    intent.setType("*/*"); 
    if (AndroidHelper.isKitKatAndAbove()) { 
     Log.d(TAG, "Pick from gallery (KitKat+)"); 
     String[] mimeTypes = {"image/*", "video/*"}; 
     intent.putExtra(Intent.EXTRA_MIME_TYPES, mimeTypes); 
     intent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, true); 
     activity.startActivityForResult(intent, REQUEST_CODE_PICK_MEDIA); 
    } else { 
     Log.d(TAG, "Pick from gallery (Compatibility)"); 
     activity.startActivityForResult(intent, REQUEST_CODE_PICK_MEDIA); 
    } 
+0

我被困在同樣的愚蠢的bug(謝謝谷歌)。你有沒有找到解決方案? –

+0

是的,我認爲是,將它作爲回答發佈 – vkislicins

回答

1

這是我落得這樣做:

 Intent intent = new Intent(Intent.ACTION_GET_CONTENT); 
     intent.addCategory(Intent.CATEGORY_OPENABLE); 
     intent.setType("*/*"); 
     if (AndroidHelper.isKitKatAndAbove()) { 
      Log.d(TAG, "Pick from gallery (KitKat+)"); 
      intent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, true); 
      activity.startActivityForResult(intent, REQUEST_CODE_PICK_MEDIA); 
     } else { 
      Log.d(TAG, "Pick from gallery (Compatibility)"); 
      activity.startActivityForResult(intent, REQUEST_CODE_PICK_MEDIA); 
     }   

然後當我得到的結果,我檢查文件的類型。似乎工作正常。

+0

是的,但它是一種破解,因爲我們只想要顯示圖像和視頻,這種方法允許每種類型的文件。不管怎麼說,還是要謝謝你。 –

+1

我同意這有點黑客,因此我沒有發佈它之前:)如果你想出了一個更好的解決方案,請隨時發佈一個答案 - 我不會選擇我自己的答案作爲答案爲這一個。 – vkislicins

+0

那麼,這是目前唯一的解決方案:)謝謝! –