APIs de Android 2.2

Nivel de API: 8

Android 2.2 es una versión secundaria de la plataforma que incluye funciones del usuario, funciones para desarrolladores, cambios en las APIs y correcciones de errores. Si deseas obtener información sobre las funciones para desarrolladores y los cambios en la API, consulta la sección API de Framework.

Para los desarrolladores, la plataforma Android 2.2 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.2, usa el SDK Manager de Android para descargar la plataforma en tu SDK.

Aspectos destacados de la plataforma

Para ver una lista de las nuevas funciones del usuario y los aspectos destacados de la plataforma, consulta el documento Funciones destacadas de la plataforma Android 2.2.

Nivel de API

La plataforma de Android 2.2 entrega una versión actualizada de la API de framework. A la API de Android 2.2 se le asigna un identificador de número entero, 8, 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.2 en tu aplicación, debes establecer el valor adecuado, "8", en los atributos android:minSdkVersion del elemento <uses-sdk> del manifiesto de tu aplicación.

Para obtener más información sobre cómo usar el nivel de API, consulta el documento Niveles de API.

Cambios en la API de framework

En las siguientes secciones, se proporciona información sobre los cambios realizados en la API del framework de la aplicación proporcionada por la plataforma de Android 2.2.

Instalación de apps en medios de almacenamiento externo

La plataforma de Android ahora permite que las aplicaciones soliciten la instalación en los medios de almacenamiento externo del dispositivo (como la tarjeta SD), en lugar de la instalación en la memoria interna del dispositivo.

Los desarrolladores de aplicaciones pueden expresar la ubicación de instalación preferida para sus aplicaciones mediante un atributo nuevo de <manifest> en el archivo de manifiesto, android:installLocation. El atributo admite tres valores: "internalOnly", "preferExternal" y "auto". Durante la instalación, el sistema verifica el valor de android:installLocation y, si es posible, instala la aplicación .apk según la ubicación preferida. Si la aplicación solicitó una instalación externa, el sistema la instala en una partición privada y encriptada en el medio externo. Una vez que el archivo .apk de una aplicación se instala externamente, el sistema le permite al usuario cambiar la ubicación de almacenamiento del archivo .apk y moverlo a la memoria interna del dispositivo, si es necesario (y viceversa), a través de Administrar aplicaciones en la configuración del usuario.

De forma predeterminada, el sistema instala todas las aplicaciones en la memoria interna del dispositivo, excepto aquellas que solicitan de manera explícita una instalación externa. Esto significa que el sistema siempre instalará aplicaciones heredadas en la memoria interna, ya que no tienen acceso al atributo android:installLocation. Sin embargo, es posible configurar y compilar una aplicación heredada de modo que se instale internamente en versiones anteriores de la plataforma y externamente en Android 2.2 y plataformas posteriores, si es necesario.

Ten en cuenta que solicitar la instalación en los medios externos del dispositivo no es adecuado para todas las aplicaciones, en especial porque es posible que el medio externo se pueda extraer y, luego, desactivar y volver a activar podría interrumpir la experiencia del usuario y la configuración del sistema.

Para obtener más información sobre cómo configurar una ubicación de instalación preferida para tu aplicación, incluido un análisis de los tipos de aplicaciones que deben y no deben solicitar la instalación externa, lee el documento Ubicación de la instalación de la app.

Copia de seguridad de datos

La plataforma ahora proporciona un servicio de copia de seguridad generalizado que las aplicaciones pueden usar para crear copias de seguridad y restablecer datos del usuario, a fin de garantizar que los usuarios puedan conservar sus datos cuando cambien de dispositivo o reinstalen la aplicación. El administrador de copias de seguridad controla el trabajo de transportar los datos de la aplicación desde y hacia el área de almacenamiento de copias de seguridad en la nube. El administrador de copias de seguridad puede almacenar cualquier tipo de datos, desde datos arbitrarios hasta archivos, y administrar las operaciones de copia de seguridad y restablecimiento de manera atómica. Para obtener más información, consulta Copia de seguridad de datos.

Gráficos

Contenido multimedia

  • Se agregaron nuevas APIs en android.media.AudioManager para administrar el foco de audio, el control de transporte, la pérdida transitoria de foco de audio y el autosilenciado de fondo.
  • Nuevo intent de transmisión para enrutar audio a SCO: ACTION_SCO_AUDIO_STATE_CHANGED con extras que indican un estado nuevo
  • Se agregaron nuevas APIs en SoundPool para detectar que se complete la carga de sonido.
  • Nuevas APIs en SoundPool para pausar y reanudar automáticamente
  • Se agregaron nuevas APIs en MediaRecorder para especificar la configuración de audio para la cantidad de canales, la codificación y las tasas de muestreo, y la tasa de muestreo.
  • Nuevas APIs para agregar archivos a la base de datos de contenido multimedia, de modo que se analicen automáticamente. Consulta MediaScannerConnection.scanFile y MediaScannerConnection.OnScanCompletedListener.

Reconocimiento de voz y motores de reconocimiento de terceros

  • La plataforma proporciona nuevas API de reconocimiento de voz que permiten a las aplicaciones tener una mejor interacción con el reconocedor de voz disponible. Por ejemplo, las APIs son suficientes para integrar profundamente el reconocimiento de voz en un IME.
  • La plataforma también proporciona una clase base RecognitionService que permite a los desarrolladores externos crear motores de reconocimiento de complementos.
  • Nueva interfaz de RecognitionListener para recibir devoluciones de llamada
  • Nuevos extras RecognizerIntent que permiten que una app solicitante especifique detalles como idioma preferido, longitud mínima en milisegundos, etcétera.

Cámara y videocámara

  • Se realizaron cambios en la API de vista previa de la cámara para mejorar la eficiencia de la canalización de vista previa.
  • Nueva orientación de pantalla para la cámara (ahora puede funcionar en orientación vertical).
  • Se agregaron nuevas APIs en android.hardware.Camera para administrar el nivel de zoom.
  • Se agregaron nuevas APIs android.hardware.Camera.Parameters para consultar y configurar la configuración de la cámara del dispositivo, como la longitud focal, la exposición, el nivel de zoom y el ángulo de visión, entre otros.
  • Nueva utilidad thumbnail para miniaturas de imágenes y videos.
  • Las nuevas clases CamcorderProfile y CamcorderProfile permiten que las apps determinen las capacidades de cámara del hardware del dispositivo.
  • Nueva compatibilidad en android.media.ExifInterface para recuperar el GPS y la longitud focal.

Administrador de políticas de dispositivo

Las nuevas APIs de administración de políticas de dispositivos permiten a los desarrolladores escribir aplicaciones de “administrador de dispositivos” que pueden controlar las funciones de seguridad del dispositivo, como la seguridad mínima de las contraseñas, la limpieza de datos, etcétera. Los usuarios pueden seleccionar los administradores que están habilitados en sus dispositivos. Para obtener más información, consulta las clases android.app.admin o el código de aplicación de ejemplo en DeviceAdminSample.java.

Framework de IU

  • Los nuevos modos de la IU, "modo de vehículo" y "modo nocturno", y UiModeManager permiten que las aplicaciones ajusten la IU de su aplicación para modos de usuario específicos.
  • Se agregó un ScaleGestureDetector nuevo que permite que los objetos View detecten y controlen los gestos de transformación que involucran más de un puntero (multitáctil) mediante los MotionEvents proporcionados.
  • Mejoras en la forma en que se informan los eventos multitáctiles en objetos MotionEvent
  • Se cambió el nombre del atributo de diseño fill_parent por match_parent. Esto afecta al código XML y Java (consulta ViewGroup.LayoutParams). Ten en cuenta que la plataforma seguirá respetando los usos de fill_parent en aplicaciones heredadas.
  • Los nuevos atributos de diseño tabStripEnabled, tabStripRight y tabStripLeft permiten que los desarrolladores personalicen la barra inferior de TabWidgets.
  • Se mejoró la compatibilidad con los diálogos administrados en Activity.

Cuentas y sincronización

  • El nuevo método AddPeriodicSync() te permite programar una sincronización periódica con una cuenta, autoridad y servicios adicionales específicos con una frecuencia determinada.

Nuevos elementos y atributos del manifiesto

  • Para especificar la ubicación de instalación preferida de la aplicación (consulta Instalación de apps en medios de almacenamiento externos más arriba):
    • Nuevo atributo android:installLocation del elemento <manifest>. Especifica la ubicación de instalación predeterminada definida por una aplicación.
  • Para administrar la copia de seguridad de los datos del usuario (consulta la sección Administrador de copias de seguridad más arriba para obtener más información):
    • Nuevo atributo android:backupAgent del elemento <application>. Especifica el nombre del componente de la subclase BackupAgent que proporciona la aplicación para administrar las operaciones de copia de seguridad y restablecimiento, si las hubiera.
    • Nuevo atributo android:restoreAnyVersion del elemento <application>. Valor booleano que indica si la aplicación está preparada para intentar restablecer cualquier conjunto de datos de una copia de seguridad, incluso si la copia de seguridad es aparentemente de una versión más reciente de la aplicación que la que está instalada actualmente en el dispositivo.
  • Para administrar el compilador JIT de la plataforma:
    • Nuevo atributo android:vmSafeMode del elemento <application>. Valor booleano que especifica si se deben inhabilitar las optimizaciones del compilador JIT al ejecutar la aplicación.

Permisos

  • android.permission.BIND_DEVICE_ADMIN: Cualquier receptor de emisión de administración de dispositivos debe requerir este permiso para garantizar que solo el sistema pueda interactuar con él.
  • android.permission.KILL_BACKGROUND_PROCESSES: Permite que una aplicación llame a killBackgroundProcesses(String).
  • android.permission.BIND_WALLPAPER: Cualquier WallpaperService debe requerir este permiso para garantizar que solo el sistema pueda interactuar con él.
  • android.permission.SET_TIME: Permite que una aplicación establezca la hora del sistema.

Informe de diferencias de las APIs

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