Niveau d'API:15
Android 4.0.3 (ICE_CREAM_SANDWICH_MR1
) est une version incrémentielle de la famille de plates-formes Android 4.0 (ICE_CREAM_SANDWICH
). Cette version inclut de nouvelles fonctionnalités pour les utilisateurs et les développeurs, des modifications apportées aux API et diverses corrections de bugs.
Pour les développeurs, la plate-forme Android 4.0.3 est disponible en tant que composant téléchargeable pour le SDK Android. La plate-forme téléchargeable comprend une bibliothèque et une image système Android, ainsi qu'un ensemble de skins d'émulateur et plus encore. Pour commencer à développer ou à tester avec Android 4.0.3, utilisez Android SDK Manager pour télécharger la plate-forme dans votre SDK.
Présentation de l'API
Les sections ci-dessous présentent un aperçu technique des nouvelles API d'Android 4.0.3.
API Social Stream dans le fournisseur de contacts
Les applications qui utilisent des données de flux de réseau social, telles que les mises à jour de statut et les check-ins, peuvent désormais synchroniser ces données avec chacun des contacts de l'utilisateur, en fournissant des éléments dans un flux avec des photos pour chacun.
La table de base de données contenant le flux social d'un contact individuel est définie par android.provider.ContactsContract.StreamItems, dont l'URI est imbriqué dans l'annuaire ContactsContract.RawContacts
auquel les éléments de flux appartiennent. Chaque table de flux social comprend plusieurs colonnes pour les métadonnées de chaque élément du flux, comme une icône représentant la source (un avatar), un libellé pour l'élément, le contenu textuel principal, les commentaires sur l'élément (comme les réponses d'autres personnes), etc. Les photos associées à un flux sont stockées dans une autre table, définie par android.provider.ContactsContract.StreamItemPhotos, qui est disponible en tant que sous-répertoire de l'URI android.provider.ContactsContract.StreamItems.
Pour en savoir plus, consultez android.provider.ContactsContract.StreamItems et android.provider.ContactsContract.StreamItemPhotos.
Pour lire ou écrire des éléments de flux de réseau social pour un contact, une application doit demander l'autorisation de l'utilisateur en déclarant <uses-permission
android:name="android.permission.READ_SOCIAL_STREAM">
et/ou <uses-permission
android:name="android.permission.WRITE_SOCIAL_STREAM">
dans ses fichiers manifestes.
Fournisseur d'agenda
- Ajoute la classe
CalendarContract.Colors
pour représenter un tableau de couleurs dans le fournisseur d'agenda. La classe fournit des champs permettant d'accéder aux couleurs disponibles pour un compte donné. Les couleurs sont référencées par COLOR_KEY
, qui doit être unique pour un nom/type de compte donné. Ces valeurs ne peuvent être modifiées que par l'adaptateur de synchronisation.
- Ajout de
ALLOWED_AVAILABILITY
et ALLOWED_ATTENDEE_TYPES
pour la prise en charge de l'échange/de la synchronisation.
- Ajoute
TYPE_RESOURCE
(par exemple, des salles de conférence) pour les participants et AVAILABILITY_TENTATIVE
, ainsi que EVENT_COLOR_KEY
pour les événements.
CalendarContract.Colors
pour représenter un tableau de couleurs dans le fournisseur d'agenda. La classe fournit des champs permettant d'accéder aux couleurs disponibles pour un compte donné. Les couleurs sont référencées par COLOR_KEY
, qui doit être unique pour un nom/type de compte donné. Ces valeurs ne peuvent être modifiées que par l'adaptateur de synchronisation.ALLOWED_AVAILABILITY
et ALLOWED_ATTENDEE_TYPES
pour la prise en charge de l'échange/de la synchronisation.TYPE_RESOURCE
(par exemple, des salles de conférence) pour les participants et AVAILABILITY_TENTATIVE
, ainsi que EVENT_COLOR_KEY
pour les événements.Widgets de l'écran d'accueil
À partir d'Android 4.0, les widgets de l'écran d'accueil ne doivent plus inclure leur propre marge intérieure. À la place, le système ajoute désormais automatiquement une marge intérieure pour chaque widget, en fonction des caractéristiques de l'écran actuel. Cela permet d'obtenir une présentation plus uniforme et cohérente des widgets dans une grille. Pour aider les applications qui hébergent des widgets d'écran d'accueil, la plate-forme fournit une nouvelle méthode getDefaultPaddingForWidget()
. Les applications peuvent appeler cette méthode pour obtenir la marge définie par le système et en tenir compte lors du calcul du nombre de cellules à allouer au widget.
Correction orthographique
- Pour les applications qui accèdent aux services de correcteur orthographique, une nouvelle méthode
cancel()
annule toutes les tâches de correcteur orthographique en attente et en cours d'exécution dans une session. - Pour les services de correcteur orthographique, un nouvel indicateur de suggestions,
RESULT_ATTR_HAS_RECOMMENDED_SUGGESTIONS
, permet aux services de distinguer les suggestions de confiance élevée de celles de confiance faible. Par exemple, un correcteur orthographique peut définir l'indicateur si un mot saisi ne figure pas dans le dictionnaire utilisateur, mais qu'il propose des suggestions probables, ou ne pas définir l'indicateur si un mot saisi ne figure pas dans le dictionnaire et qu'il propose des suggestions moins utiles.Les applications connectées au correcteur orthographique peuvent utiliser l'indicateur
RESULT_ATTR_HAS_RECOMMENDED_SUGGESTIONS
en combinaison avec d'autres attributs de suggestion, ainsi que les méthodesgetSuggestionsAttributes()
etgetSuggestionsCount()
, pour déterminer si elles doivent marquer les mots saisis comme des fautes de frappe et proposer des suggestions. - Un nouveau style
FLAG_AUTO_CORRECTION
pour les plages de texte indique que la correction automatique est sur le point d'être appliquée à un mot/texte que l'utilisateur saisit/compose. Ce type de suggestion est affiché différemment pour indiquer que la correction automatique est en cours.
Bluetooth
Les nouvelles méthodes publiques fetchUuidsWithSdp()
et getUuids()
permettent aux applications de déterminer les fonctionnalités (UUID) compatibles avec un appareil distant. Dans le cas de fetchUuidsWithSdp()
, le système effectue une détection de service sur l'appareil distant pour obtenir les UUID compatibles, puis diffuse le résultat dans un intent ACTION_UUID
.
Kit d'UI
Les nouvelles méthodes setUserVisibleHint()
et getUserVisibleHint()
permettent à un fragment de définir une indication indiquant s'il est actuellement visible par l'utilisateur ou non. Le système diffère le démarrage des fragments qui ne sont pas visibles par l'utilisateur jusqu'à ce que les chargeurs des fragments visibles aient été exécutés. L'indice de visibilité est "true" par défaut.
Graphiques
- La nouvelle méthode
setDefaultBufferSize(int, int)
dansSurfaceTexture
définit la taille par défaut des tampons d'image. Cette méthode peut être utilisée pour définir la taille de l'image lors de la production d'images avecCanvas
(vialockCanvas(Rect)
) ou OpenGL ES (via une EGLSurface). - Ajout de définitions pour les énumérations de l'extension OpenGL ES GL_OES_EGL_image_external :
GL_REQUIRED_TEXTURE_IMAGE_UNITS_OES
,GL_SAMPLER_EXTERNAL_OES
,GL_TEXTURE_BINDING_EXTERNAL_OES
etGL_TEXTURE_EXTERNAL_OES
.
Accessibilité
- Les clients de
RemoteViews
peuvent désormais utiliser la méthodesetContentDescription()
pour définir et obtenir la description du contenu de n'importe quelle vue dans la mise en page gonflée. - Les méthodes
getMaxScrollX()
,getMaxScrollY()
,setMaxScrollX()
etsetMaxScrollY()
permettent aux applications d'obtenir et de définir le décalage de défilement maximal pour un objetAccessibilityRecord
. - Lorsque le mode d'exploration tactile est activé, un nouveau paramètre sécurisé
ACCESSIBILITY_SPEAK_PASSWORD
indique si l'utilisateur demande à l'IME de lire le texte saisi dans les champs de mot de passe, même lorsqu'un casque n'est pas utilisé. Par défaut, aucun texte de mot de passe n'est prononcé, sauf si un casque est utilisé.
Synthèse vocale
- Ajoute la nouvelle méthode
getFeatures()
pour interroger et activer la prise en charge du TTS réseau. - Ajoute une nouvelle classe d'écouteur,
UtteranceProgressListener
, que les moteurs peuvent enregistrer pour recevoir une notification d'erreurs de synthèse vocale.
Base de données
- Une nouvelle classe
CrossProcessCursorWrapper
permet aux fournisseurs de contenu de renvoyer plus efficacement les résultats d'une requête inter-processus. La nouvelle classe est un élément de base utile pour les curseurs de retour à la ligne qui seront envoyés aux processus à distance. Il peut également transformer des objetsCursor
normaux en objetsCrossProcessCursor
de manière transparente.La classe
CrossProcessCursorWrapper
corrige les problèmes de performances et les bugs courants rencontrés par les applications lors de l'implémentation de fournisseurs de contenu. - Le constructeur
CursorWindow(java.lang.String)
accepte désormais une chaîne de nom en entrée. Le système ne fait plus la distinction entre les fenêtres de curseur locales et distantes.CursorWindow(boolean)
est donc désormais obsolète.
Intents
Ajoute de nouvelles catégories pour cibler des types d'applications courants sur l'appareil, tels que CATEGORY_APP_BROWSER
, CATEGORY_APP_CALENDAR
, CATEGORY_APP_MAPS
, etc.
Appareil photo
MediaMetadataRetriever
ajoute la nouvelle constanteMETADATA_KEY_LOCATION
pour permettre aux applications d'accéder aux informations de localisation d'une image ou d'une vidéo.CamcorderProfile
ajoute les profils de résolution QVGA (320 x 240). Le niveau de qualité est représenté par les constantesQUALITY_QVGA
etQUALITY_TIME_LAPSE_QVGA
.- Les nouvelles méthodes
setVideoStabilization()
,getVideoStabilization()
etisVideoStabilizationSupported()
vous permettent de vérifier et de gérer la stabilisation vidéo d'unCamera
.
Autorisations
Voici les nouvelles autorisations:
- android.Manifest.permission#READ_SOCIAL_STREAM et android.Manifest.permission#WRITE_SOCIAL_STREAM: autorisez un adaptateur de synchronisation à lire et à écrire des données de flux social sur un contact dans le fournisseur de contacts partagé.
Pour obtenir un aperçu détaillé de toutes les modifications apportées aux API dans Android 4.0.3 (niveau d'API 15), consultez le rapport de différences des API.
Niveau d'API
L'API Android 4.0.3 est associée à un identifiant entier (15) stocké dans le système lui-même. Cet identifiant, appelé "niveau d'API", permet au système de déterminer correctement si une application est compatible avec le système avant de l'installer.
Pour utiliser les API introduites dans Android 4.0.3 dans votre application, vous devez compiler l'application avec une plate-forme Android compatible avec le niveau d'API 15 ou version ultérieure. Selon vos besoins, vous devrez peut-être également ajouter un attribut android:minSdkVersion="15"
à l'élément <uses-sdk>
.
Pour en savoir plus, consultez le document Niveaux d'API.