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 alle 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 una serie di skin emulatori e altro ancora. Per iniziare a sviluppare o testare su Android 4.0.3, utilizza Android SDK Manager per scaricare la piattaforma nell'SDK.

Panoramica dell'API

Le sezioni che seguono 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 dei social stream come gli aggiornamenti di stato e i check-in ora possono sincronizzare questi dati con ogni contatto dell'utente, fornendo elementi in uno stream insieme a foto per ciascuno.

La tabella di database che contiene lo stream social di un singolo contatto viene 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 ciascun elemento dello stream, ad esempio un'icona che rappresenta la sorgente (un avatar), un'etichetta dell'elemento, i contenuti testuali principali, 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.StreamItemFoto, disponibile come sottodirectory dell'URI android.provider.ContactsContract.StreamItems.

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

Per leggere o scrivere elementi del flusso 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 nella schermata Home

A partire da Android 4.0, i widget della schermata Home non dovrebbero più includere la propria spaziatura interna. Il sistema ora invece aggiunge automaticamente la 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 offre 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 attesa 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 affidabilità inferiore. Ad esempio, un controllo ortografico potrebbe impostare il flag se una parola di input non è nel dizionario utente ma presenta probabili suggerimenti oppure se non imposta il flag se una parola di input non è nel dizionario e contiene suggerimenti che probabilmente sono meno utili.

    Le app collegate al controllo ortografico possono utilizzare il flag RESULT_ATTR_HAS_RECOMMENDED_SUGGESTIONS in combinazione con altri attributi dei suggerimenti, nonché i metodi getSuggestionsAttributes() e getSuggestionsCount(), per determinare se contrassegnare le parole di input come errori ortografici e offrire suggerimenti.

  • Un nuovo stile FLAG_AUTO_CORRECTION per le sezioni di testo indica che la correzione automatica sta per essere applicata a una parola/testo che l'utente sta scrivendo/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 rilevamento del servizio sul dispositivo remoto per supportare gli 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 indicare se è attualmente visibile o meno all'utente. Il sistema rallenta l'inizio dei frammenti che non sono 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 ora possono utilizzare il metodo setContentDescription() per impostare e ottenere la descrizione dei contenuti di qualsiasi visualizzazione nel layout artificioso.
  • 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 non sono in uso le cuffie. Per impostazione predefinita, il testo della password non viene letto, a meno che non siano in uso un paio di cuffie.

Sintesi vocale

  • Aggiunge il nuovo metodo getFeatures()per eseguire query e attivare il supporto di 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 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 in remoto. Può anche trasformare 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 prende una stringa nome come input. Il sistema non fa più distinzione tra finestre cursore locali e remote, pertanto CursorWindow(boolean) è deprecato.

Situazioni

Aggiunge nuove categorie per il targeting dei tipi di applicazioni comuni sul dispositivo, come 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: consente a un adattatore di sincronizzazione di leggere e scrivere dati dello stream social per 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 sulle 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 successivo. A seconda delle tue esigenze, potrebbe anche essere necessario aggiungere un attributo android:minSdkVersion="15" all'elemento <uses-sdk>.

Per ulteriori informazioni, consulta il documento Livelli API.