2017-09-02 2 views
0

Ich möchte dem Benutzer die Möglichkeit geben, mehrere Bilder auszuwählen. Dies ist mein Code, um den Benutzer wählen, die gewünschte Galerie zu lassen und Bilder holt von dort:Versucht, Bilder aus Samsungs Galerie auszuwählen

public void pickImages() { 

     Intent intent = new Intent(Intent.ACTION_PICK, 
       android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI); 
     intent.setType("image/*"); 
     intent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, true); 

     startActivityForResult(Intent.createChooser(intent,"Select Picture"), PICK_IMAGE_MULTIPLE); 
    } 

Wenn ich auf der Schaltfläche pickImages klicken, I zwischen der Standard-Galerie, wie in diesem Fall wählen kann - Samsung, oder Google Fotos, Etc ...

Wenn ich Google Fotos Galerie wählen, ich bin in der Lage Fotos zu holen, aber auf dem gleichen Gerät (Samsung Galaxy S6 Rand), nachdem ich Samsungs Galerie wählen, kann ich nicht wähle nur ein Foto aus, es ist nur eine Anzeige von ihnen, egal wie lange ich auf ein Foto klicke, es ändert sich nicht.

Wenn ich Samsung Galerie von ihrem Launcher eingeben, ist die Anzeige anders, und ich kann lange drücken, um Bilder auszuwählen.

Ich habe auch auf Xiaomi Standardgalerie überprüft, und es funktionierte, konnte ich Fotos auswählen.

Wie kann ich es ändern und das richtige Galerie-Display öffnen?

Antwort

1

Dies ist mein Code, um die Benutzer zu lassen, die gewünschte Galerie wählen und Bilder holen von dort

Erstens gibt es nichts in diesem Code, der mit einer „Galerie“ viel zu tun hat . Eine beliebige Anzahl von Apps kann auf diese Intent Struktur reagieren, und diese Apps müssen keine "Galerie" sein.

Zweitens sollte ein ACTION_PICK keinen MIME-Typ angeben. Siehe the documentation.

Drittens ACTION_PICK unterstützt EXTRA_ALLOW_MULTIPLE nicht. Siehe the documentation.

nachdem ich Samsungs Galerie wählen, kann ich nicht einmal ein Foto aus, es ist nur eine Anzeige von ihnen, egal wie lange ich auf ein Foto klicken, ist es nicht

ändert

Erste Es ist nicht erforderlich, dass alle Apps lange Klicks auf Inhalte unterstützen.

Zweitens ist ein Langklick-Muster normalerweise nur für eine Mehrfachauswahl relevant, und ACTION_PICK unterstützt keine Mehrfachauswahl.

Aber es ist durchaus möglich, dass Sie einen echten Fehler in Samsungs App sehen.

Wie kann ich ändern, es

Nun, Sie ACTION_PICKIntent bereinigen könnte, die Sie (entfernen Sie die setType() und putExtra() Anrufe) verwenden und sehen, ob das etwas ändert.

Oder Sie ACTION_GET_CONTENT wechseln könnte, was tut Verwendung setType() und tut haben das Potenzial, EXTRA_ALLOW_MULTIPLE zu unterstützen.Es gibt keine Anforderung, dass ACTION_GET_CONTENT Implementierungsunterstützung EXTRA_ALLOW_MULTIPLE unterstützt, und Sie würden die Uri (MediaStore.Images.Media.EXTERNAL_CONTENT_URI) nicht verwenden.

Oder beschweren Sie sich bei Samsung über den Fehler in ihrer App.

Öffnen Sie die rechte Galerieanzeige?

Es gibt keine "rechte Galerieanzeige". Was einen bestimmten impliziten Intent (ACTION_PICK, ACTION_GET_CONTENT) behandelt, ist der Benutzer und sekundär der Gerätehersteller. Sie bekommen keine Stimme.

Sie können immer Ihre eigene galerieartige Bildauswahl-Benutzeroberfläche erstellen. Dies würde Ihnen auf allen Geräten konsistente Ergebnisse liefern, aber es wäre mehr Arbeit.

+0

Danke für die ausführliche Antwort. Keiner der Vorschläge hat für mich funktioniert, also ich denke, es ist ein Fehler. Nur für den Rekord, haben sie eine Option, um lange zu klicken, um in ihrer App auszuwählen, nur nicht in der Anzeige, die von meiner App geöffnet wurde. –

Verwandte Themen