2016-11-07 2 views
0

Dans mon application, j'essaie d'ouvrir uniquement par défaut dans l'application de la galerie, même pas l'application de photos et d'autres applications d'exploration de fichiers. Cliquez sur le bouton, il atterrira directement dans la galerie, Comment puis-je faire cela?Dans Android, comment ouvrir le système intégré dans l'application de la galerie en utilisant l'intention?

Mon code 'Intent intent = new Intent (Intent.ACTION_PICK); intention.setType ("image/*"); startActivityForResult (intention, PICK_IMAGE); '

+0

double possible de [Ouvrir application Galerie d'Android Intent] (http://stackoverflow.com/questions/16928727/open-gallery-app-from- android-intention) –

+0

@maxost Non, je veux ouvrir directement l'application de galerie intégrée de téléphone pas d'autre application comme des photos. – droidgeek

+2

Il y a ~ 2 milliards d'appareils Android, constitués de milliers de modèles d'appareils de centaines de fabricants. Aucun ne doit avoir une "galerie intégrée par défaut". Ceux qui le font en auront d'autres, car les fabricants envoient habituellement leur propre "built in gallery". Il n'y a aucun moyen garanti d'identifier une telle application, et encore moins de le lancer. – CommonsWare

Répondre

0

Essayez celui-ci ...

private int PICK_IMAGE_REQUEST = 1; 

tvGallery.setOnClickListener(new View.OnClickListener() { 
       @Override 
       public void onClick(View view) { 
        Intent intent = new Intent(); 
        // Show only images, no videos or anything else 
        intent.setType("image/*"); 
        intent.setAction(Intent.ACTION_GET_CONTENT); 
        // Always show the chooser (if there are multiple options available) 
        startActivityForResult(Intent.createChooser(intent, "Select Picture"), PICK_IMAGE_REQUEST); 


       } 
      }); 

Utilisation Permission dans Android Fichier Manifest

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

0

Essayez aimez cette

Intent intent = new Intent(); 
    intent.setType("image/*"); 
    intent.setAction(Intent.ACTION_GET_CONTENT);// 
    startActivityForResult(Intent.createChooser(intent, "Select Picture"),PICK_IMAGE); 

onActivityResult pour: obtenir une image

public void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 
    if (requestCode == PICK_IMAGE) 
    { 
     if (resultCode == Activity.RESULT_OK) 
     { 
      if (data != null) 
      { 
       try 
       { 

        Bitmap bitmap = MediaStore.Images.Media.getBitmap(getActivity().getContentResolver(), data.getData()); 

       } catch (IOException e) 
       { 
        e.printStackTrace(); 
       } 

      } 
     } else if (resultCode == Activity.RESULT_CANCELED) 
     { 
      Toast.makeText(getActivity(), "Cancelled", Toast.LENGTH_SHORT).show(); 
     } 
    } } 

autorisations Ajouter au fichier Manifest

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> 
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 
0

Essayez ceci: -

final int public static GALLERY_PICTURE = 1; private Chaîne sélectionnéeImagePath = null;

Intent intent = new Intent(); 
       intent.setType("image/*"); 
       intent.setAction(Intent.ACTION_GET_CONTENT); 
       startActivityForResult(Intent.createChooser(intent, "Select File"), GALLERY_PICTURE); 

onActivityResult(): -

if (requestCode == GALLERY_PICTURE && resultCode == RESULT_OK) { 
      selectedImagePath = getRealPathFromURI_API19(this, data.getData()); 
      Log.e("gallery path", selectedImagePath); 
     } 


@SuppressLint("NewApi") 
    public static String getRealPathFromURI_API19(Context context, Uri uri) { 
     String filePath = ""; 
     String wholeID = DocumentsContract.getDocumentId(uri); 
     String id = wholeID.split(":")[1]; 
     String[] column = {MediaStore.Images.Media.DATA}; 
     String sel = MediaStore.Images.Media._ID + "=?"; 
     Cursor cursor = context.getContentResolver().query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, 
       column, sel, new String[]{id}, null); 
     int columnIndex = cursor.getColumnIndex(column[0]); 
     if (cursor.moveToFirst()) { 
      filePath = cursor.getString(columnIndex); 
     } 
     cursor.close(); 
     return filePath; 
    } 
+0

ne fonctionne pas.Pas d'erreur, mais il montre sélecteur de fichier ... Je ne veux pas that.on cliquez sur le bouton il devrait atterrir directement dans la galerie – droidgeek

+1

Vous devez être conscient que la galerie n'existe plus sur certains appareils exécutant Lollipop et versions android ci-dessus. L'application photos est le remplacement c'est pourquoi nous utilisons maintenant le sélecteur de fichier. Mais si vous avez encore besoin d'ouvrir la galerie directe Vous pouvez utiliser ceci: - Intention galleryIntent = new Intent (Intent.ACTION_PICK, android.provider.MediaStore.Images.Media .EXTERNAL_CONTENT_URI); startActivity (galleryIntent); –