Keine der oben genannten Antworten sind richtig, einschließlich der, markiert als korrekt.
Hier ist die tatsächliche richtige Lösung:
Das Geheimnis ist das Finden der Eimer/Album deinen Ordner wie dargestellt. Buckets werden nach einem erfolgreichen MediaScan angezeigt, stellen Sie daher sicher, dass alle Bilder/Videos, die Sie anzeigen möchten, zuerst gescannt werden, wie oben mehrfach gezeigt.
Nehmen wir an, ich habe einen indizierten Ordner in/sdcard/myapp/myappsmediafolder:
String bucketId = "";
final String[] projection = new String[] {"DISTINCT " + MediaStore.Images.Media.BUCKET_DISPLAY_NAME + ", " + MediaStore.Images.Media.BUCKET_ID};
final Cursor cur = getContentResolver().query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, projection, null, null, null);
while (cur != null && cur.moveToNext()) {
final String bucketName = cur.getString((cur.getColumnIndex(MediaStore.Images.ImageColumns.BUCKET_DISPLAY_NAME)));
if (bucketName.equals("myappsmediafolder")) {
bucketId = cur.getString((cur.getColumnIndex(MediaStore.Images.ImageColumns.BUCKET_ID)));
break;
}
}
Jetzt, wo wir die bucketId für unser Album haben wir es mit einer einfachen Absicht öffnen können.
Filter Video-Dateien:
Uri mediaUri = MediaStore.Video.Media.EXTERNAL_CONTENT_URI;
Filter Bilddateien:
Uri mediaUri = MediaStore.Images.Media.EXTERNAL_CONTENT_URI;
...
if (bucketId.length() > 0) {
mediaUri = mediaUri.buildUpon()
.authority("media")
.appendQueryParameter("bucketId", bucketId)
.build();
}
Intent intent = new Intent(Intent.ACTION_VIEW, mediaUri);
startActivity(intent);
kann ich überprüfen, das funktioniert mit dem eingebauten in Galerie-App. Die Laufleistung kann bei anderen Apps wie Google Fotos variieren.
Ich muss noch herausfinden, wie Bilder/Videos nicht gefiltert werden, obwohl in der Galerie können Sie ein bestimmtes Album ohne Filter auswählen.
Ich habe das herausgefunden, indem ich die AOSP-Quelle in der Galerie-App angeschaut habe.
@ Freakman: Haben Sie gefunden, die ans ?, wenn ja, bitte ich teilen brauche das gleiche. – PiyushMishra
Nein, ich habe die Antwort nicht gefunden. – FrEaKmAn