Frage

Daher versuche ich dem Benutzer zu erlauben, mit meiner Android -Anwendung ein bestimmtes Medienstück mit der hier beschriebenen Methode auszuwählen:Greifen Sie in meiner Android -App auf Bilder von Pictures App zu

Es funktioniert hervorragend, bis auf die Tatsache, dass ich scheinbar nur zwischen Video oder Foto wählen kann, um dem Benutzer zu präsentieren, nicht beide gleichzeitig. Gibt es eine gute Möglichkeit, dies mit:

startActivityForresult (neue Absicht (Intent.Action_Pick, Android.provider.Mediastore.images.Media.Internal_Content_uri), select_image);

Vielen Dank!

War es hilfreich?

Lösung

Ich habe das mehrmals benutzt. Der beste Weg ist so etwas wie:

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

Auch wenn dies nicht genau richtig ist, hat es in allem, in dem ich es verwendet habe, gut funktioniert. Es wird eine Galerie-ähnliche Aktivität mit einer Miniaturliste jedes Bildes/Video-Videos in der Benutzergalerie eröffnen. Die zurückgegebene Absicht zu onActivityResult() hat eine extra genannte "Daten", die ein Inhalt ist: // URI für die ausgewählten Medien.

Bearbeiten: oops, um die URI in die ausgewählten Medien zu bringen, die Sie tatsächlich anrufen möchten Daten bekommen() über die Absicht, die an OnactivityResult () übergeben wird ()

Andere Tipps

Kivy - Der einfachste Weg ist es, eine Absicht zu erstellen, ein Medienstück auszuwählen und es auf Video zu beschränken:

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

Hinweis - 12345 ist die Ganzzahl, die Ihre App auf einen Anforderungsrückruf anhören muss, damit Sie alle Informationen senden können, die Sie erhalten, wo immer Sie benötigen.

Sie müssen dann auch dieselbe Aktivität haben, die nach den Informationen zuhört, die aus dieser Absicht zurückgeschickt werden sollen:

    @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...
            } 

        }
    }

Kühl?

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

Versuche dies

Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.setType("*/*");
startActivityForResult(intent, 101);
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top