APIs de Android 4.0.3

Nivel de API: 15

Android 4.0.3 (ICE_CREAM_SANDWICH_MR1) es una versión incremental de la familia de la plataforma de Android 4.0 (ICE_CREAM_SANDWICH). Esta versión incluye funciones nuevas para usuarios y desarrolladores, cambios en la API y varias correcciones de errores.

Para los desarrolladores, la plataforma Android 4.0.3 está disponible como componente descargable del SDK de Android. La plataforma descargable incluye una biblioteca de Android, una imagen del sistema, un conjunto de máscaras de emulador y mucho más. Para comenzar a desarrollar o probar con Android 4.0.3, usa Android SDK Manager para descargar la plataforma en tu SDK.

Descripción general de la API

En las siguientes secciones, se proporciona una descripción general técnica de las nuevas APIs en Android 4.0.3.

API de Social Stream en el Proveedor de contactos

Las aplicaciones que usan datos de redes sociales, como actualizaciones de estado y registros, ahora pueden sincronizar esos datos con cada uno de los contactos del usuario, lo que proporciona elementos en una transmisión junto con fotos para cada uno.

La tabla de la base de datos que contiene el flujo social de un contacto individual se define mediante android.provider.drawable.StreamItems, el URI que se anida en el directorio ContactsContract.RawContacts al que pertenecen los elementos de la secuencia. Cada tabla de redes sociales incluye varias columnas de metadatos sobre cada elemento de la transmisión, como un ícono que representa la fuente (un avatar), una etiqueta para el elemento, el contenido de texto principal, los comentarios sobre el elemento (como las respuestas de otras personas) y mucho más. Las fotos asociadas con una transmisión se almacenan en otra tabla, definida por android.provider.tables.StreamItemPhotos, que está disponible como un subdirectorio del URI android.provider.tables.StreamItems.

Consulta android.provider.tables.StreamItems y android.provider.tables.StreamItemPhotos para obtener más información.

Para leer o escribir elementos de redes sociales de un contacto, una aplicación debe solicitar el permiso del usuario declarando <uses-permission android:name="android.permission.READ_SOCIAL_STREAM"> o <uses-permission android:name="android.permission.WRITE_SOCIAL_STREAM"> en sus archivos de manifiesto.

Proveedor de calendario

Widgets de la pantalla principal

A partir de Android 4.0, los widgets de la pantalla principal ya no deben incluir su propio padding. En cambio, el sistema ahora agrega padding automáticamente para cada widget, según las características de la pantalla actual. Esto conduce a una presentación más uniforme y coherente de los widgets en una cuadrícula. Para ayudar a las aplicaciones que alojan widgets de la pantalla principal, la plataforma proporciona un nuevo método getDefaultPaddingForWidget(). Las aplicaciones pueden llamar a este método para obtener el relleno definido por el sistema y tenerlo en cuenta cuando calculen la cantidad de celdas que se asignarán al widget.

Corrector ortográfico

  • En el caso de las apps que acceden a los servicios del corrector ortográfico, un nuevo método cancel() cancela las tareas pendientes y en ejecución del corrector ortográfico en una sesión.
  • Para los servicios de corrector ortográfico, una nueva marca de sugerencias, RESULT_ATTR_HAS_RECOMMENDED_SUGGESTIONS, permite que los servicios distingan entre las sugerencias de mayor confianza y las de menor confianza. Por ejemplo, un corrector ortográfico podría establecer la marca si una palabra de entrada no se encuentra en el diccionario del usuario, pero tiene sugerencias probables, o no establecer la marca si una palabra de entrada no está en el diccionario y tiene sugerencias que probablemente sean menos útiles.

    Las apps conectadas al corrector ortográfico pueden usar la marca RESULT_ATTR_HAS_RECOMMENDED_SUGGESTIONS en combinación con otros atributos de sugerencia, así como con los métodos getSuggestionsAttributes() y getSuggestionsCount(), para determinar si se deben marcar las palabras de entrada como errores tipográficos y ofrecer sugerencias.

  • Un nuevo estilo FLAG_AUTO_CORRECTION para intervalos de texto indica que la corrección automática está a punto de aplicarse a una palabra o un texto que el usuario está escribiendo. Este tipo de sugerencia se renderiza de manera diferente para indicar que se está realizando la corrección automática.

Bluetooth

Los nuevos métodos públicos fetchUuidsWithSdp() y getUuids() permiten que las apps determinen las funciones (UUID) que admite un dispositivo remoto. En el caso de fetchUuidsWithSdp(), el sistema realiza un descubrimiento de servicios en el dispositivo remoto para obtener los UUID admitidos y, luego, transmite el resultado en un intent ACTION_UUID.

Kit de herramientas de IU

Los nuevos métodos setUserVisibleHint() y getUserVisibleHint() permiten que un fragmento establezca una sugerencia de si es visible para el usuario en este momento. El sistema aplaza el inicio de los fragmentos que no son visibles para el usuario hasta que se hayan ejecutado los cargadores de fragmentos visibles. La sugerencia de visibilidad es "verdadera" de forma predeterminada.

Gráficos

Accesibilidad

  • Los clientes de RemoteViews ahora pueden usar el método setContentDescription() para establecer y obtener la descripción del contenido de cualquier View en el diseño aumentado.
  • Los métodos getMaxScrollX(), getMaxScrollY(), setMaxScrollX() y setMaxScrollY() permiten que las apps obtengan y establezcan el desplazamiento máximo de un objeto AccessibilityRecord.
  • Cuando se habilita el modo de exploración táctil, un nuevo parámetro de configuración seguro ACCESSIBILITY_SPEAK_PASSWORD indica si el usuario solicita que el IME lea el texto ingresado en los campos de contraseña, incluso cuando no se usan auriculares. De forma predeterminada, no se lee el texto de la contraseña, a menos que se estén usando auriculares.

Texto a voz

  • Se agregó el nuevo método getFeatures() para realizar consultas y habilitar la compatibilidad con TTS de red.
  • Se agregó una nueva clase de objeto de escucha, UtteranceProgressListener, que los motores pueden registrar para recibir notificaciones de errores de síntesis de voz.

Base de datos

  • Una nueva clase CrossProcessCursorWrapper permite que los proveedores de contenido muestren resultados para una consulta entre procesos de manera más eficiente. La clase nueva es un componente básico útil para unir cursores que se enviarán a los procesos de forma remota. También puede transformar objetos Cursor normales en objetos CrossProcessCursor de manera transparente.

    La clase CrossProcessCursorWrapper corrige problemas comunes de rendimiento y errores que las aplicaciones encontraron al implementar proveedores de contenido.

  • El constructor CursorWindow(java.lang.String) ahora toma una cadena de nombre como entrada. El sistema ya no distingue entre ventanas de cursor locales y remotas, por lo que CursorWindow(boolean) dejó de estar disponible.

Intents

Se agregaron categorías nuevas para orientarse a tipos comunes de aplicaciones en el dispositivo, como CATEGORY_APP_BROWSER, CATEGORY_APP_CALENDAR, CATEGORY_APP_MAPS, entre otras.

Cámara

Permisos

Los siguientes son permisos nuevos:

  • android.Manifest.permission#READ_SOCIAL_STREAM y android.Manifest.permission#WRITE_SOCIAL_STREAM: Permite que un adaptador de sincronización lea y escriba datos de redes sociales para un contacto en el Proveedor de contactos compartido.

Para obtener una vista detallada de todos los cambios de la API en Android 4.0.3 (nivel de API 15), consulta el Informe de diferencias de las APIs.

Nivel de API

A la API de Android 4.0.3 se le asigna un identificador de número entero, 15, que se almacena en el propio sistema. Este identificador, llamado "nivel de API", permite que el sistema determine correctamente si una aplicación es compatible con él antes de instalarla.

Para usar las APIs de Android 4.0.3 en tu aplicación, deberás compilarla en una plataforma de Android que admita el nivel de API 15 o versiones posteriores. Según tus necesidades, es posible que también debas agregar un atributo android:minSdkVersion="15" al elemento <uses-sdk>.

Para obtener más información, consulta el documento Niveles de API.