2013-04-07 7 views
5

मेरी परियोजना में मैं एक बटन पर एक गैलरी खोलना चाहता हूं और उन्हें पथ प्राप्त करने के लिए छवि या वीडियो चुनने में सक्षम होना चाहिए।एंड्रॉइड- खुली गैलरी और छवि और वीडियो चुनें

Intent i = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI); 

startActivityForResult(i, RESULT_LOAD_IMAGE); 

उपरोक्त कोड से मैं गैलरी खोलने में सक्षम हूं लेकिन इस मामले में मैं केवल छवि चुनने में सक्षम हूं। तो, कृपया वीडियो चुनने में मेरी मदद करें। अग्रिम धन्यवाद।

उत्तर

7

कोड नीचे मेरी समस्या हल

final Intent galleryIntent = new Intent(Intent.ACTION_GET_CONTENT); 
         galleryIntent.setType("*/*"); 
         startActivityForResult(galleryIntent, RESULT_LOAD_IMAGE); 
+2

यह एक खराब समाधान है जो कुछ भी फ़िल्टर नहीं करता है, आप एक पीडीएफ चुन सकते हैं ... – desgraci

+1

दरअसल, आपको KILA के उत्तर को – akohout

14

आप अगले स्निपेट का उपयोग कर सकते हैं:

Intent mediaChooser = new Intent(Intent.ACTION_GET_CONTENT); 
//comma-separated MIME types 
mediaChooser.setType("video/*, image/*"); 
startActivityForResult(mediaChooser, RESULT_LOAD_IMAGE); 

लेकिन मुझे लगता है कि यह केवल आईसीएस पर काम या बड़ा

+5

6.0 पर "छवियों/*" –

+6

के बजाय "छवि/*" होना चाहिए, यह केवल वीडियो को – Danedo

+0

चुनने की अनुमति देता है, कम से कम एंड्रॉइड या Google फ़ोटो ऐप के नए संस्करणों के लिए यह टूटा हुआ प्रतीत होता है। ऐसा लगता है कि अल्पविराम से अलग सूची में केवल पहला माइम प्रकार पहचाना जाता है। – lostintranslation

2

इस के लिए अपने आशय को बदलें :

Intent i = new Intent(Intent.ACTION_PICK, 
android.provider.MediaStore.Video.Media.EXTERNAL_CONTENT_URI); 

वीडियो प्राप्त करने का प्रयास करते समय आपको मीडिया को बताने की आवश्यकता है स्टोर करें कि वीडियो क्रम में है और आपके द्वारा लिखे गए चित्रों के अनुसार नहीं।

9

आप का उपयोग की जरूरत उठा आशय

Intent photoLibraryIntent = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI); 
photoLibraryIntent.setType("image/* video/*"); 
1

यह सबसे अच्छा मैं जाना जाता है ...... एक बार के लिए यह प्रयास के रूप में निम्नलिखित ....

final CharSequence[] options = {"Images", "Videos", "Cancel"}; 
      AlertDialog.Builder builder = new AlertDialog.Builder(OpenGallery.this); 
      builder.setTitle("Select From..."); 
      builder.setItems(options, new DialogInterface.OnClickListener() { 
       @Override 
       public void onClick(DialogInterface dialog, int item) { 
        if (options[item].equals("Images")) { 
         Intent intent = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI); 
         intent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, true); 
         startActivityForResult(intent, 1); 
        } else if (options[item].equals("Videos")) { 
         Intent intent = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Video.Media.EXTERNAL_CONTENT_URI); 
         intent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, true); 
         startActivityForResult(intent, 1); 
        } else if (options[item].equals("Cancel")) { 
         dialog.dismiss(); 
        } 
        dialog.dismiss(); 
       } 
      }); 
      builder.show(); 
5

एंड्रॉयड 6.0 पर और "वीडियो/* छवि/" या "छवि/ वीडियो/*" प्रकार का उपयोग करने से ऊपर, यह केवल आपके द्वारा निर्दिष्ट पहले फ़िल्टर को पहचानता है। हालांकि इस उपयोगकर्ता जो एप्लिकेशन वे छवि/वीडियो का चयन करने के लिए उपयोग करना चाहते पूछना होगा

Intent photoPickerIntent = new Intent(Intent.ACTION_PICK); 
photoPickerIntent.setType("*/*"); 
photoPickerIntent.putExtra(Intent.EXTRA_MIME_TYPES, new String[] {"image/*", "video/*"}); 
startActivityForResult(photoPickerIntent, Constants.SELECT_PHOTO); 

: मैं इस कोड का उपयोग कर समस्या हल हो।

+0

के बजाय स्वीकार करना चाहिए धन्यवाद, यह प्रतिक्रिया आजकल अधिक होनी चाहिए – Arcantos

संबंधित मुद्दे