Android 11 implementa una modifica che impedirà alle app per fotocamere di terze parti di apparire nelle azioni con intenti di selezione di immagini/video.
Aggiornamento 1 (20/08/2020, 18:15 ET): Google ha aggiornato la documentazione per gli sviluppatori per spiegare perché le app per fotocamere di terze parti su Android 11 non sono in grado di rispondere ad azioni implicite di intenti di immagini/video. Scorri fino in fondo per ulteriori informazioni. L'articolo pubblicato il 19 agosto 2020 è conservato di seguito.
Android 11 sta cambiando il modo in cui le app interagiscono app per fotocamere di terze parti sul tuo dispositivo, il che impedirà loro di apparire negli intenti di selezione di immagini/video. Nelle versioni precedenti di Android, se un'app desidera consentire agli utenti di acquisire un'immagine, può implementare lo scatto di foto all'interno dell'app (utilizzando le varie API della fotocamera di Android) oppure può inviare un intento che può essere gestito da un'app fotocamera dedicata per catturare l'immagine Invece. Se un'app decide di utilizzare quest'ultima opzione, agli utenti delle versioni Android precedenti viene presentata una finestra di dialogo di disambiguazione per selezionare l'app della fotocamera di loro scelta per acquisire l'immagine. La finestra di dialogo mostra generalmente tutte le app della fotocamera installate sul dispositivo dell'utente, incluse le app della fotocamera di terze parti, purché siano scritte per rispondere a determinati intenti. Tuttavia, con Android 11, la finestra di dialogo includerà solo le app per fotocamere stock preinstallate, a meno che gli sviluppatori non mirino specificamente ad alcune app per fotocamere di terze parti.
Il cambiamento significa effettivamente che, nella maggior parte dei casi, gli utenti dovranno avviare manualmente app per fotocamere di terze parti quando desiderano scattare una foto, rendendo le app per fotocamere di terze parti meno comode da usare. Inoltre, gli utenti incolperanno gli sviluppatori di app per fotocamere di terze parti quando scopriranno che la loro app per fotocamera preferita non può più essere avviata da altre app. Google sta implementando questa modifica in Android 11 impedendo alle app per fotocamere di terze parti di rispondere alle seguenti azioni di intent:
android.media.action.VIDEO_CAPTURE
android.media.action.IMAGE_CAPTURE
android.media.action.IMAGE_CAPTURE_SECURE
Google dice che questa modifica è stata implementata in Android 11 per proteggere la privacy e la sicurezza dei suoi utenti. L'azienda non spiega come, ma è probabile che alcune app dannose si siano mascherate da app per fotocamere per accedere alle foto di un utente. Tuttavia, la società menziona una soluzione alternativa per gli sviluppatori che consentirà alle app di avviare comunque app per fotocamere di terze parti. La soluzione alternativa richiede essenzialmente che gli sviluppatori indirizzino una specifica app di terze parti a loro scelta quando inviano un intento. Ad esempio, lo sviluppatore di un'app per scanner di documenti può inviare un'intenzione esplicita di avvio Fotocamera Adobe Photoshop anziché inviare un intento implicito di aprire il selettore della fotocamera. Android 11 fa in modo che gli sviluppatori non possano nemmeno interrogare l'elenco delle app in grado di rispondere alle 3 sopra menzionate azioni di intenti, il che significa che uno sviluppatore dovrà sapere in anticipo quali app per fotocamera di terze parti desidera supporto.
Fonte: Commonsware, Sviluppatori Android
Attraverso: Reddit
Grazie al membro senior di XDA AndroidDeveloperLB per la mancia!
Aggiornamento 1: Google afferma che questo cambiamento serve a mantenere la privacy
Google ha aggiornato la sua pagina sulle modifiche al comportamento di Android 11 con nuove informazioni sul "le azioni di intenti multimediali richiedono la fotocamera predefinita del sistema" sezione (via Il limite). La modifica, spiega Google, è "progettata per garantire che i metadati di posizione EXIF siano elaborati correttamente in base ai permessi di localizzazione definiti all'interno del app che invia l'intento." Fondamentalmente, Google teme che le app a cui non è stato ancora concesso l'accesso esplicito alla posizione spingano gli utenti ad aprire app della fotocamera che Avere è stato concesso l'accesso alla posizione e poiché la foto risultante trasmessa all'app può contenere la posizione EXIF metadati, l'app chiamante può ignorare la richiesta di accesso alla posizione leggendo i dati sulla posizione dal file foto. Se un'app tenta di eseguire questa operazione in Android 11, dovrà dichiarare ACCESS_MEDIA_LOCATION
così come ACCESS_COARSE_LOCATION
O ACCESS_FINE_LOCATION
autorizzazioni per leggere i metadati della posizione EXIF. (Di nota, Google ha chiuso un'altra lacuna nell'accesso alla posizione in Android 10 richiedendo che le app richiedano il file ACCESS_MEDIA_LOCATION
autorizzazione se un'app tenta di recuperare metadati EXIF non oscurati dalle foto.)
Anche se questo cambiamento di comportamento influirà sulla capacità delle app di avviare l'app fotocamera predefinita definita dall'utente a causa dell'età e dell'utilizzo frequente della 3 azioni di intenti sopra menzionate, Google rileva che la modifica non influisce su tutte le azioni di intenti che possono avviare l'app fotocamera predefinita definita dall'utente, ad esempio COME: android.provider.MediaStore.INTENT_ACTION_STILL_IMAGE_CAMERA
, android.provider.MediaStore.INTENT_ACTION_STILL_IMAGE_CAMERA_SECURE
, O android.provider.MediaStore.INTENT_ACTION_VIDEO_CAMERA
. Questi intenti, tuttavia, non hanno lo stesso scopo, poiché avviano solo l'app fotocamera predefinita anziché consentire il rinvio di un'immagine all'app chiamante.