API Android 4.0.3

Livello API: 15

Android 4.0.3 (ICE_CREAM_SANDWICH_MR1) è una release incrementale della famiglia di piattaforme Android 4.0 (ICE_CREAM_SANDWICH). Questa release include nuove funzionalità per utenti e sviluppatori, modifiche all'API e varie correzioni di bug.

Per gli sviluppatori, la piattaforma Android 4.0.3 è disponibile come componente scaricabile per l'SDK Android. La piattaforma scaricabile include una libreria Android e un'immagine di sistema, oltre a un set di skin per emulatori e altro ancora. Per iniziare a sviluppare o testare la piattaforma Android 4.0.3, utilizza Android SDK Manager per scaricare la piattaforma nel tuo SDK.

Panoramica dell'API

Le sezioni seguenti forniscono una panoramica tecnica delle nuove API in Android 4.0.3.

API Social Stream nel provider di contatti

Le applicazioni che utilizzano i dati degli stream social, come gli aggiornamenti di stato e i check-in, ora possono sincronizzare questi dati con ciascuno dei contatti dell'utente, fornendo gli elementi in uno stream insieme alle foto per ciascuno.

La tabella di database che contiene lo stream social di un singolo contatto è definita da android.provider.ContactsContract.StreamItems, l'URI per il quale è nidificato all'interno della directory ContactsContract.RawContacts a cui appartengono gli elementi del flusso. Ogni tabella di stream social include diverse colonne per i metadati relativi a ogni elemento dello stream, ad esempio un'icona che rappresenta la fonte (un avatar), un'etichetta per l'elemento, i contenuti testuali principali, commenti sull'elemento (ad esempio le risposte di altre persone) e altro ancora. Le foto associate a uno stream sono archiviate in un'altra tabella, definita da android.provider.ContactsContract.StreamItemPhotos, che è disponibile come sottodirectory dell'URI android.provider.ContactsContract.StreamItems.

Vedi android.provider.ContactsContract.StreamItems e android.provider.ContactsContract.StreamItemPhotos per ulteriori informazioni.

Per leggere o scrivere elementi dello stream social per un contatto, un'applicazione deve richiedere l'autorizzazione all'utente dichiarando <uses-permission android:name="android.permission.READ_SOCIAL_STREAM"> e/o <uses-permission android:name="android.permission.WRITE_SOCIAL_STREAM"> nei file manifest.

Provider di calendari

Widget schermata Home

A partire da Android 4.0, i widget della schermata Home non devono più includere la propria spaziatura interna. Il sistema ora aggiunge automaticamente spaziatura interna per ogni widget, in base alle caratteristiche della schermata corrente. Questo porta a una presentazione più uniforme e coerente dei widget in una griglia. Per assistere le applicazioni che ospitano widget della schermata Home, la piattaforma fornisce un nuovo metodo getDefaultPaddingForWidget(). Le applicazioni possono chiamare questo metodo per ottenere la spaziatura interna definita dal sistema e tenerne conto durante il calcolo del numero di celle da allocare al widget.

Controllo ortografico

  • Per le app che accedono ai servizi di controllo ortografico, un nuovo metodo cancel() annulla tutte le attività di controllo ortografico in sospeso ed in esecuzione in una sessione.
  • Per i servizi di controllo ortografico, un nuovo flag di suggerimenti, RESULT_ATTR_HAS_RECOMMENDED_SUGGESTIONS, consente ai servizi di distinguere i suggerimenti con affidabilità maggiore da quelli con confidenza minore. Ad esempio, un controllo ortografico potrebbe impostare il flag se una parola di input non è presente nel dizionario utente ma contiene probabili suggerimenti, oppure potrebbe non impostare il flag se una parola di input non è nel dizionario e contiene suggerimenti che probabilmente saranno meno utili.

    Le app collegate al controllo ortografico possono usare il flag RESULT_ATTR_HAS_RECOMMENDED_SUGGESTIONS insieme ad altri attributi di suggerimento, nonché i metodi getSuggestionsAttributes() e getSuggestionsCount(), per stabilire se contrassegnare le parole inserite come errori di battitura e offrire suggerimenti.

  • Un nuovo stile FLAG_AUTO_CORRECTION per le sezioni di testo indica che sta per essere applicata la correzione automatica a una parola o un testo che l'utente sta digitando o scrivendo. Questo tipo di suggerimento viene visualizzato in modo diverso, per indicare che è in corso la correzione automatica.

Bluetooth

I nuovi metodi pubblici fetchUuidsWithSdp() e getUuids() consentono alle app di determinare le funzionalità (UUID) supportate da un dispositivo remoto. Nel caso di fetchUuidsWithSdp(), il sistema esegue un service rilevamento sul dispositivo remoto per ottenere il supporto degli UUID, quindi trasmette il risultato in un intent ACTION_UUID.

Toolkit dell'interfaccia utente

I nuovi metodi setUserVisibleHint() e getUserVisibleHint() consentono a un frammento di impostare un suggerimento che indica se è attualmente visibile all'utente o meno. Il sistema evita l'inizio dei frammenti non visibili all'utente finché non vengono eseguiti i caricatori per i frammenti visibili. Il suggerimento sulla visibilità è "true" per impostazione predefinita.

Grafica

Accessibilità

  • I client di RemoteViews possono ora utilizzare il metodo setContentDescription() per impostare e ricevere la descrizione dei contenuti di qualsiasi vista nel layout ingrandito.
  • I metodi getMaxScrollX(), getMaxScrollY(), setMaxScrollX() e setMaxScrollY() consentono alle app di ottenere e impostare l'offset di scorrimento massimo per un oggetto AccessibilityRecord.
  • Quando è attiva la modalità di esplorazione al tocco, una nuova impostazione di sicurezza ACCESSIBILITY_SPEAK_PASSWORD indica se l'utente richiede all'IME di pronunciare il testo inserito nei campi delle password, anche quando le cuffie non sono in uso. Per impostazione predefinita, il testo della password non viene pronunciato, a meno che non siano in uso le cuffie.

Sintesi vocale

  • Aggiunge il nuovo metodo getFeatures()per eseguire query e abilitare il supporto della sintesi vocale di rete.
  • Aggiunge una nuova classe listener, UtteranceProgressListener, che i motori possono registrare per ricevere notifiche di errori di sintesi vocale.

Database

  • Una nuova classe CrossProcessCursorWrapper consente ai fornitori di contenuti di restituire i risultati per una query cross-process in modo più efficiente. La nuova classe è un componente di base utile per il wrapping dei cursori che verranno inviati ai processi da remoto. Può anche trasformare normali oggetti Cursor in oggetti CrossProcessCursor in modo trasparente.

    La classe CrossProcessCursorWrapper corregge problemi di prestazioni e bug comuni riscontrati dalle applicazioni durante l'implementazione dei fornitori di contenuti.

  • Il costruttore CursorWindow(java.lang.String) ora accetta una stringa nome come input. Il sistema non fa più distinzione tra le finestre di cursore locali e quelle di cursore remoto, pertanto CursorWindow(boolean) è deprecato.

Situazioni

Aggiunge nuove categorie per il targeting dei tipi comuni di applicazioni sul dispositivo, come CATEGORY_APP_BROWSER, CATEGORY_APP_CALENDAR, CATEGORY_APP_MAPS e altre.

Fotocamera

Autorizzazioni

Di seguito sono riportate nuove autorizzazioni:

  • android.Manifest.permission#READ_SOCIAL_STREAM e android.Manifest.permission#WRITE_SOCIAL_STREAM: consenti a un adattatore di sincronizzazione di leggere e scrivere dati dello stream social in un contatto nel fornitore di contatti condiviso.

Per una visualizzazione dettagliata di tutte le modifiche all'API in Android 4.0.3 (livello API 15), consulta il report Differenze API.

Livello API

All'API Android 4.0.3 viene assegnato un identificatore di numero intero (15) archiviato nel sistema stesso. Questo identificatore, chiamato "livello API", consente al sistema di determinare correttamente se un'applicazione è compatibile con il sistema prima di installarla.

Per utilizzare nella tua applicazione le API introdotte in Android 4.0.3, devi compilare l'applicazione su una piattaforma Android che supporti il livello API 15 o versioni successive. A seconda delle esigenze, potresti anche dover aggiungere un attributo android:minSdkVersion="15" all'elemento <uses-sdk>.

Per ulteriori informazioni, consulta il documento Livelli API.