[Update: meer details] Android 11 blokkeert camera-apps van derden om te verschijnen in de keuze voor het kiezen van afbeeldingen/video's

click fraud protection

Android 11 implementeert een wijziging die voorkomt dat camera-apps van derden verschijnen in intentie-acties voor het kiezen van afbeeldingen/video's.

Update 1 (20-08-2020 om 18:15 ET): Google heeft de ontwikkelaarsdocumentatie bijgewerkt om uit te leggen waarom camera-apps van derden op Android 11 niet kunnen reageren op impliciete beeld-/video-intentieacties. Scroll naar beneden voor meer informatie. Het artikel zoals gepubliceerd op 19 augustus 2020 is hieronder bewaard gebleven.

Android 11 verandert de manier waarop apps communiceren camera-apps van derden op uw apparaat, waardoor ze niet verschijnen bij het kiezen van afbeeldingen/video's. Als een app in oudere versies van Android gebruikers een afbeelding wil laten maken, kan deze het maken van foto's binnen de app implementeren (met behulp van de verschillende camera-API's van Android) of het kan een intentie sturen die kan worden afgehandeld door een speciale camera-app om de afbeelding vast te leggen in plaats van. Als een app besluit voor de laatste optie te kiezen, krijgen gebruikers van oudere Android-releases een ondubbelzinnig dialoogvenster te zien waarin ze de camera-app van hun keuze kunnen selecteren om de afbeelding vast te leggen. In het dialoogvenster worden doorgaans alle camera-apps weergegeven die op het apparaat van de gebruiker zijn geïnstalleerd, inclusief camera-apps van derden, zolang deze zijn geschreven om op bepaalde bedoelingen te reageren. Met Android 11 bevat het dialoogvenster echter alleen vooraf geïnstalleerde stockcamera-apps, tenzij ontwikkelaars zich specifiek richten op bepaalde camera-apps van derden.

De verandering betekent feitelijk dat gebruikers in de meeste gevallen handmatig camera-apps van derden moeten starten wanneer ze een foto willen maken, waardoor camera-apps van derden minder handig in het gebruik worden. Het zal er ook voor zorgen dat gebruikers ontwikkelaars van camera-apps van derden de schuld geven als de gebruiker erachter komt dat zijn favoriete camera-app niet meer vanuit andere apps kan worden gestart. Google implementeert deze wijziging in Android 11 door te voorkomen dat camera-apps van derden reageren op de volgende intentieacties:

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

Google zegt dat deze wijziging is doorgevoerd in Android 11 om de privacy en veiligheid van zijn gebruikers te beschermen. Het bedrijf gaat niet nader in op de manier waarop, maar het is waarschijnlijk dat sommige kwaadaardige apps zich hebben voorgedaan als camera-apps om toegang te krijgen tot de foto's van een gebruiker. Het bedrijf noemt echter wel een oplossing voor ontwikkelaars waardoor apps nog steeds camera-apps van derden kunnen starten. De oplossing vereist in wezen dat ontwikkelaars zich richten op een specifieke externe app van hun keuze wanneer ze een intentie sturen. De ontwikkelaar van een documentscanner-app kan bijvoorbeeld een expliciete intentie tot lancering sturen Adobe Photoshop-camera in plaats van een impliciete intentie te sturen om de camerakiezer te openen. Android 11 zorgt ervoor dat ontwikkelaars niet eens de lijst met apps kunnen opvragen die op de 3 bovengenoemde kunnen reageren opzettelijke acties, wat betekent dat een ontwikkelaar van tevoren zal moeten weten welke camera-apps van derden hij wil gebruiken steun.

Bron: CommonsWare, Android-ontwikkelaars

Via: Reddit

Met dank aan XDA Senior-lid AndroidOntwikkelaarLB voor de fooi!

Update 1: Google zegt dat deze wijziging bedoeld is om de privacy te behouden

Google heeft zijn Android 11-pagina met gedragsveranderingen bijgewerkt met nieuwe informatie over de "Voor media-intentieacties is de standaardcamera van het systeem vereist" sectie (via De rand). De wijziging, legt Google uit, is "bedoeld om ervoor te zorgen dat de EXIF-locatiemetagegevens correct worden verwerkt op basis van de locatietoestemmingen die zijn gedefinieerd in de app die de intentie verzendt." Google is in feite bezorgd dat apps waaraan nog geen expliciete locatietoegang is verleend, gebruikers ertoe aanzetten camera-apps te openen die hebben locatietoegang is verleend, en aangezien de resulterende foto die aan de app wordt doorgegeven, een EXIF-locatie kan bevatten metagegevens, dan kan de bellende app het verzoek om locatietoegang omzeilen door de locatiegegevens uit de foto. Als een app dit in Android 11 probeert te doen, zal deze dit moeten declareren ACCESS_MEDIA_LOCATION net zoals ACCESS_COARSE_LOCATION of ACCESS_FINE_LOCATION machtigingen om EXIF-locatiemetadata te lezen. (Van belang, Google heeft een nieuwe maas in de locatietoegang gedicht in Android 10 door te vereisen dat apps de ACCESS_MEDIA_LOCATION toestemming als een app probeert niet-geredigeerde EXIF-metagegevens van foto's op te halen.)

Hoewel deze gedragsverandering van invloed zal zijn op het vermogen van apps om de door de gebruiker gedefinieerde standaardcamera-app te starten, vanwege hoe oud en vaak gebruikt de 3 bovengenoemde intentieacties zijn, Google merkt op dat de wijziging geen invloed heeft op alle intentieacties die de door de gebruiker gedefinieerde standaardcamera-app kunnen starten, zoals als: android.provider.MediaStore.INTENT_ACTION_STILL_IMAGE_CAMERA, android.provider.MediaStore.INTENT_ACTION_STILL_IMAGE_CAMERA_SECURE, of android.provider.MediaStore.INTENT_ACTION_VIDEO_CAMERA. Deze bedoelingen dienen echter niet hetzelfde doel, omdat ze alleen de standaard camera-app starten in plaats van toe te staan ​​dat een afbeelding wordt teruggestuurd naar de bellende app.