APIs de Android 2.3.3

Nivel de API: 10

Android 2.3.3 (GINGERBREAD_MR1) es una versión con pocas funciones que agrega varias mejoras y APIs a la plataforma de Android 2.3.

Para los desarrolladores, la plataforma de Android 2.3.3 está disponible como un componente descargable del SDK de Android. La plataforma descargable incluye una biblioteca y una imagen del sistema de Android, así como un conjunto de temas de emulador y mucho más. Para comenzar a desarrollar o probar en Android 2.3.3, usa el Administrador de SDK de Android 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 los desarrolladores en la versión 2.3.3, incluidas las funciones nuevas y los cambios en la API del 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 nuevo conjunto integral de APIs les brinda 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
  • MIFARE Ultralight
  • Etiquetas NDEF del NFC Forum

La plataforma también proporciona una API y un protocolo de comunicación punto a punto 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 de etiquetas avanzado ahora les brinda 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 aplicación en primer plano tome el control de un evento de etiqueta antes de que se pase a cualquier otra aplicación (android.nfc.NfcAdapter.enableForegroundDispatch()). El nuevo proceso de envío también permite que las apps detecten contenido y tecnologías de etiquetas específicas, según 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 del dispositivo.
  • NdefMessage, que representa un mensaje de datos NDEF, el formato estándar en el que se transmiten los "registros" que llevan datos entre dispositivos y etiquetas. Un mensaje NDEF contiene muchos registros NDEF de diferentes tipos. Las aplicaciones pueden recibir estos mensajes de intents NDEF_DISCOVERED, TECH_DISCOVERED o TAG_DISCOVERED.
  • NdefRecord, que se entrega en un NdefMessage, que describe el tipo de datos que se comparten y lleva los datos en sí.
  • Tag, que representa una etiqueta escaneada por el dispositivo. Se admiten varios tipos de etiquetas, según la tecnología de etiquetas subyacente.
  • TagTechnology, una interfaz que les brinda a las aplicaciones acceso a las propiedades de etiqueta y las operaciones de E/S según 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 admiten 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 con el 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 el filtrado en Google Play para que sus aplicaciones no sean detectables para los usuarios cuyos dispositivos no admiten NFC. Para solicitar el filtrado, agrega <uses-feature android:name="android.hardware.nfc" android:required="true"> al manifiesto de la aplicación.

Para obtener más información, consulta la guía para desarrolladores de NFC.

Bluetooth

Android 2.3.3 agrega compatibilidad de plataforma y API para conexiones de socket no seguras de Bluetooth. Esto permite que las aplicaciones se comuniquen con dispositivos simples que pueden no ofrecer 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 que las aplicaciones decodifiquen 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 la imagen.
  • 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.

Framework de medios

Reconocimiento de voz

La API de reconocimiento de voz incluye constantes nuevas para permitirte administrar los resultados de la búsqueda por voz de nuevas maneras. Aunque no se necesitan las constantes nuevas 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 información, consulta RecognizerResultsIntent.

Nivel de API

La plataforma de Android 2.3.3 ofrece 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 sistema. Este identificador, llamado "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 que se introdujeron en Android 2.3.3 en tu aplicación, debes compilarla con la biblioteca de Android que se proporciona en la plataforma del 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 se instale en versiones anteriores de la plataforma.

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