APIs de Android 2.3.3

Nivel de API: 10

Android 2.3.3 (GINGERBREAD_MR1) es una pequeña actualización de funciones que agrega varias mejoras y APIs a la plataforma de Android 2.3.

Para los desarrolladores, la plataforma Android 2.3.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 2.3.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 novedades para desarrolladores en la versión 2.3.3, que incluyen las funciones y los cambios nuevos en la API de framework desde la versión anterior.

Comunicación de campo cercano (NFC)

Android 2.3.3 proporciona compatibilidad mejorada y extendida con NFC, para permitir que las aplicaciones interactúen con más tipos de etiquetas de nuevas maneras.

Un conjunto nuevo y completo de APIs otorga a las aplicaciones acceso de lectura y escritura a una gama más amplia de tecnologías de etiquetas estándar, incluidas las siguientes:

  • NFC-A (ISO 14443-3A)
  • NFC-B (ISO 14443-3B)
  • NFC-F (JIS 6319-4)
  • NFC-V (ISO 15693)
  • ISO-DEP (ISO 14443-4)
  • MIFARE Classic
  • Ultraliviano MIFARE
  • Etiquetas NDEF de foro NFC

La plataforma también proporciona una API y un protocolo de comunicación entre pares limitados. Las actividades en primer plano pueden usar la API para registrar un mensaje NDEF que se enviará a otros dispositivos NFC cuando se conecten.

El envío avanzado de etiquetas ahora otorga a las aplicaciones más control sobre cómo y cuándo se inician, cuando se descubre una etiqueta NFC. Anteriormente, la plataforma usaba un envío de intents de un solo paso para notificar a las aplicaciones interesadas que se descubrió una etiqueta. La plataforma ahora usa un proceso de cuatro pasos que permite que la app en primer plano controle un evento de etiqueta antes de pasarlo a cualquier otra aplicación (android.nfc.NfcAdapter.enableForegroundDispatch()). El nuevo proceso de envío también permite que las apps escuchen contenido y tecnologías de etiquetas específicas en función de dos acciones de intent nuevas: android.nfc.action.NDEF_DISCOVERED y android.nfc.action.TECH_DISCOVERED.

La API de NFC está disponible en los paquetes android.nfc y android.nfc.tech. Las clases clave son las siguientes:

  • NfcAdapter, que representa el hardware NFC en el dispositivo.
  • NdefMessage, que representa un mensaje de datos NDEF, el formato estándar en el que los "registros" que transportan datos se transmiten entre dispositivos y etiquetas. Un mensaje NDEF de ciertos registros NDEF de diferentes tipos. Las aplicaciones pueden recibir estos mensajes de intents NDEF_DISCOVERED, TECH_DISCOVERED o TAG_DISCOVERED.
  • NdefRecord, entregado en un NdefMessage, que describe el tipo de datos que se comparte y contiene los datos en sí.
  • Tag, que representa una etiqueta que escanea el dispositivo. Se admiten varios tipos de etiquetas según la tecnología de etiquetas subyacente.
  • TagTechnology, una interfaz que otorga a las aplicaciones acceso a las propiedades de la etiqueta y a las operaciones de E/S basadas en las tecnologías presentes en la etiqueta. Para obtener una lista completa de las tecnologías de etiquetas compatibles con Android 2.3.3, consulta android.nfc.tech.

La comunicación NFC se basa en la tecnología inalámbrica del hardware del dispositivo y no está presente en todos los dispositivos Android. Los dispositivos Android que no admitan NFC mostrarán un objeto nulo cuando se llame a getDefaultAdapter(Context), y context.getPackageManager().hasSystemFeature(PackageManager.FEATURE_NFC) mostrará false. Sin embargo, la API de NFC siempre está presente, independientemente de la compatibilidad de hardware subyacente.

Para usar la API de NFC, las aplicaciones deben solicitar el permiso del usuario declarando <uses-permission android:name="android.permission.NFC"> en sus archivos de manifiesto.

Además, los desarrolladores pueden solicitar filtros en Google Play, de modo que sus aplicaciones no sean detectables para los usuarios cuyos dispositivos no admitan NFC. Para solicitar un filtrado, agrega <uses-feature android:name="android.hardware.nfc" android:required="true"> al manifiesto de la aplicación.

Si quieres obtener más información, lee la guía para desarrolladores de NFC.

Bluetooth

Android 2.3.3 agrega compatibilidad de plataforma y API para las conexiones de sockets no seguros de Bluetooth. Esto permite que las aplicaciones se comuniquen con dispositivos simples que tal vez no ofrezcan una IU para la autenticación. Consulta createInsecureRfcommSocketToServiceRecord(java.util.UUID) y listenUsingInsecureRfcommWithServiceRecord(java.lang.String, java.util.UUID) para obtener más información.

Gráficos

  • Una nueva clase BitmapRegionDecoder permite a las aplicaciones decodificar una región rectangular de una imagen. La API es particularmente útil cuando una imagen original es grande y la aplicación solo necesita partes de ella.
  • Un nuevo campo inPreferQualityOverSpeed en BitmapFactory.Options permite que las aplicaciones usen un método de IDCT más preciso, pero un poco más lento, en la decodificación de JPEG. Esto, a su vez, mejora la calidad de la imagen reconstruida.

Marco de trabajo de medios

Reconocimiento de voz

La API de reconocimiento de voz incluye constantes nuevas que te permiten administrar los resultados de la búsqueda por voz de nuevas maneras. Aunque las constantes nuevas no son necesarias para el uso normal del reconocimiento de voz, puedes usarlas para ofrecer una vista diferente de los resultados de la búsqueda por voz en tu aplicación. Para obtener más información, consulta RecognizerResultsIntent.

Nivel de API

La plataforma Android 2.3.3 entrega una versión actualizada de la API de framework. A la API de Android 2.3.3 se le asigna un identificador de número entero, 10, 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 el sistema antes de instalarla.

Para usar las APIs presentadas en Android 2.3.3 en tu aplicación, debes compilarla con la biblioteca de Android que se proporciona en la plataforma de SDK de Android 2.3.3. Según tus necesidades, es posible que también debas agregar un atributo android:minSdkVersion="10" al elemento <uses-sdk> en el manifiesto de la aplicación. Si tu aplicación está diseñada para ejecutarse solo en Android 2.3 y versiones posteriores, declarar el atributo evita que la aplicación se instale en versiones anteriores de la plataforma.

Para obtener más información, consulta ¿Qué es el nivel de API?