2017-12-31 50 views

Antwort

2

Intent.createChooser() ist ein Convenience Wrapper rund um die Herstellung eines ACTION_CHOOSERIntent, wo der angegebene Titel über EXTRA_TITLE zur Verfügung gestellt wird.

Wo soll dieser Titel angezeigt werden?

Die ACTION_CHOOSER Implementierung würde idealerweise den Titel als Teil seiner Benutzeroberfläche anzeigen. Allerdings:

  • Es gibt keine Anforderung, dass die ACTION_CHOOSER Aktivität

  • Die Umsetzung der ACTION_CHOOSER Aktivität der Titel angezeigt werden kann durch Gerätehersteller sowie OS-Version

  • variieren werden Sie nicht immer Wählen Sie eine Auswahl (z. B. gibt es 0-1 Aktivitäten, die zu Ihrer Intent passen)

In dem speziellen Fall von ACTION_GET_CONTENT, das wird tendenziell direkt zu einem System-gelieferte UI zum Erzielen von Inhalten, Umgehung aller Auswahl, auf Android 4.4 +.

+0

Danke für die ausführliche Antwort. Bitte erlauben Sie mir noch eine Frage, die damit zusammenhängt: Braucht 'ACTION_GET_CONTENT' mit' setType ("image/*)" keine Berechtigung zum Lesen von externem Speicher? Weil ich auf meinem Emulator auf den externen Speicher zugreifen kann Ich kann nichts in google finden –

+0

@FlorianWalther: "Benötigt ACTION_GET_CONTENT mit setType (" image/*) keine Erlaubnis, externen Speicher zu lesen? " -- richtig. Unter Android 4.3 und älteren Versionen benötigen Sie keine Berechtigung zum allgemeinen Lesen von externem Speicher. Auf Android 4.4+ sollte "ACTION_GET_CONTENT" ein 'Uri' mit einem' content' Schema zurückgeben, nicht ein 'file' Schema, und Sie haben temporäre Rechte, um auf den von diesem' Uri' identifizierten Inhalt zuzugreifen. – CommonsWare

+0

Vielen Dank! So habe ich es etwas verstanden, aber in Google habe ich nichts Spezifisches gefunden. Sie haben jedoch gesagt, dass 4.3+ im Allgemeinen keine Leseberechtigung für externe Speicher benötigt, aber ich habe so viele Beispiele zum Anfordern von Laufzeitberechtigungen für genau das gefunden: LESEN Sie externen Speicher. Verstehe ich etwas falsch? –

Verwandte Themen