Question

J'essaie donc de permettre à l'utilisateur de choisir un support particulier avec mon application Android en utilisant la méthode décrite ici:Accéder aux photos de l'application Pictures dans mon application Android

Cela fonctionne très bien, sauf pour le fait que je ne peux apparemment choisir que entre la vidéo ou la photo pour présenter l'utilisateur, pas les deux en même temps. Y a-t-il un bon moyen de le faire avec:

startActivityForResult (nouvelle intention (intention.action_pick, android.provider.mediason.images.media.internal_content_uri), select_image);

Merci!

Était-ce utile?

La solution

Je l'ai utilisé plusieurs fois. La meilleure façon est quelque chose comme:

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

Même si ce n'est pas parfaitement précis, cela a bien fonctionné dans tout ce que je l'ai utilisé. Il ouvrira une activité galerie avec une liste miniature de chaque image / vidéo de la galerie de l'utilisateur. L'intention retournée de onActivityResult() A un supplément appelé "Data" qui sera un contenu: // uri aux supports sélectionnés.

Edit: oups, pour amener l'URI aux supports sélectionnés que vous souhaitez réellement appeler getData () sur l'intention qui est transmise sur onactivityResult ()

Autres conseils

Kivy - Le moyen le plus simple est de créer une intention de sélectionner un élément de média et de le restreindre à la vidéo:

Intent pickMedia = new Intent(Intent.ACTION_GET_CONTENT);
pickMedia.setType("video/*");
startActivityForResult(pickMedia,12345);

Remarque - 12345 est l'entier que votre application doit écouter sur un rappel de demande afin que vous puissiez envoyer les informations que vous recevez où que vous ayez besoin.

Vous devez ensuite avoir la même activité à écouter les informations à renvoyer de cette intention:

    @Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if (requestCode == 12345) {
            if (resultCode == Activity.RESULT_OK) {
                Uri selectedVideoLocation = data.getData();

                // Do something with the data...
            } 

        }
    }

Cool?

intent = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
startActivityForResult(intent, 1);

Essaye ça

Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.setType("*/*");
startActivityForResult(intent, 101);
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top