API 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 plataformas 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 un componente descargable del SDK de Android. La plataforma descargable incluye una imagen del sistema y una biblioteca de Android, así como un conjunto de máscaras de emulador y mucho más. Para comenzar a desarrollar o realizar pruebas 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 API 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 y proporcionar elementos en una transmisión junto con fotos de cada uno.

La tabla de base de datos que contiene el flujo social de un contacto individual se define con android.provider.kotlin.StreamItems, el URI que está anidado dentro del directorio ContactsContract.RawContacts al que pertenecen los elementos de la transmisión. Cada tabla de transmisión social 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, comentarios sobre el elemento (como respuestas de otras personas) y mucho más. Las fotos asociadas con una transmisión se almacenan en otra tabla, definida por android.provider.kotlin.StreamItemPhotos, que está disponible como subdirectorio del URI android.provider.ContactsContract.StreamItems.

Consulta android.provider.Tabla.StreamItems y android.provider.Tabla.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 automáticamente padding 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 todas las tareas pendientes del corrector ortográfico en ejecución en una sesión.
  • Para los servicios del corrector ortográfico, una marca de sugerencias nueva, RESULT_ATTR_HAS_RECOMMENDED_SUGGESTIONS, permite que los servicios distingan entre las sugerencias de mayor confianza y las menos confiables. Por ejemplo, un corrector ortográfico podría establecer la marca si una palabra de entrada no está en el diccionario del usuario, pero tiene sugerencias probables, o no podría establecerla 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 sugerencias, así como los métodos getSuggestionsAttributes() y getSuggestionsCount(), para determinar si deben marcarse las palabras de entrada como errores tipográficos y ofrecer sugerencias.

  • Un nuevo estilo FLAG_AUTO_CORRECTION para los intervalos de texto indica que la corrección automática se aplicará a una palabra o texto que el usuario esté escribiendo o escribiendo. Este tipo de sugerencia se procesa 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) compatibles con un dispositivo remoto. En el caso de fetchUuidsWithSdp(), el sistema realiza un descubrimiento de servicios en el dispositivo remoto para obtener los UUID compatibles 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 un indicio de si actualmente es visible para el usuario o no. 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 para un objeto AccessibilityRecord.
  • Cuando se habilita el modo de exploración táctil, el nuevo parámetro de configuración seguro ACCESSIBILITY_SPEAK_PASSWORD indica si el usuario solicita que el IME diga el texto ingresado en los campos de contraseña, incluso cuando no se usan auriculares. De forma predeterminada, no se lee texto de la contraseña, a menos que se usen auriculares.

Texto a voz

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

Database

  • Una nueva clase CrossProcessCursorWrapper permite que los proveedores de contenido muestren resultados para una consulta entre procesos de manera más eficiente. La nueva clase 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 encuentran cuando se implementan proveedores de contenido.

  • El constructor CursorWindow(java.lang.String) ahora toma una string 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 orientar tipos comunes de aplicaciones en el dispositivo, como CATEGORY_APP_BROWSER, CATEGORY_APP_CALENDAR, CATEGORY_APP_MAPS y muchas más.

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 del Proveedor de contactos compartido.

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

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, denominado "nivel de API", permite que el sistema determine correctamente si una aplicación es compatible con él antes de instalarla.

Para usar las APIs que se introdujeron en Android 4.0.3 en tu aplicación, debes 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 sobre niveles de API.