[Opdatering: Flere detaljer] Android 11 blokerer tredjeparts kameraapps fra at blive vist i billed-/videovalg

Android 11 implementerer en ændring, der forhindrer tredjeparts kamera-apps i at blive vist i billed-/videoudvælgelseshandlinger.

Opdatering 1 (20/08/2020 @ 18:15 ET): Google har opdateret sin udviklerdokumentation for at forklare, hvorfor tredjeparts kameraapps på Android 11 ikke er i stand til at reagere på implicitte billed-/videohensigtshandlinger. Rul til bunden for mere information. Artiklen som offentliggjort den 19. august 2020 er bevaret nedenfor.

Android 11 ændrer den måde, apps interagerer med tredjeparts kameraapps på din enhed, hvilket forhindrer dem i at blive vist i billed-/videovalg. I ældre versioner af Android, hvis en app vil lade brugere tage et billede, kan den enten implementere at tage billeder i appen (ved hjælp af Androids forskellige kamera-API'er), eller det kan sende en hensigt, der kan håndteres af en dedikeret kamera-app til at fange billedet i stedet. Hvis en app beslutter sig for at vælge den sidstnævnte mulighed, bliver brugere på ældre Android-udgivelser præsenteret for en disambigueringsdialog for at vælge den kamera-app, de ønsker at tage billedet. Dialogen viser generelt alle kameraapps, der er installeret på brugerens enhed, inklusive tredjeparts kameraapps, så længe de er skrevet for at reagere på bestemte hensigter. Men med Android 11 vil dialogen kun indeholde forudinstallerede kameraapps, medmindre udviklere specifikt målretter mod visse tredjeparts kameraapps.

Ændringen betyder reelt, at brugere i de fleste tilfælde bliver nødt til manuelt at starte tredjeparts kameraapps, når de vil tage et billede, hvilket gør tredjeparts kameraapps mindre bekvemme at bruge. Det vil også få brugere til at give udviklere af tredjeparts kamera-apps skylden, når brugeren finder ud af, at deres foretrukne kamera-app ikke længere kan startes fra andre apps. Google implementerer denne ændring i Android 11 ved at forhindre tredjeparts kameraapps i at reagere på følgende hensigtshandlinger:

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

siger Google at denne ændring er blevet sat på plads i Android 11 for at beskytte brugernes privatliv og sikkerhed. Virksomheden uddyber ikke hvordan, men det er sandsynligt, at nogle ondsindede apps har forklædt sig som kamera-apps for at få adgang til en brugers billeder. Virksomheden nævner dog en løsning for udviklere, der vil tillade apps stadig at lancere tredjeparts kamera-apps. Løsningen kræver grundlæggende, at udviklere målretter mod en specifik tredjepartsapp efter eget valg, når de sender en hensigt. For eksempel kan udvikleren af ​​en dokumentscanner-app sende en eksplicit hensigt om at starte Adobe Photoshop kamera frem for at sende en implicit hensigt om at åbne kameravælgeren. Android 11 gør det således, at udviklere ikke engang kan forespørge på listen over apps, der kan reagere på de 3 førnævnte hensigtshandlinger, hvilket betyder, at en udvikler på forhånd skal vide, hvilke tredjeparts kamera-apps de vil support.

Kilde: CommonsWare, Android udviklere

Via: Reddit

Tak til XDA Senior Member Android-udviklerLB for tippet!

Opdatering 1: Google siger, at denne ændring er for at bevare privatlivets fred

Google har opdateret sin Android 11 adfærdsændringsside med nye oplysninger om "mediehensigtshandlinger kræver systemets standardkamera" sektion (via Randen). Ændringen, forklarer Google, er "designet til at sikre, at EXIF-lokationsmetadataene behandles korrekt baseret på placeringstilladelserne defineret i app, der sender hensigten." Grundlæggende er Google bekymret over, at apps, der endnu ikke har fået eksplicit placeringsadgang, får brugerne til at åbne kamera-apps, der har blevet tildelt lokationsadgang, og da det resulterende billede, der er sendt til appen, kan indeholde EXIF-placering metadata, så kan den opkaldende app omgå anmodninger om lokationsadgang ved at læse lokationsdataene fra Foto. Hvis en app forsøger at gøre dette i Android 11, skal den erklære ACCESS_MEDIA_LOCATION såvel som ACCESS_COARSE_LOCATION eller ACCESS_FINE_LOCATION tilladelser for at læse EXIF-placeringsmetadata. (Bemærk, Google lukkede endnu et hul i lokationsadgang i Android 10 ved at kræve, at apps anmoder om ACCESS_MEDIA_LOCATION tilladelse, hvis en app forsøger at hente uredigerede EXIF-metadata fra fotos.)

Selvom denne adfærdsændring vil påvirke apps evne til at starte den brugerdefinerede standard kamera-app på grund af hvor gammel og hyppigt brugt 3 ovennævnte hensigtshandlinger er, Google bemærker, at ændringen ikke påvirker alle hensigtshandlinger, der kan starte den brugerdefinerede standardkameraapp, f.eks. som: android.provider.MediaStore.INTENT_ACTION_STILL_IMAGE_CAMERA, android.provider.MediaStore.INTENT_ACTION_STILL_IMAGE_CAMERA_SECURE, eller android.provider.MediaStore.INTENT_ACTION_VIDEO_CAMERA. Disse hensigter tjener dog ikke det samme formål, da de kun starter standardkameraappen i stedet for at tillade, at et billede sendes tilbage til den opkaldende app.