Panoramica di funzionalità e API

Android 12 introduce nuove fantastiche funzionalità e API per gli sviluppatori. Le sezioni che seguono ti aiutano a scoprire le funzionalità delle tue app e a iniziare con le API correlate.

Per un elenco dettagliato delle API nuove, modificate e rimosse, leggi l'articolo Differenze API report. Per maggiori dettagli sulle nuove API, visita la pagina Android Riferimento API: le nuove API sono evidenziate per garantire la visibilità. Inoltre, per sulle aree in cui le modifiche apportate alla piattaforma potrebbero interessare le tue app, consulta i cambiamenti nel comportamento di Android 12 per le app che hanno come target Android 12 e per tutti di terze parti.

Esperienza utente

Material You

Android 12 introduce un nuovo linguaggio di design chiamato Material Tu, che ti aiuta a creare app bellissime e più personalizzate. Per portare tutto il nuovo Material Design 3 gli aggiornamenti delle app, prova una versione alpha di Material Design Componenti.

Material You

Miglioramenti ai widget

Android 12 rinnova l'API Widgets esistente per migliorare utenti e sviluppatori esperienza nella piattaforma e nei launcher. Abbiamo creato una guida per aiutarti assicurati che il widget sia compatibile con Android 12 e per aggiornarlo le funzionalità di machine learning.

Vedi i miglioramenti dei widget Android 12 per ulteriori informazioni.

Inserimento di contenuti avanzati

Android 12 introduce una nuova API unificata che consente alla tua app ricevi contenuti avanzati da qualsiasi fonte disponibile: appunti, tastiera o trascinamento un calo.

Per ulteriori informazioni, consulta l'articolo Ricevere informazioni .

API delle schermate iniziali delle app

Android 12 introduce una nuova animazione per il lancio di app per tutte le app che include: movimento in-app dal momento del lancio, una schermata iniziale che mostra l'icona dell'app, e una transizione all'app stessa. Consulta lo sviluppatore delle schermate iniziali Google Cloud per ulteriori dettagli.

API con angoli arrotondati

Android 12 introduce RoundedCorner e WindowInsets.getRoundedCorner(int position), che forniscono il raggio e il punto centrale per gli angoli arrotondati.

Per ulteriori informazioni, vedi Angoli arrotondati.

Esperienze aptiche avanzate

Android 12 amplia gli strumenti per la creazione di feedback aptico informativo per l'interfaccia utente eventi, effetti immersivi e deliziosi per i giochi e tecnologia aptica attenzionale per la produttività.

Effetti attuatore

Android 12 aggiunge effetti espressivi come bassi spunta sfruttano la larghezza di banda in frequenza più ampia degli attuatori più recenti. Gioco gli sviluppatori possono ora accedere a varie attuatori in modo indipendente nel gioco per offrire lo stesso effetto in modo sincrono o effetti aptici diversi su più attuatori. Per gli sviluppatori, consigliamo di utilizzare costanti e primitivi come componenti di base per effetti aptici avanzati, costanti per migliorare gli eventi e compositore aptica alla sequenza per ottenere effetti più complessi. API disponibili per la prova su Pixel 4 e continuiamo a collaborare con i nostri partner produttori di dispositivi per le ultime novità sul supporto della tecnologia aptica per gli utenti di tutto l'ecosistema.

Effetti aptici con accoppiamento audio

Le app per Android 12 possono generare feedback aptico derivato da una sessione audio utilizzando la vibrazione del telefono. Questo offre l'opportunità di offrire giochi e esperienze audio. Ad esempio, le suonerie con tecnologia aptica avanzata possono essere utili per identificare o un gioco di guida potrebbero simulare la sensazione di terreno accidentato.

Consulta la HapticGenerator documentazione di riferimento per ulteriori informazioni.

Ricerca App

Android 12 introduce AppSearch, un motore di ricerca on-device ad alte prestazioni, come servizio di sistema. AppSearch consente alle applicazioni di indicizzare dati strutturati ed eseguire ricerche al suo interno con funzionalità integrate di ricerca a testo intero. Inoltre, AppSearch supporta funzionalità di ricerca native, come l'indicizzazione altamente efficiente recupero e recupero, supporto multilingue e ranking di pertinenza.

Diagramma che illustra l'indicizzazione e la ricerca in AppSearch

AppSearch è disponibile in due versioni: un indice locale da utilizzare per l'applicazione compatibile con le versioni precedenti di Android o con un indice centrale per l'intero sistema in Android 12. Utilizzando l'indice centrale, può consentire la visualizzazione dei propri dati sulle piattaforme UI di sistema componente di intelligence preinstallato nel sistema. Esattamente quali dati vengono visualizzato sulle piattaforme UI di sistema dipende dall'OEM. Inoltre, i tuoi un'applicazione può condividere in modo sicuro i dati con altre applicazioni, per consentire per eseguire ricerche anche nei dati.

Scopri di più su AppSearch nel guida per gli sviluppatori e iniziare a utilizzarla con la libreria AppSearch Jetpack, offre una piattaforma API a misura di sviluppatore e un processore di annotazioni assistenza in tempo reale.

Modalità di gioco

API Game Mode e Modalità di gioco interventi d'uso che ti consentono di ottimizzare al gameplay dando la priorità a caratteristiche come le prestazioni o la durata della batteria in base alle impostazioni degli utenti o alle configurazioni specifiche del gioco.

Per ulteriori informazioni, vedi Modalità di gioco.

Consigli e miglioramenti della funzionalità Picture in picture (PIP)

Android 12 introduce i seguenti miglioramenti per la modalità PIP:

Supporto per i nuovi gesti PIP

Android 12 ora supporta l'archiviazione protetta e pizzica per lo zoom gesti per PIP finestra:

  • Per accantonare la finestra, l'utente può trascinarla verso sinistra o verso destra perimetrale. Per rimuovere la finestra dall'elenco filtri, l'utente può toccare la parte visibile della la finestra nascosta o trascinala fuori.

  • Ora l'utente può ridimensionare la finestra PIP usando le dita per eseguire lo zoom.

Android 12 ha aggiunto miglioramenti estetici significativi al modello le transizioni tra le finestre a schermo intero e PIP. Ti consigliamo vivamente di l'implementazione di tutte le modifiche applicabili; dopo averlo fatto, queste modifiche scalare automaticamente su schermi di grandi dimensioni, come pieghevoli e tablet, senza qualsiasi altra attività richiesta.

Le funzionalità sono le seguenti:

Nuovi avvisi di chiamata che consentono di classificare l'importanza delle chiamate in arrivo

Android 12 aggiunge un nuovo stile di notifica Notification.CallStyle per le telefonate. L'utilizzo di questo modello consente alla tua app di indicare l'importanza le chiamate attive grazie a un chip in evidenza che indica l'ora della chiamata la barra di stato; l'utente può toccare questo chip per tornare alla chiamata.

Dato che le chiamate in arrivo e in corso sono le più importanti per gli utenti, questi le notifiche vengono classificate in cima all'area. Questo ranking consente inoltre sistema per inoltrare potenzialmente queste chiamate prioritarie ad altri dispositivi.

Implementa il seguente codice per tutti i tipi di chiamate.

Kotlin

// Create a new call with the user as caller.
val incoming_caller = Person.Builder()
    .setName("Jane Doe")
    .setImportant(true)
    .build()

Java

// Create a new call with the user as caller.
Person incoming_caller = new Person.Builder()
    .setName("Jane Doe")
    .setImportant(true)
    .build();

Utilizza forIncomingCall() per creare una notifica dello stile di chiamata per una chiamata in arrivo.

Kotlin

// Create a call style notification for an incoming call.
val builder = Notification.Builder(context, CHANNEL_ID)
    .setContentIntent(contentIntent)
    .setSmallIcon(smallIcon)
    .setStyle(
         Notification.CallStyle.forIncomingCall(caller, declineIntent, answerIntent))
    .addPerson(incoming_caller)

Java

// Create a call style notification for an incoming call.
Notification.Builder builder = Notification.Builder(context, CHANNEL_ID)
    .setContentIntent(contentIntent)
    .setSmallIcon(smallIcon)
    .setStyle(
        Notification.CallStyle.forIncomingCall(caller, declineIntent, answerIntent))
    .addPerson(incoming_caller);

Utilizza forOngoingCall() per creare una notifica dello stile di chiamata per una chiamata in corso.

Kotlin

// Create a call style notification for an ongoing call.
val builder = Notification.Builder(context, CHANNEL_ID)
    .setContentIntent(contentIntent)
    .setSmallIcon(smallIcon)
    .setStyle(
         Notification.CallStyle.forOnGoingCall(caller, hangupIntent))
    .addPerson(second_caller)

Java

// Create a call style notification for an ongoing call.
Notification.Builder builder = Notification.Builder(context, CHANNEL_ID)
    .setContentIntent(contentIntent)
    .setSmallIcon(smallIcon)
    .setStyle(
        Notification.CallStyle.forOnGoingCall(caller, hangupIntent))
    .addPerson(second_caller);

Utilizza forScreeningCall() per creare una notifica dello stile di chiamata per filtrare una chiamata.

Kotlin

// Create a call style notification for screening a call.
val builder = Notification.Builder(context, CHANNEL_ID)
    .setContentIntent(contentIntent)
    .setSmallIcon(smallIcon)
    .setStyle(
         Notification.CallStyle.forScreeningCall(caller, hangupIntent, answerIntent))
    .addPerson(second_caller)

Java

Notification.Builder builder = Notification.Builder(context, CHANNEL_ID)
    .setContentIntent(contentIntent)
    .setSmallIcon(smallIcon)
    .setStyle(
        Notification.CallStyle.forScreeningCall(caller, hangupIntent, answerIntent))
    .addPerson(second_caller);

Supporto di immagini avanzate per le notifiche

In Android 12, ora puoi arricchire l'esperienza di notifica della tua app invio di immagini animate in MessagingStyle() e BigPictureStyle() notifiche. Inoltre, l'app ora può consentire agli utenti di inviare messaggi immagine quando rispondono ai messaggi dall'area notifiche.

Miglioramenti alla modalità immersiva per la navigazione tramite gesti

Android 12 consolida il comportamento esistente per consentire agli utenti di esegui comandi di navigazione tramite gesti in modalità immersiva . Nella Inoltre, Android 12 offre un comportamento di compatibilità con le versioni precedenti immersivo .

Condivisione recente di URL (solo su Pixel)

Sui dispositivi Pixel, ora gli utenti possono condividere link a contenuti web visualizzati di recente direttamente dalla schermata Recenti. Dopo aver visitato i contenuti in un'app, l'utente possono scorrere fino alla schermata Recenti e trovare l'app in cui hanno visualizzato i contenuti. quindi tocca il pulsante del link per copiare o condividere l'URL.

Per ulteriori informazioni, vedi Abilita URL recenti condivisione.

Sicurezza e privacy

Dashboard della privacy

Una sequenza temporale verticale mostra le diverse app che hanno
         accesso alle informazioni sulla posizione e a che ora si sono verificati gli accessi
Figura 1. Schermata Utilizzo della posizione, parte delle Norme sulla privacy .

Sui dispositivi supportati con Android 12 o versioni successive, è prevista La schermata della dashboard viene visualizzata nelle impostazioni di sistema. In questa schermata gli utenti possono accedere schermate separate che mostrano quando le app accedono a posizione, fotocamera e microfono informazioni. Ogni schermata mostra una cronologia dei momenti in cui diverse app hanno avuto accesso a un tipo specifico di dati. La figura 1 mostra la cronologia di accesso ai dati per la posizione informazioni.

La tua app può fornire una motivazione per utenti per aiutarli a capire perché l'app accede a posizione, fotocamera o microfono informazioni. Questa motivazione può essere visualizzata nella nuova schermata della dashboard della privacy, schermata delle autorizzazioni dell'app o entrambe.

Autorizzazioni Bluetooth

Android 12 introduce BLUETOOTH_SCAN, BLUETOOTH_ADVERTISE, e BLUETOOTH_CONNECT autorizzazioni aggiuntive. Queste autorizzazioni semplificano le app che hanno come target Android 12 per interagire con il Bluetooth dispositivi mobili, soprattutto per le app che non richiedono l'accesso alla posizione del dispositivo.

Aggiornare le dichiarazioni delle autorizzazioni Bluetooth della tua app

Per preparare il dispositivo al targeting di Android 12 o versioni successive, esegui l'aggiornamento dalla logica della tua app. Anziché dichiarare un insieme legacy di dispositivi Bluetooth autorizzazioni, dichiarano un insieme più moderno di dispositivi Bluetooth autorizzazioni.

Ricerca gruppo di autorizzazioni

Su Android 12 o versioni successive, puoi eseguire query su come il sistema organizza le autorizzazioni fornite dalla piattaforma gruppi di autorizzazioni:

  • Per determinare il gruppo di autorizzazioni in cui il sistema ha inserito un autorizzazione definita dalla piattaforma, getGroupOfPlatformPermission()
  • per determinare le autorizzazioni definite dalla piattaforma a cui il sistema ha assegnato un gruppo di autorizzazioni specifico, getPlatformPermissionsForGroup()
di Gemini Advanced.

Nascondi finestre di overlay applicazione

Per offrire agli sviluppatori un maggiore controllo su ciò che vedono gli utenti quando interagiscono con il per gli sviluppatori, Android 12 offre la possibilità di nascondere le finestre sovrapposte disegnate dalle app con SYSTEM_ALERT_WINDOW autorizzazione.

Dopo aver dichiarato HIDE_OVERLAY_WINDOWS l'autorizzazione, un'app può chiamare setHideOverlayWindows() per indicare che tutte le finestre di tipo TYPE_APPLICATION_OVERLAY deve essere nascosta quando è visibile la finestra dell'app. Le app potrebbero scegliere di farlo questo quando vengono visualizzate schermate sensibili, come i flussi di conferma delle transazioni.

Le app che mostrano finestre di tipo TYPE_APPLICATION_OVERLAY dovrebbero prendere in considerazione alternative che potrebbero essere più appropriate per il loro caso d'uso, come Picture in picture o bolle.

Flag di protezione delle autorizzazioni dei firmatari noti

A partire da Android 12, Attributo knownCerts per autorizzazioni a livello di firma ti permette di fare riferimento alle sintesi delle firma note certificati alla dichiarazione nel tempo.

La tua app può dichiarare questo attributo e usare il flag knownSigner per consentire dispositivi e app per concedere autorizzazioni di firma ad altri Google Cloud, senza dover firmare le app al momento della produzione e della spedizione del dispositivo.

Attestazione delle proprietà del dispositivo

Android 12 espande l'insieme di app che possono verificare le proprietà del dispositivo che si trovano in un'attestazione certificato quando queste app generano una nuova chiave.

A partire da Android 9 (livello API 28), criteri relativi ai dispositivi proprietari (RPD) che utilizzano Keymaster 4.0 o versioni successive può Verificare le proprietà del dispositivo in questi certificati di attestazione. A partire da Android 12, qualsiasi app destinata ad Android 12 (livello API 31) o versioni successive può funzionare questa verifica utilizzando setDevicePropertiesAttestationIncluded() .

Le proprietà del dispositivo generate includono quanto segue Build campi:

  • BRAND
  • DEVICE
  • MANUFACTURER
  • MODEL
  • PRODUCT

Azioni di notifica sicure nella schermata di blocco

A partire da Android 12, il corso Notification.Action.Builder supporta setAuthenticationRequired() che consente alla tua app di richiedere che un dispositivo sia sbloccato prima che la tua app richiami una determinata azione di notifica. Questo metodo consente di aggiungere un ulteriore livello di sicurezza per le notifiche sui dispositivi bloccati.

Stringhe localizzabili per il prompt biometrico

Android 12 introduce nuove API per aiutarti a migliorare la biometria della tua app di autenticazione degli utenti. La nuova BiometricManager.Strings include la classe nidificata getButtonLabel(), getPromptMessage(), e getSettingName() che consentono all'app di recuperare un'etichetta localizzata e leggibile dall'utente messaggio di richiesta o nome dell'impostazione dell'app. Utilizza queste etichette per creare contenuti più precisi Istruzioni rivolte agli utenti specifiche per l'autenticazione biometrica come "Usa Sblocco con il Volto" o "Usa l'impronta per continuare".

Rilevamento del phishing nelle app di messaggistica (solo Pixel)

Un utente vede un messaggio come questo quando un messaggio sospetto viene rilevata.

Sui dispositivi Pixel supportati, Android 12 esegue il rilevamento del phishing sui messaggi ricevute dalle app di messaggistica più diffuse. Il sistema utilizza il machine learning sul dispositivo per rilevare attività sospette. Quando viene rilevato, il sistema visualizza si sovrappone alla parte superiore dell'interfaccia utente dell'app di messaggistica per avvisare gli utenti. Ad esempio, phishing il rilevamento può avvisare gli utenti dei seguenti rischi potenziali:

  • Richieste sospette, ad esempio l'invio di un codice, denaro o simili
  • URL non attendibili
  • Allegati dannosi
  • Link ad app dannose

Oltre ad avvisare l'utente, l'overlay consente anche all'utente di segnalare una messaggio sospetto e fornire feedback sugli avvisi emessi dal sistema.

Gli sviluppatori possono disattivare questa funzionalità aggiungendo un nuovo tag di metadati che includa la stringa com.google.android.ALLOW_PHISHING_DETECTION nel file manifest dell'app . Ad esempio:

<manifest>
    <application android:name="com.messagingapp">
        <meta-data android:name="com.google.android.ALLOW_PHISHING_DETECTION" android:value="false" />

    </application>
</manifest>

Contenuti multimediali

Transcodifica multimediale compatibile

A partire da Android 12 (livello API 31), il sistema può eseguire automaticamente HEVC(H.265) e HDR (HDR10 e HDR10+) registrati sul dispositivo in formato AVC (H.264), un formato ampiamente compatibili con i lettori standard. Sfrutta i codec moderni sono disponibili senza sacrificare la compatibilità con le applicazioni meno recenti.

Per ulteriori informazioni, consulta Transcodifica di contenuti multimediali compatibili.

Classe di rendimento

Android 12 introduce uno standard chiamato classe di prestazioni. R performance specifica le capacità hardware di base di Android i tuoi requisiti. Ogni dispositivo Android dichiara la classe di prestazioni che Google Cloud. Gli sviluppatori possono controllare la classe di prestazioni del dispositivo in fase di runtime offrono esperienze aggiornate che sfruttano appieno le funzionalità le funzionalità di machine learning.

Consulta Classe del rendimento per ulteriori informazioni.

Miglioramenti alla codifica video

Android 12 definisce un set standard di chiavi per controllare il il valore del parametro di quantizzazione (QP) per la codifica video, che consente agli sviluppatori evitando il codice specifico del fornitore.

Le nuove chiavi sono disponibili in API MediaFormat e anche Raccolta multimediale NDK:

A partire dai codificatori video Android 12, viene applicata una qualità minima soglia. Ciò garantisce che gli utenti non abbiano un'esperienza di qualità estremamente bassa durante la codifica di video con complessità elevata.

Focus audio

A partire da Android 12 (livello API 31), quando un'app richiede lo stato attivo dell'audio, mentre mentre un'altra app è attiva e in riproduzione, il sistema nasconde in dissolvenza l'app in riproduzione.

Consulta la sezione Audio focus in Android 12 e versioni successive per ulteriori informazioni.

Aggiornamenti di MediaDrm

Per determinare se è necessario un componente decoder sicuro con API di MediaDrm attuali, devi seguire questi passaggi:

  1. Crea un MediaDrm.
  2. Apri una sessione per ottenere un ID sessione.
  3. Crea un MediaCrypto utilizzando l'ID sessione.
  4. Chiama il numero MediaCrypto.requiresSecureDecoderComponent(mimeType).

Con i nuovi metodi requiresSecureDecoder(@NonNull String mime) e requiresSecureDecoder(@NonNull String mime, @SecurityLevel int level) puoi verificarlo non appena crei un MediaDrm.

Fotocamera

Estensioni del fornitore di Fotocamera 2

Molti dei produttori di dispositivi partner hanno creato estensioni per le videocamere personalizzate, ad esempio come Bokeh, HDR, modalità notturna e altre ancora, che le app vogliono usare per creare esperienze differenziate sui loro dispositivi. La fotocameraX libreria supporta già queste estensioni personalizzate del fornitore. In Android 12, le estensioni del fornitore sono ora esposte direttamente nella piattaforma.

Questa aggiunta aiuta le app con contenuti Camera2 le implementazioni sfruttano le estensioni del fornitore senza modifiche significative al codice precedente. Le API dell'estensione Camera2 espongono esattamente lo stesso insieme come in CameraX, che sono già supportate in molte diverse dispositivi, così puoi usarli senza bisogno configurazione aggiuntiva.

Per ulteriori informazioni, vedi CameraExtensionCharacteristics

Supporto sensore fotocamera Quad Bayer

Oggi molti dispositivi Android sono dotati di sensori delle fotocamere ad altissima risoluzione, tipicamente con motivi Quad o Nona Bayer, che offrono grande flessibilità in termini di qualità dell'immagine e prestazioni in condizioni di scarsa illuminazione. Android 12 introduce nuove API di Google Cloud che permettono alle app di terze parti di sfruttare appieno queste funzionalità i sensori. Le nuove API supportano il comportamento specifico di questi sensori e tengono conto del fatto che potrebbero supportare diverse configurazioni e combinazioni di stream quando si opera in modalità a massima risoluzione o "massima risoluzione" rispetto alla modalità "predefinita".

Elementi grafici e immagini

Fornisci alle app l'accesso diretto alle tracce tombali

A partire da Android 12, puoi accedere alla funzionalità tombstone relativa agli arresti anomali nativa della tua app come buffer di protocollo attraverso ApplicationExitInfo.getTraceInputStream(): . Il buffer di protocollo viene serializzato utilizzando questo schema. In precedenza, l'unico modo per ottenere l'accesso a queste informazioni era tramite la Android Debug Bridge (adb).

Per maggiori informazioni, vedi Fornire alle app l'accesso diretto alle tracce tombstone.

Supporto di immagini AVIF

Android 12 introduce il supporto per le immagini che utilizzano il formato file immagine AV1 (AVIF). AVIF è un formato container per immagini e sequenze di immagini codificate utilizzando AV1. AVIF sfrutta i contenuti codificati intra-frame dei video compressione. Questo migliora drasticamente la qualità dell'immagine a parità di dimensioni di file rispetto ai formati immagine più vecchi, come JPEG. Per un'analisi approfondita delle vantaggi di questo formato, vedi il blog di Jake Archibald post.

Sfocature più semplici, filtri di colore e altri effetti

Android 12 aggiunge il nuovo RenderEffect che applica effetti grafici comuni come sfocature, filtri di colore, Shar Android effetti e altro ancora per View e delle gerarchie di rendering. Gli effetti possono essere combinati come effetti della catena (che compongono un effetto interno ed esterno) o effetti combinati. Android diverso i dispositivi potrebbero supportare o meno la funzionalità a causa della potenza di elaborazione limitata.

Gli effetti possono essere applicati anche alla RenderNode sottostante per View chiamando View.setRenderEffect(RenderEffect).

Per implementare un RenderEffect:

view.setRenderEffect(RenderEffect.createBlurEffect(radiusX, radiusY, SHADER_TILE_MODE))

Decodifica di immagini animate native

In Android 12, l'NDK L'API ImageDecoder è stata espansa decodificare tutti i fotogrammi e i dati di tempo dalle immagini che utilizzano la GIF animata e formati di file animati WebP. Quando è stata introdotta in Android 11, questa API decodifica solo la prima immagine in questi formati.

Usa ImageDecoder al posto di librerie di terze parti per diminuire ulteriormente l'APK dimensioni e trarrai vantaggio dai futuri aggiornamenti relativi alla sicurezza e alle prestazioni.

Per maggiori dettagli sull'API, consulta la documentazione di riferimento API e l'esempio su GitHub.

Connettività

Mantenere attive le app complementari

Per far sì che le app complementari rimangano in esecuzione per gestire il dispositivo, Android 12 introduce le API che:

  • Consente di attivare un'app quando un dispositivo associato è nella portata.
  • Garantire che il processo continui a essere eseguito mentre il dispositivo rimane entro intervallo.

Per utilizzare le API, i dispositivi devono essere connessi tramite Dispositivo complementare Gestore. Per ulteriori informazioni le informazioni, vedi CompanionDeviceManager.startObservingDevicePresence() e CompanionDeviceService.onDeviceAppeared().

Profili Gestione dispositivi associati

Una finestra di dialogo delle autorizzazioni che utilizza un profilo del dispositivo associato per richiedere più autorizzazioni in una singola richiesta.

Le app partner su Android 12 (livello API 31) e versioni successive possono utilizzare un dispositivo associato profili quando ti connetti a uno smartwatch. L'utilizzo di un profilo semplifica la registrazione raggruppando la concessione di autorizzazioni di un insieme di autorizzazioni specifiche per il tipo di dispositivo in un solo passaggio.

Le autorizzazioni in bundle vengono concesse all'app complementare una volta che il dispositivo si connette e dura solo finché il dispositivo è associato. Se elimini l'app o la rimozione dell'associazione comporta la rimozione delle autorizzazioni.

Per ulteriori informazioni, vedi AssociationRequest.Builder.setDeviceProfile()

Miglioramenti della stima della larghezza di banda

In Android 12, le funzionalità di stima della larghezza di banda fornite getLinkDownstreamBandwidthKbps() e getLinkUpstreamBandwidthKbps() sono stati migliorati per la connettività sia Wi-Fi sia cellulare. I valori restituiti ora rappresenta la velocità effettiva media ponderata complessiva dell'utente per operatore o Wi-Fi SSID, tipo di rete e livello di segnale in tutte le applicazioni sul dispositivo. Ciò può restituire una stima più precisa e realistica della velocità effettiva prevista, fornisce stime sull'avvio a freddo della tua applicazione e richiede meno cicli rispetto ad altri metodi di stima della velocità effettiva.

Miglioramenti apportati a Wi-Fi Aware (NAN)

Android 12 aggiunge alcuni miglioramenti a Wi-Fi Aware:

  • Sui dispositivi con Android 12 (livello API 31) e versioni successive, puoi utilizzare La callback di onServiceLost() per ricevere un avviso quando la tua app ha perso un servizio rilevato a causa di: l'interruzione o lo spostamento del servizio fuori dal raggio d'azione.
  • Il modo in cui vengono configurati più percorsi dei dati (NAN Data Paths) in modo più efficiente. Le versioni precedenti utilizzavano la messaggistica L2 per lo scambio di app peer informazioni di chi ha avviato l'azione, il che ha introdotto la latenza. Su dispositivi in esecuzione Android 12 e versioni successive, il risponditore (server) può essere configurato per accettare qualsiasi collega, cioè non ha bisogno di conoscere chi ha iniziato le informazioni in anticipo. In questo modo si velocizza il recupero del percorso dei dati link point-to-point con una sola richiesta di rete.
  • Per evitare che il framework rifiuti le richieste di rilevamento o connessione a causa all'esaurimento delle risorse sui dispositivi con Android 12 e più in alto, puoi chiamare WifiAwareManager.getAvailableAwareResources() Il valore restituito di questo metodo ti consente di ottenere il numero di dati disponibili percorsi, il numero di sessioni di pubblicazione disponibili e il numero sessioni di iscrizione.

Peer-to-peer simultanea + connessione a internet

Quando i dispositivi che hanno come target Android 12 (livello API 31) e versioni successive vengono eseguiti su dispositivi con il supporto hardware, utilizzando le tecnologie peer-to-peer di rete non scollegheranno il tuo connessione Wi-Fi esistente durante la creazione della connessione al dispositivo peer. A per verificare il supporto di questa funzione, WifiManager.isMultiStaConcurrencySupported()

Attiva lo schermo disattivato per i pagamenti NFC

Nelle app destinate ad Android 12 e versioni successive, puoi attivare NFC. i pagamenti senza lo schermo del dispositivo attivo impostando Da requireDeviceScreenOn a false. Per ulteriori informazioni sui pagamenti NFC con schermo bloccato o disattivato, vedi Schermo spento e schermata di blocco comportamento degli utenti.

Spazio di archiviazione

Android 12 introduce la seguente gestione dello spazio di archiviazione funzionalità:

Funzionalità di base

Aggiornamenti automatici delle app

Android 12 introduce setRequireUserAction() per le app che utilizzano API PackageInstaller. Questo metodo consente alle app che hanno eseguito l'installazione di eseguire aggiornamenti delle app senza richiedere il per confermare l'azione.

Informazioni del chipset del dispositivo

Android 12 aggiunge due costanti a android.os.Build che espongono le informazioni su fornitore e modello del chipset SoC tramite l'SDK. Puoi recuperare questo informazioni chiamando Build.SOC_MANUFACTURER e Build.SOC_MODEL rispettivamente.

Aggiornamenti alle API Java principali

In base alle richieste e alla collaborazione con gli sviluppatori, abbiamo aggiunto quanto segue librerie principali in Android 12:

Corso API
java.lang.Deprecated
java.lang.Byte
java.lang.Short
java.lang.Math
java.lang.StrictMath
java.util.Set copyOf()
java.util.Map copyOf()
java.util.List copyOf()
java.time.Duration
java.time.LocalTime