APIs de Android 2.3.3

Nivel de API: 10

Android 2.3.3 (GINGERBREAD_MR1) es una versión pequeña 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 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 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, 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 ofrece 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 brinda a las aplicaciones acceso de lectura y escritura a una gama más amplia de tecnologías de etiquetas estándar, que incluye lo siguiente:

  • NFC-A (ISO 14443-3A)
  • NFC-B (ISO 14443-3B)
  • NFC-F (JIS 6319-4)
  • NFC-V (ISO 15693)
  • ISO-DEP (ISO 14443-4)
  • Clásica MIFARE
  • 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 brinda a las aplicaciones más control sobre cómo y cuándo se inician y cuándo 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 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 escuchen tecnologías de etiquetas y contenido específico de etiquetas 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 ciertos 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 que transporta 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 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 de hardware subyacente.

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

Además, los desarrolladores pueden solicitar filtros en Google Play para que sus aplicaciones no sean detectables para los usuarios cuyos dispositivos no admitan 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 con plataforma y API para las conexiones de sockets no seguros de Bluetooth. Esto permite que las aplicaciones se comuniquen con dispositivos simples que podrían 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 a las aplicaciones decodificar una región rectangular a partir 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 multimedia

Reconocimiento de voz

La API de reconocimiento de voz incluye nuevas constantes para permitirte administrar los resultados de la búsqueda por voz de nuevas maneras. Si bien 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 de 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, 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 2.3.3 en tu aplicación, debes compilarla en 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 la aplicación se instale en versiones anteriores de la plataforma.

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