API Android 4.0.3

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

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éthodes getSuggestionsAttributes() et getSuggestionsCount(), 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

Accessibilité

  • Les clients de RemoteViews peuvent désormais utiliser la méthode setContentDescription() 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() et setMaxScrollY() permettent aux applications d'obtenir et de définir le décalage de défilement maximal pour un objet AccessibilityRecord.
  • 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 objets Cursor normaux en objets CrossProcessCursor 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

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.