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, les modifications apportées à l'API et plusieurs 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 Android et une image système, ainsi qu'un ensemble d'apparences d'émulateur et plus encore. Pour commencer à développer ou à tester sur Android 4.0.3, utilisez Android SDK Manager afin de télécharger la plate-forme dans votre SDK.
Présentation de l'API
Les sections ci-dessous offrent un aperçu technique des nouvelles API disponibles dans Android 4.0.3.
API de flux sur les réseaux sociaux dans le fournisseur de contacts
Les applications qui utilisent des données de flux de réseaux sociaux, telles que des mises à jour d'état et des check-ins, peuvent désormais synchroniser ces données avec chacun des contacts de l'utilisateur, en fournissant des éléments dans un flux ainsi que des photos pour chacun d'eux.
La table de base de données contenant le flux sur les réseaux sociaux d'un contact individuel est définie par android.provider.ContactsContract.StreamItems, l'URI imbriqué dans le répertoire ContactsContract.RawContacts
auquel les éléments de flux appartiennent. Chaque table de flux de réseaux sociaux comprend plusieurs colonnes pour les métadonnées concernant chaque élément de flux, telles qu'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 (tels que 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, 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 sur les réseaux sociaux 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'agendas
- Ajout de la classe
CalendarContract.Colors
pour représenter une table de couleurs dans Calendar Provider. 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 mises à jour que par l'adaptateur de synchronisation.
- Ajout de
ALLOWED_AVAILABILITY
et ALLOWED_ATTENDEE_TYPES
pour la prise en charge des échanges et de la synchronisation.
- Ajoute
TYPE_RESOURCE
(comme 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 une table de couleurs dans Calendar Provider. 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 mises à jour que par l'adaptateur de synchronisation.ALLOWED_AVAILABILITY
et ALLOWED_ATTENDEE_TYPES
pour la prise en charge des échanges et de la synchronisation.TYPE_RESOURCE
(comme 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 une présentation plus uniforme et cohérente des widgets dans une grille. Pour aider les applications qui hébergent des widgets de l'écran d'accueil, la plate-forme fournit une nouvelle méthode getDefaultPaddingForWidget()
. Les applications peuvent appeler cette méthode pour obtenir la marge intérieure définie par le système et en tenir compte lors du calcul du nombre de cellules à allouer au widget.
Correcteur orthographique
- Pour les applications qui accèdent aux services du correcteur orthographique, une nouvelle méthode
cancel()
annule toutes les tâches du correcteur orthographique en attente et en cours d'exécution au cours d'une session. - Pour les services du correcteur orthographique, un nouvel indicateur de suggestions,
RESULT_ATTR_HAS_RECOMMENDED_SUGGESTIONS
, permet aux services de distinguer les suggestions avec un niveau de confiance élevé de celles dont le niveau de confiance est inférieur. Par exemple, un correcteur orthographique peut définir l'indicateur si un mot d'entrée ne se trouve pas dans le dictionnaire de l'utilisateur, mais qu'il a probablement des suggestions, ou ne pas le définir si un mot d'entrée ne figure pas dans le dictionnaire et propose des suggestions susceptibles d'être 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 s'il faut marquer les mots saisis comme des fautes de frappe et proposer des suggestions. - Un nouveau style
FLAG_AUTO_CORRECTION
pour les segments de texte indique que la correction automatique est sur le point d'être appliquée à un mot ou à un texte que l'utilisateur saisit ou rédige. Ce type de suggestion s'affiche différemment pour indiquer qu'une 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 recherche de service sur l'appareil distant pour obtenir les UUID compatibles, puis diffuse le résultat dans un intent ACTION_UUID
.
kit UI
Les nouvelles méthodes setUserVisibleHint()
et getUserVisibleHint()
permettent à un fragment de définir une indication 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 tant que les chargeurs des fragments visibles n'ont pas été exécutés. L'indicateur de visibilité est défini sur "true" par défaut.
Graphismes
- 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 lorsque vous produisez des 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 prononcer le texte saisi dans les champs de mot de passe, même lorsqu'aucun casque n'est utilisé. Par défaut, aucun mot de passe n'est énoncé, sauf si un casque est utilisé.
Synthèse vocale
- Ajout de la nouvelle méthode
getFeatures()
pour envoyer des requêtes et activer la compatibilité avec la synthèse vocale réseau. - Ajout d'une classe d'écouteur,
UtteranceProgressListener
, que les moteurs peuvent enregistrer pour recevoir une notification des 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 composant de base utile pour encapsuler les curseurs qui seront envoyés aux processus à distance. Il peut également transformer des objetsCursor
normaux en objetsCrossProcessCursor
de manière transparente.La classe
CrossProcessCursorWrapper
résout 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
Ajout de catégories pour cibler les 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 de réseaux sociaux pour un contact dans le fournisseur de contacts partagé.
Pour obtenir une vue détaillée de toutes les modifications apportées à l'API dans Android 4.0.3 (niveau d'API 15), consultez le rapport sur les différences d'API.
Niveau d'API
L'API Android 4.0.3 se voit attribuer un identifiant entier (15) stocké dans le systè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 sur une plate-forme Android compatible avec le niveau d'API 15 ou supérieur. En fonction de 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.