Per consentire agli sviluppatori di creare app che offrano un'esperienza utente coerente, stiamo introducendo altri tipi di servizi in primo piano oltre a una nuova serie di limitazioni previste dalle norme. Questo articolo illustra gli imminenti requisiti per i servizi in primo piano e spiega come dichiarare le informazioni sui servizi in primo piano in Play Console. Descrive inoltre nel dettaglio i requisiti per l'utilizzo delle notifiche di intent a schermo intero.
Requisiti per i servizi in primo piano per Android 14
Per aiutarti a identificare i casi d'uso appropriati per i servizi in primo piano e a definire chiaramente lo scopo delle operazioni in background della tua app, Android 14 e le versioni successive richiedono i seguenti passaggi prima di utilizzare un servizio in primo piano:
- Dichiara i tipi di servizio in primo piano nel tuo file manifest. Devi eseguire questa operazione per ogni servizio in primo piano che intendi utilizzare.
- Se applicabile al tipo selezionato, dichiara e richiedi l'autorizzazione per il servizio in primo piano appropriata per ogni tipo di servizio in primo piano.
La sezione relativa alle autorizzazioni per i servizi in primo piano delle nostre norme relative all'utilizzo illecito di dispositivi e reti descrive nel dettaglio i criteri necessari per l'utilizzo dei servizi in primo piano. Quando esegui l'aggiornamento ad Android 14 devi dichiarare i tipi di servizi in primo piano.
Dichiarare le informazioni sul servizio in primo piano in Play Console
Se le app hanno come target Android 14 e versioni successive, devi dichiarare tutti i tipi di servizi in primo piano che utilizzi in una nuova dichiarazione nella pagina Contenuti app (Norme > Contenuti app) in Play Console.
Per ogni tipo di servizio in primo piano dichiarato, devi:
- Fornire una descrizione della funzionalità dell'app che utilizza ogni tipo di servizio in primo piano.
- Descrivere l'impatto sugli utenti se:
- l'attività viene differita dal sistema (non si avvia immediatamente);
- l'attività viene interrotta dal sistema (messa in pausa e/o riavviata).
- Includere un link a un video che mostri ogni funzionalità del servizio in primo piano. Il video deve mostrare i passaggi che l'utente deve eseguire nella tua app per attivare la funzionalità.
- Scegli il tuo caso d'uso specifico per ogni tipo di servizio in primo piano. Ti verrà fornito un elenco preimpostato di casi d'uso tra cui puoi scegliere. Nel grafico seguente sono elencati i casi d'uso selezionati mappati ai tipi di servizi in primo piano. Questo è un elenco non esaustivo. Se il tuo caso d'uso non è elencato, puoi inserirlo manualmente.
Per determinati casi d'uso, suggeriamo di utilizzare API alternative. Per un elenco di questi casi d'uso e delle relative API consigliate alternative, visita il sito Android for Developers.
Nota: di seguito è riportato un elenco non esaustivo. Per determinare se l'accesso è appropriato per FGS, consulta le norme relative alle autorizzazioni per i servizi in primo piano (FGS) per i casi d'uso non menzionati di seguito.
Tipo FGS | Casi d'uso | Descrizioni ed esempi |
---|---|---|
TYPE_CAMERA |
Streaming della videocamera in background | Continua per accedere alla fotocamera dallo sfondo. Ad esempio le app di video chat che consentono il multitasking. |
TYPE_CONNECTED_DEVICE |
Trasferimento continuo di dati su un dispositivo esterno | Le interazioni con dispositivi esterni, inclusi i trasferimenti di dati che richiedono Bluetooth, NFC, IR, USB o una connessione di rete. Ad esempio, indossabile, baby monitor, cuffie, auto. |
TYPE_DATA_SYNC |
Trasferimento rete: backup e ripristino | Da utilizzare per funzioni avviate specificamente dall'utente. Ad esempio la selezione di una foto specifica di cui fare il backup sul cloud rispetto al backup automatico giornaliero di tutte le nuove foto. |
Trasferimento rete: caricamento o download | Ad esempio, recupero dei dati, elaborazione lato server. | |
Elaborazione locale: transcodifica di contenuti multimediali | Processo di conversione dei file multimediali, ad esempio audio e video, da un formato a un altro (ad esempio funzionalità come l'editing video). | |
Elaborazione locale: importazione o esportazione | Include la migrazione di file dalla scheda SD. | |
Elaborazione locale: altro | Da utilizzare per attività avviate specificamente dall'utente e non per le normali attività avviate dal sistema o dal server. Ad esempio crittografia, ridimensionamento. | |
TYPE_HEALTH |
Sincronizzazione dei dati sulla salute | Sincronizzazione dei dati sulla salute per le app della categoria fitness, che possono essere su più app o per collezionare i dati raccolti tramite il monitoraggio sul dispositivo. Ad esempio, contapassi, tracker per l'allenamento. |
TYPE_LOCATION |
Aggiornamenti della posizione in background: condivisione della posizione avviata dall'utente | Ad esempio, la funzionalità Trova amici, monitoraggio dell'attività del veicolo. |
Aggiornamenti della posizione in background: navigazione | Ad esempio, continuare la navigazione in auto nelle mappe e il monitoraggio delle corse per il ride sharing. | |
Geofencing | Definisci i parametri che circondano le aree di interesse. | |
TYPE_MEDIA_PLAYBACK |
Riproduzione di contenuti multimediali | Continua la riproduzione audio o video in background, incluso lo streaming. |
Mostra Picture in picture | Quando i contenuti multimediali sono ridotti a icona durante la riproduzione in background. | |
TYPE_MEDIA_PROJECTION |
Proiezione di contenuti multimediali e contenuti e streaming o registrazione con l'API MediaProjection | Proietta i contenuti multimediali su dispositivi esterni o non principali utilizzando le API MediaProjection, incluso lo streaming. |
TYPE_MICROPHONE |
Accesso all'audio in background | Acquisisci input audio, ad esempio comandi vocali per l'assistente virtuale senza salvare, registrazione vocale. |
TYPE_PHONE_CALL |
Chiamate: API di rete mobile/VoIP/telecomunicazioni | Supporto di varie funzionalità tastiera per le chiamate. |
TYPE_REMOTE_MESSAGING |
Inoltro di comunicazioni testuali a un altro dispositivo | Assiste senza continuità delle attività di messaggistica di un utente quando cambia dispositivo. Ad esempio, consenti agli utenti di inviare messaggi tramite un client web scansionando un codice QR e stabilendo una connessione tra il client web e lo smartphone. Non limitatamente agli SMS. |
La dichiarazione sarà disponibile entro novembre 2023 e ti daremo il tempo di completarla, ricevere feedback e apportare modifiche, se necessario.
Requisiti per l'intent a schermo intero per Android 14
Potresti voler utilizzare notifiche di intent a schermo intero per condividere messaggi ad alta priorità che richiedono l'attenzione immediata dell'utente. Per garantire che questa autorizzazione sia limitata ai casi d'uso appropriati con priorità elevata, per Android 14 stiamo introducendo limitazioni relative all'utilizzo dell'autorizzazione USE_FULL_SCREEN_INTENT
. Se limiti le notifiche in questo modo puoi garantire un'esperienza migliore agli utenti.
Se utilizzi l'autorizzazione USE_FULL_SCREEN_INTENT
, devi completare la dichiarazione di Play Console a partire dal 31 maggio 2024 per indicare se la tua app dispone di una funzionalità di base consentita e se è idonea per la concessione automatica. A partire dal 31 ottobre 2024, per le app che hanno come target Android 14 e versioni successive, questa autorizzazione sarà attiva per impostazione predefinita solo per le app con funzionalità di chiamata o sveglia. Altrimenti dovrai ottenere l'autorizzazione dell'utente per utilizzare USE_FULL_SCREEN_INTENT
. Per le app che non hanno completato la dichiarazione o che non sono state approvate per l'attivazione predefinita, gli sviluppatori dovranno chiedere agli utenti di concedere l'autorizzazione per le nuove installazioni e ridurre in modo controllato l'esperienza se l'autorizzazione viene negata.
Domande frequenti
Cosa cambierà per i servizi in primo piano in Android 14?Stiamo introducendo diversi nuovi tipi di servizio in primo piano e per ogni servizio in primo piano sarà obbligatorio dichiarare il tipo e la relativa autorizzazione. Ad esempio, se dichiari il tipo di servizio in primo piano "fotocamera", devi dichiarare anche l'autorizzazione FOREGROUND_SERVICE_CAMERA. L'utilizzo in primo piano deve essere conforme anche agli altri requisiti descritti nelle norme relative all'utilizzo illecito di dispositivi e reti.
Scegli il tipo di servizio in primo piano che corrisponde meglio all'utilizzo previsto del servizio in primo piano. Ad esempio, un'app di allenamento che monitora l'esercizio fisico di un utente può dichiarare il tipo di servizio in primo piano "salute". Se applicabile alla tua app, puoi anche scegliere più tipi di servizi in primo piano.
Quando le app destinate ad Android 14 utilizzano un servizio in primo piano, gli sviluppatori devono dichiarare l'autorizzazione appropriata per il tipo di servizio in primo piano specifico. Ad esempio, se la tua app utilizza il tipo di servizio in primo piano "posizione", dovrai dichiarare l'autorizzazione FOREGROUND_SERVICE_LOCATION. Le autorizzazioni per i servizi in primo piano che fanno riferimento a un tipo di servizio in primo piano specifico sono definite autorizzazioni normali e vengono concesse per impostazione predefinita al momento dell'installazione. Gli utenti non possono revocare queste autorizzazioni.
A seconda del tipo di servizio in primo piano, potrebbero essere previsti requisiti di sistema aggiuntivi. Potrebbe trattarsi di autorizzazioni di runtime che richiedono agli utenti di concedere l'autorizzazione prima di poter essere utilizzate. Ad esempio, se utilizzi il tipo di servizio in primo piano "posizione", l'utente deve anche concedere l'autorizzazione ACCESS_COARSE_LOCATION o ACCESS_FINE_LOCATION. Per informazioni aggiornate, consulta la documentazione.
In scenari limitati, se il tuo caso d'uso soddisfa le altre caratteristiche richieste per l'utilizzo del servizio in primo piano (come descritto nelle norme), puoi dichiarare il tipo di servizio in primo piano TYPE_SPECIAL_USE
. Tutti i tipi di servizi in primo piano sono soggetti a revisione.
"Percepibile dall'utente" significa che è necessario informare l'utente del fatto che un'attività di servizio in primo piano è in esecuzione sul suo dispositivo. Gli utenti possono essere considerati informati se avviano l'azione autonomamente; ad esempio, l'utente potrebbe riprodurre un brano o monitorare una corsa. L'app può anche informare gli utenti di un servizio in primo piano in esecuzione presentando una notifica chiara e precisa nella barra delle applicazioni del dispositivo.
Se hai scelto come target una versione di Android antecedente ad Android 14, continua a utilizzare l'attributo android:foregroundServiceType
nell'elemento <service> nel file manifest della tua app.
I processi di trasferimento di dati avviati dall'utente sono progettati per semplificare i trasferimenti di dati sulla rete. Hanno il monitoraggio dei vincoli e gestiscono automaticamente i wakelock. Il tipo di servizio in primo piano dataSync può includere il trasferimento dei dati locale o su una rete e può includere l'elaborazione locale dei dati sul dispositivo. Se il tuo caso d'uso prevede il trasferimento di dati tramite una rete (ad esempio Wi-Fi, mobile o Bluetooth) in risposta a una richiesta esplicita dell'utente, ti consigliamo di utilizzare il processo di trasferimento di dati avviato dall'utente anziché il tipo di servizio in primo piano dataSync.
Per Android 14, USE_FULL_SCREEN_INTENT
passerà da un'autorizzazione normale a un'autorizzazione di accesso alle app speciale e solo alle app la cui funzionalità di base è un caso d'uso con priorità elevata che prevede l'impostazione di una sveglia o la ricezione di chiamate o videochiamate verrà automaticamente concessa l'autorizzazione USE_FULL_SCREEN_INTENT
. Puoi considerare la funzionalità di base come lo scopo principale della tua app, senza la quale l'app non funziona o è inutilizzabile. Altre app possono continuare a usare l'autorizzazione, ma soltanto una volta che viene concessa dall'utente.
Queste modifiche entreranno in vigore il 31 maggio 2024.
Se la tua app ha come target Android 14 e versioni successive, potrai dichiarare che la tua app è un'app con funzionalità di base per l'intent a schermo intero nella pagina Contenuti app (Norme > Contenuti app) in Play Console. La dichiarazione sarà disponibile a partire da aprile 2024 e ti daremo il tempo di completarla.