Zugriff auf Videos und Fotos auf Android 1.5 +
-
16-09-2019 - |
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!
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);