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 e un'immagine di sistema Android, nonché una serie di skin per emulatori e altro ancora. Per iniziare a sviluppare o eseguire test su 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 in Provider di contatti

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

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

Per ulteriori informazioni, consulta android.provider.ContactsContract.StreamItems e android.provider.ContactsContract.StreamItemPhotos.

Per leggere o scrivere elementi dello stream di 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.

Fornitore di calendario

Widget della schermata Home

A partire da Android 4.0, i widget della schermata Home non devono più includere il proprio padding. Ora il sistema aggiunge automaticamente i margini per ogni widget in base alle caratteristiche della schermata corrente. Ciò comporta una presentazione più uniforme e coerente dei widget in una griglia. Per aiutare le applicazioni che ospitano widget della schermata Home, la piattaforma fornisce un nuovo metodo getDefaultPaddingForWidget(). Le applicazioni possono chiamare questo metodo per ottenere il padding definito dal sistema e tenerlo 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 attesa e in esecuzione in una sessione.
  • Per i servizi di controllo ortografico, un nuovo indicatore dei suggerimenti, RESULT_ATTR_HAS_RECOMMENDED_SUGGESTIONS, consente ai servizi di distinguere i suggerimenti con un livello di attendibilità più elevato da quelli con un livello di attendibilità inferiore. Ad esempio, un correttore ortografico potrebbe impostare il flag se una parola inserita non è presente nel dizionario dell'utente, ma presenta suggerimenti probabili, oppure non impostare il flag se una parola inserita non è presente nel dizionario e presenta suggerimenti che probabilmente sono meno utili.

    Le app collegate al correttore ortografico possono utilizzare l'indicatore RESULT_ATTR_HAS_RECOMMENDED_SUGGESTIONS in combinazione con altri attributi di suggerimento, nonché i metodi getSuggestionsAttributes() e getSuggestionsCount(), per determinare se contrassegnare le parole inserite come errori ortografici e offrire suggerimenti.

  • Un nuovo stile FLAG_AUTO_CORRECTION per gli intervalli di testo indica che la correzione automatica sta per essere applicata a una parola/un testo che l'utente sta digitando/componendo. 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 rilevamento dei servizi sul dispositivo remoto per ottenere gli UUID supportati, quindi trasmette il risultato in un'intent ACTION_UUID.

Toolkit per l'interfaccia utente

I nuovi metodi setUserVisibleHint() e getUserVisibleHint() consentono a un fragment di impostare un suggerimento su se è attualmente visibile all'utente o meno. Il sistema posticipa l'avvio dei frammenti non visibili all'utente finché non sono stati eseguiti i caricatori per i frammenti visibili. L'indicazione della visibilità è "true" per impostazione predefinita.

Grafica

Accessibilità

  • I client di RemoteViews ora possono utilizzare il metodo setContentDescription() per impostare e recuperare la descrizione dei contenuti di qualsiasi vista nel layout espanso.
  • I metodi getMaxScrollX(), getMaxScrollY(), setMaxScrollX() e setMaxScrollY() consentono alle app di ottenere e impostare l'offset di scorrimento massimo per un oggetto AccessibilityRecord.
  • Quando la modalità di esplorazione tocco è attivata, una nuova impostazione sicura ACCESSIBILITY_SPEAK_PASSWORD indica se l'utente richiede all'IME di leggere il testo inserito nei campi della password, anche quando non è in uso un auricolare. Per impostazione predefinita, il testo della password non viene letto, a meno che non sia in uso un auricolare.

Sintesi vocale

  • Aggiunge il nuovo metodo getFeatures()per eseguire query e attivare il supporto della sintesi vocale di rete.
  • Aggiunge una nuova classe di 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 di una query tra processi 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 gli oggetti Cursor normali in oggetti CrossProcessCursor in modo trasparente.

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

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

Situazioni

Aggiunge nuove categorie per scegliere come target tipi comuni di applicazioni sul dispositivo, ad esempio CATEGORY_APP_BROWSER, CATEGORY_APP_CALENDAR, CATEGORY_APP_MAPS e altre.

Fotocamera

Autorizzazioni

Di seguito sono riportate le nuove autorizzazioni:

  • android.Manifest.permission#READ_SOCIAL_STREAM e android.Manifest.permission#WRITE_SOCIAL_STREAM: consentono a un adattatore di sincronizzazione di leggere e scrivere i dati dello stream di social a un contatto nel fornitore di servizi di contatto 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 identificativo intero (15) memorizzato 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 le API introdotte in Android 4.0.3 nella tua applicazione, devi compilarla per una piattaforma Android che supporti il livello API 15 o superiore. A seconda delle tue esigenze, potresti anche dover aggiungere un attributo android:minSdkVersion="15" all'elemento <uses-sdk>.

Per ulteriori informazioni, consulta il documento Livelli API.