[Update: Weitere Details] Android 11 verhindert, dass Kamera-Apps von Drittanbietern in Bild-/Videoauswahlabsichten angezeigt werden

Android 11 implementiert eine Änderung, die verhindert, dass Kamera-Apps von Drittanbietern in Aktionen zur Bild-/Videoauswahlabsicht angezeigt werden.

Update 1 (20.08.2020 um 18:15 Uhr ET): Google hat seine Entwicklerdokumentation aktualisiert, um zu erklären, warum Kamera-Apps von Drittanbietern auf Android 11 nicht auf implizite Bild-/Video-Intent-Aktionen reagieren können. Für weitere Informationen scrollen Sie nach unten. Der am 19. August 2020 veröffentlichte Artikel ist unten aufgeführt.

Android 11 verändert die Art und Weise, wie Apps interagieren Kamera-Apps von Drittanbietern auf Ihrem Gerät, wodurch verhindert wird, dass sie in Bild-/Videoauswahlabsichten angezeigt werden. Wenn eine App in älteren Android-Versionen Benutzern das Aufnehmen eines Bildes ermöglichen möchte, kann sie das Aufnehmen von Bildern entweder innerhalb der App implementieren (unter Verwendung der verschiedenen Kamera-APIs von Android) oder es kann eine Absicht senden, die von einer speziellen Kamera-App verarbeitet werden kann, um das Bild aufzunehmen stattdessen. Wenn sich eine App für die letztere Option entscheidet, wird Benutzern älterer Android-Versionen ein Dialog zur Begriffsklärung angezeigt, in dem sie die Kamera-App ihrer Wahl zum Aufnehmen des Bildes auswählen können. Das Dialogfeld zeigt im Allgemeinen alle auf dem Gerät des Benutzers installierten Kamera-Apps an, einschließlich Kamera-Apps von Drittanbietern, sofern sie für die Reaktion auf bestimmte Absichten geschrieben wurden. Mit Android 11 umfasst der Dialog jedoch nur vorinstallierte Standard-Kamera-Apps, es sei denn, Entwickler zielen speziell auf bestimmte Kamera-Apps von Drittanbietern ab.

Die Änderung bedeutet effektiv, dass Benutzer in den meisten Fällen Kamera-Apps von Drittanbietern manuell starten müssen, wenn sie ein Foto aufnehmen möchten, was die Verwendung von Kamera-Apps von Drittanbietern weniger komfortabel macht. Außerdem werden Benutzer den Entwicklern von Kamera-Apps von Drittanbietern die Schuld geben, wenn sie feststellen, dass ihre Lieblings-Kamera-App nicht mehr von anderen Apps aus gestartet werden kann. Google implementiert diese Änderung in Android 11, indem es Kamera-Apps von Drittanbietern daran hindert, auf die folgenden Absichtsaktionen zu reagieren:

  • android.media.action.VIDEO_CAPTURE
  • android.media.action.IMAGE_CAPTURE
  • android.media.action.IMAGE_CAPTURE_SECURE

Google sagt dass diese Änderung in Android 11 eingeführt wurde, um die Privatsphäre und Sicherheit seiner Benutzer zu schützen. Das Unternehmen geht nicht näher darauf ein, aber es ist wahrscheinlich, dass sich einige bösartige Apps als Kamera-Apps getarnt haben, um Zugriff auf die Fotos eines Benutzers zu erhalten. Das Unternehmen erwähnt jedoch einen Workaround für Entwickler, der es Apps ermöglicht, weiterhin Kamera-Apps von Drittanbietern zu starten. Die Problemumgehung erfordert im Wesentlichen, dass Entwickler beim Senden einer Absicht auf eine bestimmte Drittanbieter-App ihrer Wahl abzielen. Beispielsweise kann der Entwickler einer Dokumentenscanner-App eine explizite Absicht zum Start senden Adobe Photoshop-Kamera anstatt eine implizite Absicht zu senden, die Kameraauswahl zu öffnen. Mit Android 11 können Entwickler nicht einmal die Liste der Apps abfragen, die auf die drei oben genannten Punkte reagieren können Absichtsaktionen, was bedeutet, dass ein Entwickler im Voraus wissen muss, welche Kamera-Apps von Drittanbietern er verwenden möchte Unterstützung.

Quelle: CommonsWare, Android-Entwickler

Über: Reddit

Vielen Dank an XDA Senior Member AndroidDeveloperLB für den Tipp!

Update 1: Laut Google dient diese Änderung der Wahrung der Privatsphäre

Google hat seine Seite mit Verhaltensänderungen bei Android 11 mit neuen Informationen zum „Medienabsichtsaktionen erfordern eine Systemstandardkamera" Abschnitt (über Der Rand). Die Änderung soll laut Google „sicherstellen, dass die EXIF-Standortmetadaten basierend auf den darin definierten Standortberechtigungen korrekt verarbeitet werden.“ App sendet die Absicht.“ Grundsätzlich ist Google besorgt, dass Apps, denen noch kein expliziter Standortzugriff gewährt wurde, Benutzer dazu veranlassen, Kamera-Apps zu öffnen haben Standortzugriff gewährt wurde und das resultierende Foto, das an die App übergeben wird, einen EXIF-Standort enthalten kann Metadaten, dann kann die aufrufende App die Anforderung eines Standortzugriffs umgehen, indem sie die Standortdaten aus dem liest Foto. Wenn eine App dies in Android 11 versucht, muss sie deklariert werden ACCESS_MEDIA_LOCATION sowie ACCESS_COARSE_LOCATION oder ACCESS_FINE_LOCATION Berechtigungen zum Lesen von EXIF-Standortmetadaten. (Bemerkenswert, Google hat eine weitere Lücke beim Standortzugriff geschlossen in Android 10, indem Apps die Anfrage stellen müssen ACCESS_MEDIA_LOCATION Berechtigung, wenn eine App versucht, nicht geschwärzte EXIF-Metadaten von Fotos abzurufen.)

Diese Verhaltensänderung wirkt sich zwar auf die Fähigkeit von Apps aus, die benutzerdefinierte Standardkamera-App zu starten, da die 3 so alt und häufig verwendet wird Bei den oben genannten Intent-Aktionen handelt es sich um Google. Google weist darauf hin, dass sich die Änderung nicht auf alle Intent-Aktionen auswirkt, mit denen die benutzerdefinierte Standardkamera-App gestartet werden kann, z als: android.provider.MediaStore.INTENT_ACTION_STILL_IMAGE_CAMERA, android.provider.MediaStore.INTENT_ACTION_STILL_IMAGE_CAMERA_SECURE, oder android.provider.MediaStore.INTENT_ACTION_VIDEO_CAMERA. Diese Absichten dienen jedoch nicht demselben Zweck, da sie nur die Standardkamera-App starten und nicht ermöglichen, dass ein Bild an die aufrufende App zurückgesendet wird.