Sei sulla pagina 1di 41

Android 4.

0 Platform
Android 4.0 es una versin de la plataforma principal que aade una gran variedad de nuevas caractersticas para los usuarios y desarrolladores de aplicaciones. Adems de todas las nuevas caractersticas y APIs ms adelante, Android 4.0 es un lanzamiento de una plataforma importante, ya que trae el amplio conjunto de APIs y los temas de Android hologrfica 3.x para pantallas ms pequeas. Como desarrollador de la aplicacin, ahora tiene una nica plataforma y entorno de trabajo unificado de la API que le permite desarrollar y publicar la aplicacin con un solo APK que proporciona una experiencia de usuario optimizada para telfonos, tabletas, y ms, cuando se ejecuta la misma versin de Android Android 4.0 (nivel de API 14) o ms. La plataforma Android 4.0 est disponible como componente descargable para el SDK de Android para que pueda comenzar a desarrollar y probar sus aplicaciones en Android 4.0 con el emulador de Android. La plataforma descargable incluye una biblioteca de Android y la imagen del sistema, as como un conjunto de aspectos emulador y mucho ms. La plataforma de descarga no incluye ninguna biblioteca externa. Para comenzar a desarrollar o pruebas en contra de Android 4.0, utilice el SDK de Android Manager para descargar la plataforma en su SDK. Para ms informacin, consulte Adicin de componentes SDK . Si usted es nuevo en Android, descargar el paquete de inicio SDK primero. Recordatorio: Si ya ha publicado una aplicacin para Android, por favor, probar la aplicacin en Android 4.0, tan pronto como sea posible para asegurarse de que su aplicacin ofrece la mejor experiencia posible en el ltimo con Android. Para una descripcin de alto nivel de las nuevas caractersticas del usuario y el desarrollador de Android 4.0, consulte el ms destacado de plataforma .

Revisiones
Para determinar qu versin es la plataforma Android 4.0 que tiene instalada, consulte la seccin "Paquetes instalados" lista en el Administrador de Android SDK. Android 4.0, Revisin 1 (octubre de 2011) Versin inicial. Herramientas SDK r14 o superior es necesario. Importante: Para descargar el nuevo Android 4.0 los componentes del sistema desde el Administrador de Android SDK, primero debe actualizar las herramientas de SDK para

revisin 14 o posterior, y reiniciar el Administrador de Android SDK. Si no, los componentes de Android 4.0 el sistema no estar disponible para su descarga.

API general
Las secciones siguientes proporcionan una descripcin tcnica de las nuevas API de Android 4.0. Tabla de contenidos

Sociales en las API de proveedor de Contactos


La API de contactos definidos por el ContactsContract proveedor se han ampliado para admitir las nuevas caractersticas de orientacin social, tales como un perfil personal para el propietario del dispositivo y la capacidad de los usuarios para invitar a contactos individuales con las redes sociales que estn instalados en el dispositivo. Perfil de usuario Android ahora incluye un perfil personal que representa al dueo del terminal, tal como se define por la ContactsContract.Profile mesa. Aplicaciones sociales que mantienen una identidad de usuario puede contribuir a los datos del perfil del usuario mediante la creacin de un nuevo ContactsContract.RawContacts entrada en el ContactsContract.Profile . Es decir, contactos primas que representan al usuario del dispositivo no pertenecen a la tabla tradicional de contactos primas definidas por el ContactsContract.RawContacts Uri, en su lugar, debe agregar un contacto perfil de primas en la tabla de CONTENT_RAW_CONTACTS_URI . Contactos crudo en este cuadro se agregan en el perfil de usuario nico visible llamado "Me". Agregar un nuevo contacto primas para el perfil requiere la WRITE_PROFILE permiso. Del mismo modo, con el fin de leer la tabla de perfiles, debe solicitar la READ_PROFILE permiso. Sin embargo, la mayora de aplicaciones no es necesario leer el perfil de usuario, incluso cuando se aportan datos para el perfil. La lectura del perfil de usuario es un permiso sensible y se debe esperar que los usuarios se muestran escpticos de las aplicaciones que as lo soliciten. Invitar a la intencin El INVITE_CONTACT accin intencin permite una aplicacin para invocar una accin que indica que el usuario quiere aadir un contacto a una red social. La aplicacin de recibir la aplicacin que utiliza para invitar al contacto especificado a esa red social. La mayora de aplicaciones estar en el extremo receptor de esta operacin. Por ejemplo, el built-in People aplicacin invoca la intencin de invitar a cuando el usuario selecciona "Agregar conexin" para una aplicacin especfica social que aparece en la lista de datos de contacto de una persona.

Para hacer visible su aplicacin como en el "Agregar conexin" lista, su aplicacin debe proporcionar un adaptador de sincronizacin para sincronizar informacin de contactos de su red social. A continuacin, debe indicar al sistema que su aplicacin responde a la INVITE_CONTACT intencin mediante la adicin de la inviteContactActivity atributo para presentar su aplicacin de sincronizacin de la configuracin, con un nombre completo de la actividad que el sistema debe comenzar a la hora de enviar la intencin de invitar. La actividad que comienza a continuacin, puede recuperar el URI para el contacto en cuestin a partir de los datos de la intencin y realizar el trabajo necesario para invitar a que el contacto con la red o agregar a la persona a las conexiones del usuario. Ver el ejemplo del adaptador de sincronizacin de aplicaciones de ejemplo (en concreto, consulte la contacts.xml archivo). Fotos grandes Android ahora soporta fotos en alta resolucin para los contactos. Ahora, cuando se presiona una foto en un registro de contacto, el sistema que procesa tanto en la miniatura de 96x96 (como lo ha hecho anteriormente) y 256x256 "visualizacin de fotos" que est almacenada en una tienda de fotos nueva basada en archivos (las dimensiones exactas que el sistema elige puede variar en el futuro). Usted puede agregar una gran foto a un contacto al poner una foto grande en el habitual PHOTO columna de una fila de datos, que el sistema entonces el proceso en la miniatura correspondiente y mostrar registros de fotos. Contacto Comentarios uso El nuevo ContactsContract.DataUsageFeedback API permiten para ayudar a rastrear la frecuencia con la que el usuario utiliza los mtodos particulares de las personas de contacto, tales como la frecuencia con la que el usuario utilice cada nmero de telfono o direccin de correo electrnico. Esta informacin ayuda a mejorar el ranking para cada mtodo de contacto asociados a cada persona y ofrecer mejores sugerencias para ponerse en contacto con cada persona.

Calendario de Proveedores
La nueva API de calendario le permite leer, agregar, modificar y eliminar calendarios, eventos, los asistentes, recordatorios y alertas, que se almacenan en el proveedor de calendario. Una gran variedad de aplicaciones y widgets se pueden utilizar estas API para leer y modificar los eventos del calendario. Sin embargo, algunos de los casos de uso ms convincentes son los adaptadores de sincronizacin que sincronizar el calendario del usuario de los servicios de otro calendario con el proveedor de calendario, con el fin de ofrecer una ubicacin unificada para todos los eventos del usuario. Google citas del calendario, por ejemplo, se sincronizan con el proveedor de calendario por el Google Calendar Sync adaptador, lo que permite que estos eventos se ve con Android incorporado en la aplicacin Calendario.

El modelo de datos para los calendarios y la informacin relacionados con el evento en el Calendario del proveedor se define por CalendarContract . Todos los datos de calendario del usuario se almacena en una serie de tablas definidas por diferentes subclases de CalendarContract :

El CalendarContract.Calendars tabla contiene la informacin del calendario especfico. Cada fila de esta tabla contiene los detalles de un calendario nico, como el nombre, el color, la informacin de sincronizacin, y as sucesivamente. El CalendarContract.Events tabla contiene informacin especfica del evento. Cada fila de esta tabla contiene la informacin para un solo evento, como el ttulo del evento, lugar, hora de inicio y final, y as sucesivamente. El evento puede ocurrir una vez o repetirse varias veces. Los asistentes, recordatorios, y las propiedades extendidas se almacenan en tablas separadas y usar el evento de _ID para vincularlos con el evento. El CalendarContract.Instances tabla contiene el tiempo de inicio y final de las ocurrencias de un evento. Cada fila de esta tabla representa una sola aparicin. Para los eventos de una sola vez que hay una asignacin uno a uno de los casos a los acontecimientos. Para los eventos recurrentes, varias filas se generan automticamente para corresponder a las mltiples ocurrencias de ese evento. El CalendarContract.Attendees tabla contiene el asistente de eventos o informacin de los invitados. Cada fila representa un invitado de un evento. Se especifica el tipo de cliente es la persona y la respuesta de la persona para el evento. El CalendarContract.Reminders tabla contiene los datos de alerta / notificacin. Cada fila representa una nica alerta para un evento. Un evento puede tener varios recordatorios. El nmero de recordatorios por evento se especifica en MAX_REMINDERS , que es fijado por el adaptador de sincronizacin que es dueo del calendario. Los recordatorios se especifica en el nmero de minutos antes del evento est programada y especificar un mtodo de alarma, tales como el uso de un alerta por correo electrnico o SMS para recordar al usuario. El CalendarContract.ExtendedProperties mesa de mantener los campos de datos opaco utilizado por el adaptador de sincronizacin. El proveedor no realiza ninguna accin con los elementos de esta tabla, excepto para eliminarlos cuando sus eventos relacionados se eliminan.

Para acceder a los datos de un usuario del calendario con el proveedor de calendario, la aplicacin debe solicitar la READ_CALENDAR permiso (para acceso de lectura) y WRITE_CALENDAR (para acceso de escritura). Caso de la intencin Si todo lo que quiero hacer es agregar un evento al calendario del usuario, puede utilizar un ACTION_INSERT intencin con los datos definidos por Events.CONTENT_URI con el fin de iniciar una actividad en la aplicacin de calendario que crea nuevos eventos. Utilizando la intencin no requiere ningn permiso y se pueden especificar los detalles del evento con los siguientes extras:

Events.TITLE : Nombre del evento CalendarContract.EXTRA_EVENT_BEGIN_TIME

: Evento comenzar el tiempo en

milisegundos desde la poca


CalendarContract.EXTRA_EVENT_END_TIME

: Hora del evento final en milisegundos desde la poca Events.EVENT_LOCATION : Lugar del evento Events.DESCRIPTION : Descripcin del evento Intent.EXTRA_EMAIL : direcciones de correo electrnico de aquellos que invite a Events.RRULE : La regla de recurrencia para el evento Events.ACCESS_LEVEL : Si el evento es privado o pblico Events.AVAILABILITY : Si el periodo de tiempo de este evento permite a otros eventos que se programar en el mismo tiempo

Correo de voz del proveedor


El proveedor de correo de voz permite a las aplicaciones nuevas para agregar mensajes de voz al dispositivo, a fin de presentar todos los mensajes de voz del usuario en una presentacin visual nica. Por ejemplo, es posible que un usuario tiene varias fuentes de buzn de voz, como un proveedor de servicios de telfono y otros de VoIP y otros servicios de voz alternativa. Estas aplicaciones pueden utilizar las API de proveedor de correo de voz para aadir sus mensajes de voz en el dispositivo. La aplicacin Telfono incorporado a continuacin, presenta todos los mensajes de voz al usuario en una presentacin unificada. A pesar de la aplicacin del sistema de telfono es la nica aplicacin que puede leer todos los mensajes de voz, cada aplicacin que proporciona mensajes de voz pueden leer los que se ha aadido al sistema (pero no pueden leer mensajes de voz de otros servicios). Debido a que el API en la actualidad no permiten aplicaciones de terceros para leer todos los mensajes de voz del sistema, la nica aplicaciones de terceros que se deben utilizar las API de correo de voz son los que tienen correo de voz para ofrecer al usuario. El VoicemailContract clase define el proveedor de contenidos para la Provder correo de voz. Las subclases VoicemailContract.Voicemails y VoicemailContract.Status ofrecer tablas en las que las aplicaciones se pueden insertar los datos de correo de voz para el almacenamiento en el dispositivo. Para un ejemplo de una aplicacin de proveedor de correo de voz, ver el demo del proveedor de correo de voz .

Multimedia
Android 4.0 aade varias APIs nuevas aplicaciones que interactan con los medios de comunicacin, como fotos, videos y msica. Efectos de los medios de comunicacin Un nuevo marco de los medios de comunicacin de efectos le permite aplicar una gran variedad de efectos visuales a las imgenes y videos. Por ejemplo, efectos de imagen le permiten fijar fcilmente los ojos rojos, convertir una imagen a escala de grises, ajustar el

brillo, ajustar la saturacin, rotar una imagen, aplicar un efecto de ojo de pez, y mucho ms. El sistema realiza todos los efectos de procesamiento en la GPU para obtener el mximo rendimiento. Para un mximo rendimiento, los efectos se aplican directamente a las texturas OpenGL, por lo que su aplicacin debe tener una validez contexto OpenGL antes de que pueda utilizar las API de los efectos. Las texturas a las que se aplican efectos pueden ser a partir de mapas de bits, videos o incluso la cmara. Sin embargo, hay ciertas restricciones que deben cumplir con las texturas: 1. Se debe estar enlazado a un GL_TEXTURE_2D imagen de la textura 2. Que debe contener al menos un nivel de mipmap Un Effect objeto define un efecto de los medios de comunicacin nico que se puede aplicar a un cuadro de imagen. El flujo de trabajo bsico para crear un Effect es el siguiente: 1. Llame EffectContext.createWithCurrentGlContext() de su contexto OpenGL ES 2.0. 2. Utilice la volvi EffectContext llamar EffectContext.getFactory() , que devuelve una instancia de EffectFactory . 3. Llame createEffect() , pasndole el nombre a partir del enlace @ android.media.effect.EffectFactory}, como EFFECT_FISHEYE o EFFECT_VIGNETTE . Puede ajustar los parmetros de un efecto llamando setParameter() y pasar un nombre de parmetro y el valor del parmetro. Cada tipo de efecto acepta parmetros diferentes, las cuales estn documentadas con el nombre del efecto. Por ejemplo, EFFECT_FISHEYE tiene un parmetro de la scale de la distorsin. Para aplicar un efecto de una textura, llamada apply() sobre el Effect y pasar en la textura de entrada, que es ancho y alto, y la textura de salida. La textura de entrada debe estar ligado a un GL_TEXTURE_2D imagen de la textura (generalmente se hace llamando a la glTexImage2D() la funcin). Usted puede proporcionar mltiples niveles mipmap. Si la textura de salida no se ha vinculado a una imagen de la textura, que quedar obligado automticamente por el efecto como GL_TEXTURE_2D y con un nivel de mipmap uno (0), que tendr el mismo tamao que el de entrada. Todos los efectos que figuran en EffectFactory estn garantizados para ser admitidos. Sin embargo, algunos efectos adicionales disponibles en las bibliotecas externas no son compatibles con todos los dispositivos, por lo que primero debe comprobar si el efecto deseado de la biblioteca externa con el apoyo de llamar isEffectSupported() . Cliente de control remoto El nuevo RemoteControlClient permite a los jugadores los medios de comunicacin para permitir que los controles de reproduccin de los clientes del mando a distancia, tales como

la pantalla de bloqueo del dispositivo. Reproductores de medios tambin puede exponer a informacin acerca de los medios de comunicacin actualmente juega en el display del mando a distancia, tales como informacin de la pista y del lbum. Para permitir a los clientes de control remoto para el reproductor de medios de comunicacin, crear una instancia de RemoteControlClient con su constructor, pasndole una PendingIntent que transmite ACTION_MEDIA_BUTTON . La intencin tambin debe declarar explcitamente el BroadcastReceiver componente en su aplicacin que se encarga de la ACTION_MEDIA_BUTTON evento. Para declarar que los medios de comunicacin controlan el desarrollo de su reproductor puede manejar, usted debe llamar setTransportControlFlags() en su RemoteControlClient , pasando de un conjunto de FLAG_KEY_MEDIA_* banderas, como FLAG_KEY_MEDIA_PREVIOUS y FLAG_KEY_MEDIA_NEXT . A continuacin, debe registrar su RemoteControlClient pasndolo a MediaManager.registerRemoteControlClient() . Una vez registrado, el receptor de radiodifusin ha declarado que cuando una instancia del RemoteControlClient recibir ACTION_MEDIA_BUTTON eventos cuando se pulsa un botn de un mando a distancia. La intencin que recibe incluye el KeyEvent para el prensado principales medios de comunicacin, que se puede recuperar a partir de la intencin con la getParcelableExtra(Intent.EXTRA_KEY_EVENT) . Para mostrar la informacin en el control remoto sobre la reproduccin de archivos multimedia, llame editMetaData() y aadir metadatos a los volvi RemoteControlClient.MetadataEditor . Puede proporcionar un mapa de bits para la obra de arte los medios de comunicacin, la informacin numrica, tales como el tiempo transcurrido, y la informacin de texto, como el ttulo de la pista. Para obtener informacin sobre las claves disponibles ver el METADATA_KEY_* banderas en MediaMetadataRetriever . Para una implementacin de ejemplo, vea el reproductor de msica aleatoria , que proporciona compatibilidad con la lgica de tal manera que permite que el cliente de control remoto de dispositivos Android 4.0, mientras que sigue prestando apoyo a los dispositivos de nuevo a Android 2.1. Reproductor de medios

Medios de transmisin en lnea de MediaPlayer ahora requiere que el INTERNET permiso. Si usted usa MediaPlayer para reproducir contenidos de Internet, asegrese de agregar la INTERNET permiso para su manifiesto o bien la reproduccin de los medios de comunicacin no va a funcionar a partir de Android 4.0. setSurface() le permite definir una Surface que se comporten como el disipador de video. setDataSource() le permite enviar cabeceras HTTP adicionales con su solicitud, que puede ser til para HTTP (S) en vivo

HTTP (S) en vivo ahora respeta las cookies HTTP a travs de peticiones

Los tipos de medios Android 4.0 aade soporte para:


HTTP / HTTPS en vivo Protocol version 3 ADTS primas codificacin AAC de audio WEBP imgenes Matroska vdeo

Para ms informacin, consulte Formatos de los medios de comunicacin .

Cmara
La Camera de clase ahora incluye las API de deteccin de rostros y el control de reas de enfoque y de medicin. Deteccin de rostros Aplicaciones de la cmara ahora puede mejorar sus habilidades con las API de Android de deteccin de rostros, que no slo detecta el rostro de un sujeto, sino tambin rasgos faciales especficos, tales como los ojos y la boca. Para detectar los rostros en la aplicacin de la cmara, debe registrar un Camera.FaceDetectionListener llamando setFaceDetectionListener() . A continuacin, puede empezar su superficie de la cmara y empezar a detectar las caras llamando startFaceDetection() . Cuando el sistema detecta una o ms caras en la escena de la cmara, que llama a la onFaceDetection() de devolucin de llamada en su implementacin de Camera.FaceDetectionListener , incluyendo una gran variedad de Camera.Face objetos. Una instancia de la Camera.Face clase proporciona diversa informacin sobre la cara detectada, incluyendo:

A Rect que especifica los lmites de la cara, en relacin con el campo actual de la cmara de vista Transcurrir un entero 1 y 100 que indica la confianza que el sistema es que el objeto es un rostro humano Un identificador nico para que pueda controlar mltiples caras Varios Point que indican que los objetos a los ojos y la boca se encuentran

Nota: La deteccin de caras puede no ser compatible con algunos dispositivos, por lo que debe comprobar llamando getMaxNumDetectedFaces() y asegurar el valor de retorno es

mayor que cero. Adems, algunos dispositivos no sean compatibles con la identificacin de los ojos y la boca, en cuyo caso, los campos de la Camera.Face objeto ser nulo. El enfoque y la medicin de las reas Aplicaciones de la cmara ahora puede controlar las reas que utiliza la cmara para enfocar y para mantener el equilibrio de medicin de blancos y compensacin de exposicin. Ambas funciones utilizan el nuevo Camera.Area clase para especificar la regin de la vista actual de la cmara que debe ser enfocado o medido. Una instancia de la Camera.Area clase define los lmites de la zona con un Rect y el peso que representa el rea es el nivel de importancia de esa rea, en relacin con otras reas en consideracin-con un nmero entero. Antes de configurar ya sea un rea de inters o rea de medicin, primero debe llamar a getMaxNumFocusAreas() o getMaxNumMeteringAreas() , respectivamente. Si estos devuelven cero, entonces el dispositivo no es compatible con la funcin correspondiente. Para especificar las reas de enfoque o de medicin de usar, basta con llamar setFocusAreas() o setMeteringAreas() . Cada uno toma una List de Camera.Area objetos que indican las reas a considerar para el foco o la medicin. Por ejemplo, se podra implementar una funcin que permite al usuario establecer el rea de enfoque al tocar un rea de la vista previa, que luego se traducen en una Camera.Area objeto y solicitar que la cmara se centran en el rea de la escena. El enfoque o la exposicin en esa zona continuamente se actualizar la escena en la zona de cambios. Enfoque automtico continuo para las fotos Ahora puede activar automtico continuo de enfoque (CAF) al tomar las fotos. Para activar la CAF en su aplicacin de la cmara, pase FOCUS_MODE_CONTINUOUS_PICTURE a setFocusMode() . Cuando est listo para capturar una foto, llame al autoFocus() . Su Camera.AutoFocusCallback inmediatamente recibe una devolucin de llamada para indicar si el foco se ha logrado. Para reanudar la CAF despus de recibir la devolucin de llamada, debe llamar a cancelAutoFocus() . Nota: enfoque automtico continuo tambin se apoya en la captura de vdeo, utilizando FOCUS_MODE_CONTINUOUS_VIDEO , que se aadi en el nivel de API 9. Otras caractersticas de la cmara

Durante la grabacin de vdeo, puede llamar a takePicture() para guardar una foto sin interrumpir la sesin de vdeo. Antes de hacerlo, usted debe llamar a isVideoSnapshotSupported() para comprobar que el hardware lo soporta. Ahora puede bloquear la exposicin automtica y balance de blancos con setAutoExposureLock() y setAutoWhiteBalanceLock() para evitar que estas propiedades cambien.

Ahora puede llamar a setDisplayOrientation() mientras que la previa de la cmara est en funcionamiento. Anteriormente, se poda llamar a esto slo antes de comenzar la vista previa, pero ahora se puede cambiar la orientacin en cualquier momento.

Intentos cmara de difusin


Camera.ACTION_NEW_PICTURE

: Esto indica que el usuario ha capturado una nueva foto. La funcin de cmara de aplicacin invoca esta emisin despus de la foto es capturada y aplicaciones de terceros cmara tambin debe transmitir esta intencin despus de capturar una foto. Camera.ACTION_NEW_VIDEO : Esto indica que el usuario ha capturado un nuevo video. La funcin de cmara de aplicacin invoca esta emisin despus de que un vdeo est grabado y aplicaciones de terceros cmara tambin debe transmitir esta intencin despus de grabar un vdeo.

Android Manga (NDEF Push con NFC)


Android Beam es una nueva caracterstica de la NFC que te permite enviar mensajes NDEF de un dispositivo a otro (un proceso conocido tambin como "Push NDEF"). La transferencia de datos se inicia cuando dos dispositivos con Android que soportan Android haz estn muy cerca (alrededor de 4 cm), por lo general con la espalda tocando. Los datos contenidos en el mensaje NDEF puede contener cualquier informacin que desea compartir entre los dispositivos. Por ejemplo, la gente comparte aplicacin de contactos, las acciones de vdeos de YouTube, y las direcciones URL Browser acciones con Android Manga . Para transmitir datos entre dispositivos que utilizan Android Beam, es necesario crear una NdefMessage que contiene la informacin que desee compartir, mientras que su actividad est en primer plano. A continuacin, debe pasar el NdefMessage al sistema en una de dos maneras:

Definir una sola NdefMessage para empujar mientras que en la actividad: Llame setNdefPushMessage() en cualquier momento para configurar el mensaje que desea enviar. Por ejemplo, usted podra llamar a este mtodo y pasar su NdefMessage durante su actividad de onCreate() mtodo. Entonces, cada vez Android haz se activa con otro dispositivo, mientras que la actividad est en primer plano, el sistema enva el NdefMessage con el otro dispositivo.

Definir el NdefMessage para empujar a la vez que se inicia haz Android: Implementar NfcAdapter.CreateNdefMessageCallback , en el que la implementacin de la createNdefMessage() mtodo devuelve el NdefMessage que desea enviar. A continuacin, pasar el NfcAdapter.CreateNdefMessageCallback implementacin de setNdefPushMessageCallback() .

En este caso, cuando Android haz se activa con otro dispositivo, mientras que su actividad est en primer plano, el sistema llama createNdefMessage() para recuperar el NdefMessage que desea enviar. Esto le permite definir el NdefMessage para entregar una sola vez para Android viga se inicia, en caso de que el contenido del mensaje puede variar a lo largo de la vida de la actividad. En el caso de que desee ejecutar algn cdigo especfico una vez que el sistema se ha entregado con xito su mensaje NDEF al otro dispositivo, se puede implementar NfcAdapter.OnNdefPushCompleteCallback y lo puso con setNdefPushCompleteCallback() . Entonces, el sistema llamar onNdefPushComplete() cuando el mensaje se entrega. En el dispositivo receptor, los cables del sistema NDEF mensajes Push de una manera similares a los de las etiquetas NFC. El sistema llama a una intencin con el ACTION_NDEF_DISCOVERED de accin para iniciar una actividad, ya sea con una URL o un tipo MIME establecidos de acuerdo con la primera NdefRecord en el NdefMessage . Para la actividad que desea responder, puede declarar la intencin de filtros para las direcciones URL o los tipos MIME de su aplicacin se preocupa. Para ms informacin sobre la etiqueta de envo ver la NFC gua para desarrolladores. Si quieres que tu NdefMessage para llevar a un URI, ahora puede usar el mtodo de conveniencia createUri para construir un nuevo NdefRecord sobre la base de una cadena o un Uri objeto. Si el URI es un formato especial que desea que su solicitud para recibir tambin durante un evento haz Android, se debe crear un filtro de intencin para su actividad mediante el esquema de URI mismo con el fin de recibir el mensaje NDEF entrante. Usted tambin debe pasar un "registro de aplicaciones Android" con su NdefMessage con el fin de garantizar que su aplicacin se encarga de la NDEF mensaje entrante, incluso si otras aplicaciones de filtro para la accin misma intencin. Usted puede crear un registro de la aplicacin Android llamando createApplicationRecord() , que pasa que el nombre de la aplicacin del paquete. Cuando el dispositivo recibe el mensaje NDEF con el registro de aplicaciones y mltiples aplicaciones contienen actividades que se encargan de la intencin especifica, el sistema siempre entrega el mensaje a la actividad de su aplicacin (con base en el registro de la aplicacin correspondiente) . Si el dispositivo de destino no tiene actualmente su aplicacin instalada, el sistema utiliza el registro de aplicacin de Android para lanzar Android Market y llevar al usuario a la aplicacin con el fin de instalarlo. Si su aplicacin no utiliza las API de la NFC para realizar NDEF mensajera push, entonces Android proporciona un comportamiento por defecto: Cuando la aplicacin est en primer plano en un dispositivo Android y haz que se invoca con otro dispositivo con Android, el dispositivo recibe una NDEF mensaje con un registro de aplicaciones Android que identifica a su aplicacin. Si el dispositivo receptor tiene instalada la aplicacin, el sistema se pone en marcha, si no est instalado, Android Market se abre y permite al usuario acceder a su solicitud con el fin de instalarlo.

Usted puede leer ms acerca de Android de vigas y otros elementos de la NFC en los Fundamentos de la NFC gua para desarrolladores. De un cdigo de ejemplo con Android Beam, ver la demo haz Android .

Wi-Fi Direct
Android ahora es compatible con Wi-Fi Direct para (P2P) peer-to-peer conexiones entre los dispositivos con Android y otros tipos de dispositivos, sin un punto de acceso o conexin a Internet. El marco de Android proporciona un conjunto de API de Wi-Fi P2P que permiten descubrir y conectarse a otros dispositivos en que cada dispositivo es compatible con Wi-Fi Direct, y luego comunican a travs de una conexin rpida a travs de distancias mucho ms largas que una conexin Bluetooth. Un nuevo paquete, android.net.wifi.p2p , contiene todas las API para la realizacin de peer-to-peer con conexiones Wi-Fi. La clase principal que necesita para trabajar es WifiP2pManager , que se pueden adquirir llamando al getSystemService(WIFI_P2P_SERVICE) . El WifiP2pManager incluye API que le permiten:

Inicializar la aplicacin de las conexiones P2P llamando initialize() Descubrir dispositivos cercanos llamando discoverPeers() Iniciar una conexin P2P llamando a connect() Y ms

Varias otras interfaces y las clases son necesarias, as, como por ejemplo:

El WifiP2pManager.ActionListener interfaz le permite recibir devoluciones de llamada cuando una operacin como la de descubrir los pares o la conexin a ellos tiene xito o fracasa. WifiP2pManager.PeerListListener interfaz le permite recibir informacin acerca de sus compaeros descubrieron. La devolucin de llamada proporciona una WifiP2pDeviceList , desde donde se puede recuperar un WifiP2pDevice objeto para cada dispositivo dentro del rango y obtener informacin como el nombre del dispositivo, direccin, tipo de dispositivo, la configuracin WPS compatible con el dispositivo, y mucho ms. El WifiP2pManager.GroupInfoListener interfaz le permite recibir informacin sobre un grupo de P2P. La devolucin de llamada proporciona una WifiP2pGroup objeto, que ofrece informacin del grupo, como el propietario, el nombre de red y contrasea. WifiP2pManager.ConnectionInfoListener interfaz le permite recibir informacin sobre la conexin actual. La devolucin de llamada proporciona una WifiP2pInfo objeto, que tiene informacin sobre si un grupo se ha formado y que es el propietario del grupo.

Con el fin de utilizar las API de Wi-Fi P2P, su aplicacin debe solicitar los permisos siguientes:

ACCESS_WIFI_STATE CHANGE_WIFI_STATE INTERNET (aunque su

aplicacin no tcnicamente la conexin a Internet, comunicarse con Wi-Fi con el estndar de los compaeros directos java sockets requiere de permisos de Internet).

El sistema Android tambin difunde diversas acciones durante ciertos eventos Wi-Fi P2P:
WIFI_P2P_CONNECTION_CHANGED_ACTION : El estado de la conexin P2P ha cambiado. Esto lleva a EXTRA_WIFI_P2P_INFO con un WifiP2pInfo objeto y EXTRA_NETWORK_INFO con un NetworkInfo objeto. WIFI_P2P_STATE_CHANGED_ACTION : El estado P2P ha cambiado entre activar y desactivar. Lleva EXTRA_WIFI_STATE , ya sea con WIFI_P2P_STATE_DISABLED o WIFI_P2P_STATE_ENABLED WIFI_P2P_PEERS_CHANGED_ACTION : La lista de dispositivos de pares ha cambiado. WIFI_P2P_THIS_DEVICE_CHANGED_ACTION : Los detalles de este dispositivo ha

cambiado. Ver el WifiP2pManager documentacin para ms informacin. Tambin mirar el Wi-Fi Direct demostracin aplicacin de ejemplo.

Dispositivos Bluetooth de la Salud


Android ahora es compatible con dispositivos Bluetooth Perfil de Salud, para que pueda crear aplicaciones que utilizan Bluetooth para comunicarse con los dispositivos Bluetooth que la salud de apoyo, tales como monitores de ritmo cardaco, medidores de sangre, termmetros y escalas. Similares a los auriculares regulares y los dispositivos de perfil A2DP, usted debe llamar getProfileProxy() con un BluetoothProfile.ServiceListener y la HEALTH tipo de perfil para establecer una conexin con el objeto de proxy de perfil. Una vez que haya adquirido el proxy Perfil de Salud (el BluetoothHealth objeto), conectar y comunicar con los dispositivos de salud vinculados implica las siguientes clases nuevas Bluetooth:
BluetoothHealthCallback

: Usted debe extender esta clase y poner en prctica los mtodos de devolucin de llamada para recibir actualizaciones sobre los cambios en el estado de registro de la aplicacin y el estado del canal Bluetooth. BluetoothHealthAppConfiguration : Durante las devoluciones de llamada a su BluetoothHealthCallback , usted recibir una instancia de este objeto, el cual proporciona informacin de configuracin sobre el dispositivo Bluetooth de salud disponibles, que debe utilizar para realizar diversas operaciones, tales como iniciar y terminar las conexiones con el BluetoothHealth API.

Para ms informacin sobre el uso del Perfil de Salud de Bluetooth, consulte la documentacin de BluetoothHealth .

Accesibilidad
Android 4.0 mejora la accesibilidad para usuarios con discapacidad visual con nuevos explorar por tocar el modo y las API extendidas que le permiten dar ms informacin sobre el contenido del punto de vista o el desarrollo de servicios avanzados de accesibilidad. Explore por el modo de contacto Los usuarios con prdida de la visin pueden ahora explorar la pantalla al tocar y arrastrar el dedo por la pantalla para escuchar las descripciones de la voz de su contenido. Debido a que el modo de explorar por tctil funciona como un cursor virtual, que permite a los lectores de pantalla para identificar el texto descriptivo de la misma manera que los lectores de pantalla se puede cuando el usuario navega con un d-pad o trackball, mediante la lectura de la informacin proporcionada por android:contentDescription y setContentDescription() en una simulacin de "flotar" del evento. Por lo tanto, consideran que es un recordatorio de que debe proporcionar un texto descriptivo de las opiniones en su aplicacin, especialmente para ImageButton , EditText , ImageView y otros widgets que, naturalmente, no puede contener un texto descriptivo. Accesibilidad para las vistas Para mejorar la informacin a disposicin de los servicios de accesibilidad como lectores de pantalla, se puede implementar nuevos mtodos de devolucin de llamada para los eventos de la accesibilidad en su encargo View componentes. Es importante tener en cuenta primero que el comportamiento de la sendAccessibilityEvent() mtodo ha cambiado en Android 4.0. Al igual que con la versin anterior de Android, cuando el usuario permite a los servicios de accesibilidad en el dispositivo y un evento de entrada como un click o hover ocurre, el punto de vista respectivos se notifica con una llamada a sendAccessibilityEvent() . Anteriormente, la aplicacin de la sendAccessibilityEvent() se inicializa un AccessibilityEvent y enviarlo a AccessibilityManager . El nuevo comportamiento involucra algunos de los mtodos de devolucin de llamada adicionales que permiten la vista y sus padres a aadir ms informacin contextual para el evento: 1. Cuando se invoca, el sendAccessibilityEvent() y sendAccessibilityEventUnchecked() los mtodos de aplazar hasta onInitializeAccessibilityEvent() . Implementaciones personalizadas de View que desee implementar onInitializeAccessibilityEvent() para adjuntar informacin de accesibilidad a la AccessibilityEvent , sino que tambin debe llamar a la implementacin sper para proporcionar informacin predeterminada como la descripcin del

contenido estndar, ndice de elemento, y mucho ms. Sin embargo, no debe agregar el contenido de texto adicional en esta devolucin de llamada-que sucede a continuacin. 2. Una vez inicializado, si el evento es uno de varios tipos que se debe rellenar con informacin de texto, el punto de vista entonces recibe una llamada a dispatchPopulateAccessibilityEvent() , que se remite a la onPopulateAccessibilityEvent() de devolucin de llamada. Implementaciones personalizadas de View por lo general debe aplicar onPopulateAccessibilityEvent() para agregar el contenido de texto adicional a la AccessibilityEvent si el android:contentDescription texto es que falta o insuficiente. Para aadir ms texto descriptivo para el AccessibilityEvent , llame getText() . add() . 3. En este punto, el View pasa el evento hasta la jerarqua de la vista llamando requestSendAccessibilityEvent() en la opinin de los padres. Cada vista padre tiene entonces la oportunidad de aumentar la informacin sobre la accesibilidad mediante la adicin de un AccessibilityRecord , hasta que finalmente alcanza la vista raz, que enva el caso a la AccessibilityManager con sendAccessibilityEvent() . Adems de los nuevos mtodos de arriba, que son tiles cuando se extiende la View de clases, tambin se puede interceptar estas devoluciones de llamada en cualquier evento View extendiendo AccessibilityDelegate y se establece en el punto de vista con setAccessibilityDelegate() . Cuando lo haga, cada mtodo de acceso en el punto de vista difiere de la llamada al mtodo correspondiente en el delegado. Por ejemplo, cuando el punto de vista recibe una llamada a onPopulateAccessibilityEvent() , lo que pasa con el mismo mtodo en el View.AccessibilityDelegate . Los mtodos no son manejados por el delegado se les da el derecho de nuevo a la vista del comportamiento por defecto. Esto le permite reemplazar slo los mtodos necesarios para cualquier punto de vista determinado, sin ampliar la View de clases. Si desea mantener la compatibilidad con las versiones de Android anteriores a 4.0, mientras que tambin soporta las nuevas API de la accesibilidad, puede hacerlo con la ltima versin de la biblioteca de compatibilidad v4 (en el paquete de compatibilidad, r4 ) usando un conjunto de clases de utilidad que proporcionan la API de accesibilidad de nuevo en un diseo compatible con versiones anteriores. Servicios de accesibilidad Si est desarrollando un servicio de la accesibilidad, la informacin sobre los eventos de accesibilidad diversas se ha ampliado considerablemente para activar la respuesta a la accesibilidad para los usuarios ms avanzados. En particular, los eventos se genera en base a la composicin de vista, proporcionando una mejor informacin de contexto y permite

que los servicios de accesibilidad para atravesar las jerarquas para obtener informacin adicional de ver y tratar los casos especiales. Si est desarrollando un servicio de accesibilidad (como un lector de pantalla), puede acceder a la informacin de contenido adicional y recorrer transversalmente jerarquas de vista con el siguiente procedimiento: 1. Al recibir una AccessibilityEvent de una solicitud, llame al AccessibilityEvent.getRecord() para recuperar un determinado AccessibilityRecord (puede haber varios registros asociados al evento). 2. Desde cualquiera de AccessibilityEvent o un individuo AccessibilityRecord , puede llamar a getSource() para recuperar un AccessibilityNodeInfo objeto. Un AccessibilityNodeInfo representa un nico nodo del contenido de la ventana en un formato que permite consultar la informacin de accesibilidad de dicho nodo. El AccessibilityNodeInfo objeto devuelto por AccessibilityEvent describe el origen del evento, mientras que la fuente de un AccessibilityRecord describe el predecesor de la fuente del evento. 3. Con la AccessibilityNodeInfo , se puede consultar informacin al respecto, llame a getParent() o getChild() para recorrer la jerarqua de la vista, e incluso aadir puntos de vista del nio en el nodo. Con el fin de que su solicitud se publicar en el sistema como un servicio de accesibilidad, se debe declarar un archivo de configuracin XML que corresponde a AccessibilityServiceInfo . Para ms informacin sobre cmo crear un servicio de accesibilidad, consulte AccessibilityService y SERVICE_META_DATA para obtener informacin sobre la configuracin de XML. APIs de accesibilidad Si ests interesado en el estado de la accesibilidad del dispositivo, el AccessibilityManager tiene algunas nuevas API como:
AccessibilityManager.AccessibilityStateChangeListener

es una interfaz que le permite recibir una devolucin de llamada cuando la accesibilidad est activada o desactivada. getEnabledAccessibilityServiceList() proporciona informacin sobre los servicios de acceso estn habilitadas. isTouchExplorationEnabled() le indica si el modo de explorar por contacto es permitido.

Corrector ortogrfico Servicios


Un nuevo corrector ortogrfico marco permite crear aplicaciones de correctores ortogrficos de una manera similar a la estructura de mtodos de entrada (por IME). Para

crear un nuevo corrector ortogrfico, debe implementar un servicio que se extiende SpellCheckerService y ampliar la SpellCheckerService.Session clase para proporcionar sugerencias de ortografa basada en el texto proporcionado por los mtodos de devolucin de llamada de la interfaz. En el SpellCheckerService.Session mtodos de devolucin de llamada, deber devolver las sugerencias de ortografa como SuggestionsInfo objetos. Aplicaciones con un servicio de correccin ortogrfica debe declarar la BIND_TEXT_SERVICE permiso como lo requiere el servicio. El servicio tambin debe declarar un filtro de intencin con <action android:name="android.service.textservice.SpellCheckerService" /> como la accin de la intencin y debe incluir una <meta-data> elemento que declara la informacin de configuracin para el corrector ortogrfico. Vea el ejemplo del corrector ortogrfico de servicios de aplicaciones y muestra hechizos cliente Checker aplicacin de cdigo de ejemplo.

Texto a voz Motores


De texto a voz de Android (TTS) API se han ampliado considerablemente para que las aplicaciones para implementar ms fcilmente los motores de TTS costumbre, mientras que las aplicaciones que quieran utilizar un motor TTS tiene una API nueva pareja para la seleccin de un motor. El uso de texto a voz motores En las versiones anteriores de Android, se puede utilizar el TextToSpeech clase para llevar a cabo de texto a voz (TTS) las operaciones con el motor de TTS que proporciona el sistema o conjunto de un motor personalizado con setEngineByPackageName() . En Android 4.0, el setEngineByPackageName() mtodo ha quedado obsoleto y ahora se puede especificar el motor para su uso con un nuevo TextToSpeech constructor que acepta el nombre del paquete de un motor TTS. Tambin puede consultar los motores TTS disponibles con getEngines() . Este mtodo devuelve una lista de TextToSpeech.EngineInfo objetos, que incluyen metadatos, como el icono del motor, la etiqueta y el nombre del paquete. La construccin de texto a voz motores Anteriormente, los motores de la costumbre exiga que el motor se construir utilizando un archivo de cabecera de indocumentados de origen. En Android 4.0, hay un conjunto completo de APIs marco para la construccin de motores de TTS. La configuracin bsica requiere de una implementacin de TextToSpeechService que responda a las INTENT_ACTION_TTS_SERVICE intencin. El trabajo principal de un motor TTS que sucede durante el onSynthesizeText() de devolucin de llamada en un servicio

que se extiende TextToSpeechService . El sistema proporciona este mtodo de dos objetos:


SynthesisRequest

: contiene diversos datos que incluye el texto de sntesis, la configuracin regional, la velocidad de la voz y el tono de voz. SynthesisCallback : Esta es la interfaz por la cual el motor TTS ofrece los datos de expresin resultante como el streaming de audio. En primer lugar, el motor debe llamar a start() para indicar que el motor est listo para entregar el audio, y luego llamar a audioAvailable() , pasndole los datos de audio en un bfer de bytes. Una vez que el motor ha pasado todo el audio a travs del buffer, llame a done() .

Ahora que el marco es compatible con una API para la creacin de verdaderos motores de TTS, el apoyo a la implementacin del cdigo nativo ha sido eliminado. Busque una entrada de blog sobre una capa de compatibilidad que se puede utilizar para convertir los motores TTS antiguo al nuevo marco. Por ejemplo, un motor TTS con las nuevas API, consulte el motor de texto a voz aplicacin de ejemplo.

Uso de la red
Android 4.0 ofrece a los usuarios una visibilidad precisa de la cantidad de datos de la red de sus aplicaciones estn utilizando. La aplicacin de configuracin proporciona controles que permiten a los usuarios para gestionar los lmites establecidos para el uso de la red de datos e incluso desactivar el uso de los datos de base para las aplicaciones individuales. Con el fin de evitar que los usuarios deshabilitar el acceso de su aplicacin a los datos desde el fondo, usted debe desarrollar estrategias para usar usar la conexin de datos de manera eficiente y ajustar su uso en funcin del tipo de conexin disponible. Si la aplicacin realiza una gran cantidad de transacciones en la red, debe proporcionar una configuracin de usuario que permiten a los usuarios controlar sus hbitos de aplicacin de datos, tales como la frecuencia con la aplicacin de datos se sincroniza, ya sea para realizar cargas / descargas slo cuando el Wi-Fi, ya sea para uso de datos en roaming, etc Con estos controles a su disposicin, los usuarios tienen muchas menos probabilidades de desactivar el acceso de su aplicacin a los datos cuando se acercan a sus lmites, ya que en lugar se puede controlar con precisin la cantidad de datos que su aplicacin utiliza. Si usted proporciona una actividad de preferencia con esta configuracin, usted debe incluir en su declaracin manifiesta un filtro de intencin para la ACTION_MANAGE_NETWORK_USAGE accin. Por ejemplo:
<activity android:name="DataPreferences" android:label="@string/title_preferences"> <intent-filter> <accion android:name="android.intent.action.MANAGE_NETWORK_USAGE" /> <category android:name="android.intent.category.DEFAULT" /> </ Intencin de filtro> </ Actividad>

Este filtro intencin indica al sistema que esta es la actividad que controla el uso de la aplicacin de datos. Por lo tanto, cuando el usuario examina la cantidad de datos que su aplicacin es el uso de la aplicacin Ajustes, una "Ver configuracin de la aplicacin" botn est disponible que inicia su actividad de preferencia para que el usuario puede refinar la cantidad de datos que su aplicacin utiliza. Tambin ten en cuenta que getBackgroundDataSetting() est obsoleto y siempre devuelve verdadero uso getActiveNetworkInfo() en su lugar. Antes de intentar cualquier operacin de la red, siempre debe llamar a getActiveNetworkInfo() para obtener el NetworkInfo que representa la red actual y consulta isConnected() para comprobar si el dispositivo tiene una conexin. A continuacin, puede comprobar las propiedades de otro tipo de conexin, como si el dispositivo est conectado al mvil o Wi-Fi.

RenderScript
Tres caractersticas principales se han aadido a renderScript:

Fuera de la pantalla la representacin de un objeto framebuffer Prestacin dentro de una vista RS para cada uno de las API de marco

La Allocation clase ahora es compatible con una USAGE_GRAPHICS_RENDER_TARGET espacio de memoria, que le permite hacer cosas directamente en la Allocation y el uso como un objeto de uso de este dispositivo.
RSTextureView proporciona un medio para mostrar grficos renderScript en el interior un View , a diferencia de RSSurfaceView , que crea una ventana independiente. Esta

de

diferencia clave te permite hacer cosas, como mover, transformar, o animar un RSTextureView , as como dibujar grficos renderScript dentro de una vista que se encuentra dentro de un diseo de la actividad. El Script.forEach() mtodo le permite llamar a renderScript scripts calcular el nivel de VM y que automticamente delega a los ncleos disponibles en el dispositivo. Usted no debe utilizar este mtodo directamente, pero cualquier renderScript calcular que escriba tendr un forEach() mtodo que se puede llamar a la clase renderScript reflejada. Usted puede llamar a la reflejada forEach() mtodo por el que pasa en una entrada Allocation de proceso, una salida de Allocation para escribir el resultado, y un FieldPacker estructura de datos en caso de que el renderScript necesita ms informacin. Slo uno de los Allocation s es necesaria y la estructura de datos es opcional.

Empresa
Android 4.0 ampla las capacidades de las aplicaciones empresariales con las siguientes caractersticas. Servicios VPN

El nuevo VpnService permite que las aplicaciones para construir su propia VPN (Virtual Private Network), se ejecuta como un Service . Un servicio de VPN crea una interfaz para una red virtual con su propia direccin y las reglas de enrutamiento y realiza toda la lectura y la escritura con un descriptor de archivo. Para crear un servicio de VPN, utilice VpnService.Builder , que le permite especificar la direccin de red, servidor DNS, ruta de red y ms. Cuando se haya completado, se puede establecer la interfaz llamando al establish() , que devuelve un ParcelFileDescriptor . Debido a que un servicio de VPN puede interceptar los paquetes, hay implicaciones de seguridad. Por lo tanto, si se implementa VpnService , su servicio debe exigir que el BIND_VPN_SERVICE para asegurarse de que slo el sistema se puede unir a l (slo el sistema se concede este permiso aplicaciones-no se puede pedir). A continuacin, utilizar el servicio de VPN, los usuarios de forma manual debe habilitarlo en la configuracin del sistema. De polticas de dispositivos Aplicaciones que gestionan las restricciones dispositivo ahora puede desactivar la cmara utilizando setCameraDisabled() y el USES_POLICY_DISABLE_CAMERA propiedad (que se aplica con un <disable-camera /> elemento en el archivo de configuracin de la poltica). Certificado de gestin El nuevo KeyChain clase proporciona APIs que permiten acceder a los certificados de importacin y en el almacn de claves del sistema. Certificados de simplificar la instalacin de dos certificados de cliente (para validar la identidad del usuario) y los certificados de autoridad de certificacin (para verificar la identidad del servidor). Aplicaciones como navegadores web o clientes de correo electrnico pueden acceder a los certificados instalados para autenticar a los usuarios a los servidores. Ver el KeyChain de documentacin para ms informacin.

Los sensores del dispositivo


Dos tipos de sensores nuevos se han aadido en Android 4.0:
TYPE_AMBIENT_TEMPERATURE

: Un sensor de temperatura que proporciona el ambiente (habitacin) la temperatura en grados Celsius. TYPE_RELATIVE_HUMIDITY : Un sensor de humedad que proporciona la relativa ambiente (habitacin) como un porcentaje de humedad.

Si un dispositivo tiene dos TYPE_AMBIENT_TEMPERATURE y TYPE_RELATIVE_HUMIDITY sensores, se pueden utilizar para calcular el punto de roco y la humedad absoluta.

El sensor de temperatura anterior, TYPE_TEMPERATURE , ha quedado obsoleto. Se debe utilizar la TYPE_AMBIENT_TEMPERATURE sensor en su lugar. Adems, tres sensores de sntesis de Android se han mejorado mucho por lo que ahora tienen menos latencia y ms suave de salida. Estos sensores son el sensor de gravedad ( TYPE_GRAVITY ), sensor de rotacin vectorial ( TYPE_ROTATION_VECTOR ), y un sensor de aceleracin lineal ( TYPE_LINEAR_ACCELERATION ). Los sensores se basan en la mejora del sensor de giroscopio para mejorar su produccin, por lo que los sensores slo aparecen en los dispositivos que tienen un giroscopio.

Barra de accin
El ActionBar ha sido actualizado para apoyar a varios nuevos comportamientos. Lo ms importante es el sistema de forma logra el tamao de la barra de accin y de la configuracin cuando se ejecuta en pantallas ms pequeas con el fin de proporcionar una experiencia de usuario ptima en todos los tamaos de pantalla. Por ejemplo, cuando la pantalla est limitado (por ejemplo, cuando un telfono est en la orientacin vertical), las pestaas de la barra de acciones de navegacin aparecen en una "barra apilada", que aparece justo debajo de la barra de accin principales. Tambin pueden optar a una "split barra de accin", que coloca todos los elementos de accin en un bar separado en la parte inferior de la pantalla cuando la pantalla es estrecho. Dividir la barra de acciones Si tu barra de accin incluye varios elementos de accin, no todos ellos caben en la barra de acciones en una pantalla estrecha, por lo que el sistema coloca ms de ellos en el men de desbordamiento. Sin embargo, Android 4.0 le permite activar "barra de accin de divisin" para que ms elementos de accin pueden aparecer en la pantalla en un bar por separado en la parte inferior de la pantalla para activar barra de divisin accin, aade. android:uiOptions con "splitActionBarWhenNarrow" a cualquiera su <application> etiqueta o individuo <activity> etiquetas en el archivo de manifiesto. Cuando est activado, el sistema aade una barra adicional en la parte inferior de la pantalla para todos los puntos de accin cuando la pantalla est limitado (no los puntos de accin aparecer en la primaria barra de acciones). Si desea utilizar las fichas de navegacin proporcionada por el ActionBar.Tab API, pero no necesitan la barra de accin principal en la parte superior (slo desea que las pestaas aparezcan en la parte superior), a continuacin, active la barra de accin dividido como se describe anteriormente y Tambin llamada setDisplayShowHomeEnabled(false) para desactivar el icono de la aplicacin en la barra de accin. Sin nada en la barra de accin principal, desaparece, todo lo que queda son las fichas de navegacin en la parte superior y los puntos de accin en la parte inferior de la pantalla. Estilos de barra de accin

Si desea aplicar un estilo personalizado a la barra de accin, puede utilizar las propiedades nuevo estilo backgroundStacked y backgroundSplit aplicar un dibujable fondo o el color de la barra apilada y barra de divisin, respectivamente. Tambin puede establecer estos estilos en tiempo de ejecucin con setStackedBackgroundDrawable() y setSplitBackgroundDrawable() . Accin proveedor El nuevo ActionProvider clase le permite crear un controlador especializado para puntos de accin. Un proveedor de accin se puede definir una visin de accin, un comportamiento por omisin de accin, y un submen para cada elemento de accin para la que est asociada. Cuando se desea crear un elemento de accin que tiene comportamientos dinmicos (como un punto de vista de accin variable, la accin por defecto, o submen), que se extiende ActionProvider es una buena solucin para crear un componente reutilizable, en lugar de manejar las transformaciones distintas acciones en el tema el fragmento o la actividad. Por ejemplo, el ShareActionProvider es una extensin de ActionProvider que facilita una "parte" la accin de la barra de accin. En lugar de utilizar el punto de accin tradicional que invoca la ACTION_SEND intencin, puede utilizar este proveedor de la accin de presentar una visin de accin con un desplegable- lista de aplicaciones que se encargan de la ACTION_SEND intencin. Cuando el usuario selecciona una aplicacin que se utilizar para la accin, ShareActionProvider recuerda que la seleccin y le proporciona en el punto de vista de accin para un acceso ms rpido a compartir con esa aplicacin. Para declarar un proveedor de accin para un elemento de accin, incluyen el android:actionProviderClass atributo en el <item> elemento de men de las opciones de su actividad, con el nombre de la clase del proveedor de la accin como el valor. Por ejemplo:
<Elemento android: id = "@ + id / menu_share" android: title = "Compartir" android: showAsAction = "ifRoom" android: actionProviderClass = "android.widget.ShareActionProvider" />

En su actividad de onCreateOptionsMenu() el mtodo de devolucin de llamada, recuperar una instancia del proveedor de la accin del elemento de men y poner la intencin de:
pblica onCreateOptionsMenu booleano (men Men) { . getMenuInflater () inflar (R.menu.options, men); ShareActionProvider shareActionProvider = . (ShareActionProvider) menu.findItem (R.id.menu_share) getActionProvider (); / / Establecer la intencin de parte del proveedor de la accin social. shareActionProvider.setShareIntent (createShareIntent ()); ...

volver super.onCreateOptionsMenu (men); }

Para ver un ejemplo usando el ShareActionProvider , consulte la ActionBarActionProviderActivity clase en ApiDemos. Puntos de vista plegables accin Los elementos de accin que proporcionan una visin de accin pueden ahora cambiar entre el estado de vista de su accin y la accin del elemento tradicional del Estado. Anteriormente, slo los SearchView apoyado colapso cuando se utiliza como un punto de vista la accin, pero ahora usted puede agregar un punto de vista de accin para cualquier elemento de accin y cambiar entre el estado expandido (ver accin es visible) y el Estado se derrumb (punto de accin es visible). Para declarar que un elemento de accin que contiene una visin de la accin ser plegable, incluye el collapseActionView" bandera en el android:showAsAction de atributos para el <item> elemento en el archivo XML del men. Para recibir devoluciones de llamada cuando se cambia un punto de vista de accin entre expandido y contrado, registrar una instancia de MenuItem.OnActionExpandListener con los respectivos MenuItem llamando setOnActionExpandListener() . Normalmente, debe hacerlo durante el onCreateOptionsMenu() de devolucin de llamada. Para el control de un punto de vista la accin plegable, puede llamar a collapseActionView() y expandActionView() en los respectivos MenuItem . Al crear una vista personalizada de accin, tambin se puede aplicar la nueva CollapsibleActionView interfaz para recibir devoluciones de llamada cuando la vista se expande y se derrumb. Otras API para la barra de accin
setHomeButtonEnabled()

le permite especificar si el icono / logo se comporta como un botn para navegar en casa o de "arriba" (pass "verdad" para que se comporte como un botn). setIcon() y setLogo() permiten definir el icono de la barra de accin o el logotipo en tiempo de ejecucin. Fragment.setMenuVisibility() le permite activar o desactivar la visibilidad de los elementos del men las opciones declaradas por el fragmento. Esto es til si el fragmento ha sido aadido a la actividad, pero no es visible, por lo que los elementos del men se debe ocultar. FragmentManager.invalidateOptionsMenu() le permite invalidar el men de opciones de la actividad en varios estados del ciclo de vida del fragmento en el que utilizando el mtodo equivalente de Activity podra no estar disponible.

Interfaz de usuario y Vistas


Android 4.0 presenta una variedad de puntos de vista nuevos y otros componentes de la interfaz de usuario. GridLayout
GridLayout

es un grupo nuevo punto de vista que coloca puntos de vista del nio en una rejilla rectangular. A diferencia de TableLayout , GridLayout se basa en una jerarqua plana y no hacer uso de puntos de vista intermedios, tales como una tabla para proporcionar la estructura. En cambio, los nios especificar la fila (s) y la columna (s) que debe ocupar (las clulas pueden abarcar varias filas y / o columnas), y por defecto se establecen en forma secuencial a travs de las filas de la cuadrcula y las columnas. El GridLayout orientacin determina si los nios son secuenciales por defecto establecidos en horizontal o vertical. Espacio entre los nios puede ser especificado por el uso de instancias de la nueva Space vista o mediante el establecimiento de los parmetros de margen pertinentes sobre los nios. Ver ApiDemos para muestras con GridLayout . TextureView
TextureView

es una nueva visin que le permite mostrar una secuencia de contenido, como por ejemplo un vdeo o una escena de OpenGL. Aunque es similar a SurfaceView , TextureView es nico en que se comporta como una vista normal, en lugar de crear una ventana independiente, lo que se puede tratar como cualquier otro View objeto. Por ejemplo, puede aplicar transformaciones, animarlo con ViewPropertyAnimator o ajustar su opacidad con setAlpha() . Tenga en cuenta que TextureView slo funciona dentro de una ventana con aceleracin de hardware. Para ms informacin, consulte la TextureView documentacin. Interruptor de flash El nuevo Switch flash es un estado de dos de alternancia que los usuarios pueden arrastrar a un lado u otro (o simplemente del grifo) para alternar una opcin entre dos estados. Usted puede utilizar el android:textOn y android:textOff atributos para especificar el texto que aparecer en el interruptor, cuando en la configuracin de encendido y apagado. El android:text atributo tambin le permite colocar una etiqueta al lado del interruptor. Para ver un ejemplo usando conmutadores, consulte la switches.xml archivo de diseo y los respectivos interruptores de la actividad.

Mens emergentes Android 3.0 introdujo PopupMenu para crear cortos mens contextuales que aparecen en un punto de anclaje que especifique (por lo general en el punto del elemento seleccionado). Android 4.0 ampla el PopupMenu con un par de caractersticas tiles:

Ahora puedes inflar el contenido de un men emergente desde un XML recurso de men con inflate() , pasndole el identificador de recurso de men. Ahora tambin puede crear un PopupMenu.OnDismissListener que recibe una devolucin de llamada cuando el men se cierra.

Preferencias Un nuevo TwoStatePreference clase abstracta sirve de base a las preferencias que proporcionan una opcin de seleccin de dos estados. El nuevo SwitchPreference es una extensin de TwoStatePreference que proporciona un Switch flash en la vista de la preferencia que los usuarios puedan cambiar una configuracin de encendido o apagado, sin la necesidad de abrir una pantalla de preferencias adicionales o el dilogo. Por ejemplo, la aplicacin utiliza una configuracin de SwitchPreference para la configuracin Wi-Fi y Bluetooth. Temas del sistema El tema por defecto para todas las aplicaciones que se dirigen a Android 4.0 (ya sea mediante el establecimiento de targetSdkVersion o minSdkVersion a 14" o superior) es ahora el "dispositivo predeterminado" tema: Theme.DeviceDefault . Este puede ser el tema de Holo oscuro o un tema diferente oscuro definido por el dispositivo especfico. El Theme.Holo familia de los temas estn garantizados para no cambiar de un dispositivo a otro cuando se ejecuta la misma versin de Android. Si se aplican explcitamente ninguna de las Theme.Holo temas de sus actividades, usted puede estar seguro de que estos temas no va a cambiar de carcter en diferentes dispositivos dentro de la versin de la plataforma misma. Si usted desea para su aplicacin para combinar con el tema general del dispositivo (por ejemplo, cuando los fabricantes de equipos diferentes que proporcionan diferentes temas por defecto para el sistema), debe aplicarse de forma explcita los temas de la Theme.DeviceDefault familia. Botn Opciones de men A partir de Android 4.0, te dars cuenta de que los telfonos ya no requieren de un botn de hardware del men. Sin embargo, no hay necesidad de que te preocupes por esto si la aplicacin existente proporciona un men de opciones y espera que haya un botn de Men. Para asegurar que las aplicaciones existentes seguirn funcionando como se espera,

el sistema proporciona un botn de Men en pantalla para las aplicaciones que fueron diseadas para versiones anteriores de Android. Para una mejor experiencia de usuario, aplicaciones nuevas y actualizadas debera usar el ActionBar para proporcionar acceso a los elementos de men y establecer targetSdkVersion a "14" para tomar ventaja de los comportamientos ms por defecto marco. Controles para el sistema de visibilidad de la interfaz de usuario Desde los primeros das de Android, el sistema ha logrado un componente de interfaz de usuario conocida como la barra de estado, que se encuentra en la parte superior de los dispositivos de telfono para ofrecer informacin, como la seal de la portadora, tiempo, notificaciones, etc. Android 3.0 aade la barra de sistema para dispositivos tablet, que se encuentra en la parte inferior de la pantalla para proporcionar sistema de controles de navegacin (Inicio, de nuevo, y as sucesivamente) y tambin una interfaz de los elementos tradicionalmente a cargo de la barra de estado. En Android 4.0, el sistema proporciona un nuevo tipo de sistema de interfaz de usuario llamada la barra de navegacin. Usted podra considerar la barra de navegacin una versin re-sintona de la barra de sistema diseado para telfonos mviles, que proporciona controles de navegacin para dispositivos que no tienen homlogos de hardware para navegar por el sistema, pero deja de lado la interfaz de usuario de la barra de sistema de notificacin y los controles de ajuste. Por lo tanto, un dispositivo que ofrece la barra de navegacin tambin tiene la barra de estado en la parte superior. A da de hoy, puede ocultar la barra de estado en los telfonos usando el FLAG_FULLSCREEN bandera. En Android 4.0, el API que controlar la visibilidad de la barra de sistema han sido actualizados para reflejar mejor el comportamiento tanto de la barra de sistema y la barra de navegacin:

El SYSTEM_UI_FLAG_LOW_PROFILE bandera reemplaza la STATUS_BAR_HIDDEN bandera. Cuando se establece, este indicador permite "perfil bajo" modo de la barra de sistema o barra de navegacin. Botones de navegacin tenue y otros elementos en la barra de sistema tambin se esconden. Habilitar esta es til para crear ms juegos de inmersin sin la distraccin de los botones del sistema de navegacin. El SYSTEM_UI_FLAG_VISIBLE bandera reemplaza la STATUS_BAR_VISIBLE bandera para solicitar la barra de sistema o barra de navegacin de ser visibles. El SYSTEM_UI_FLAG_HIDE_NAVIGATION es una nueva bandera que pide a la barra de navegacin de ocultar por completo. Tenga en cuenta que esto slo funciona para la barra de navegacin utilizados por algunos equipos (no ocultar la barra de sistema en tablas). La barra de navegacin vuelve a la vista tan pronto como el sistema recibe la entrada del usuario. Como tal, este modo es til principalmente para la reproduccin de vdeo o en otros casos en los que se necesita toda la pantalla, pero la entrada del usuario no es necesario.

Puede configurar cada una de estas banderas de la barra del sistema y la barra de navegacin llamando setSystemUiVisibility() en cualquier punto de vista de su actividad. El gestor de ventanas combina (O-juntos) todas las banderas de todos los puntos de vista en la ventana y los aplican a la interfaz de usuario del sistema, siempre y cuando la ventana tiene el foco de entrada. Cuando la ventana pierde el foco de entrada (el usuario se desplaza fuera de su aplicacin, o aparece un cuadro de dilogo), sus banderas dejar de tener efecto. Del mismo modo, si se quita los puntos de vista de la jerarqua de la vista de sus banderas ya no se aplican. Para sincronizar otros eventos en su actividad con los cambios de visibilidad de la interfaz de usuario del sistema (por ejemplo, ocultar la barra de acciones u otros controles de interfaz de usuario cuando se oculta la interfaz de usuario del sistema), debe registrar un View.OnSystemUiVisibilityChangeListener para ser notificado cuando la visibilidad de la barra del sistema la navegacin o la barra de cambios. Ver el OverscanActivity clase para una demostracin de las diferentes opciones de sistema de interfaz de usuario.

Entrada de Marco
Android 4.0 aade soporte para eventos hover cursor y el lpiz nuevo y los eventos de ratn. Pase el ratn eventos El View ahora es compatible con la clase "hover" eventos que permitan interacciones ms ricas a travs del uso de dispositivos de puntero (como un ratn u otros dispositivos que conducen a un cursor en la pantalla). Para recibir los eventos hover en un punto de vista, poner en prctica la View.OnHoverListener y registrarlo con setOnHoverListener() . Cuando un evento hover se produce en el punto de vista, el detector recibe una llamada a onHover() , siempre que el View que recibi el evento y un MotionEvent que describe el tipo de evento hover que se produjo. El evento hover puede ser uno de los siguientes:
ACTION_HOVER_ENTER ACTION_HOVER_EXIT ACTION_HOVER_MOVE

Su View.OnHoverListener debe devolver true de onHover() si se controla el evento hover. Si su oyente devuelve false, el evento hover se enviar a la vista de los padres como de costumbre. Si su aplicacin utiliza botones o de otros controles que cambian de aspecto segn el estado actual, puede utilizar el android:state_hovered atributo en una lista del estado dibujable

para proporcionar un dibujable fondo diferente cuando el cursor pasa sobre el punto de vista. Para una demostracin de los nuevos eventos de vuelo estacionario, ver el Pase de clase en ApiDemos. Stylus y los eventos de ratn Android ahora ofrece APIs para recibir informacin de un dispositivo de entrada de lpiz ptico como un perifrico tableta digitalizadora o una pantalla tctil lpiz habilitado. Un lpiz funciona de manera similar al tacto o el mouse. Cuando el lpiz est en contacto con el digitalizador, las aplicaciones reciben eventos de toque al igual que lo hara cuando un dedo se usa para tocar la pantalla. Cuando el lpiz est encima de la digitalizacin, las aplicaciones reciben eventos hover al igual que lo hara cuando el puntero del ratn se est moviendo a travs de la pantalla cuando no se pulsan los botones. Su aplicacin puede distinguir entre un dedo, el ratn, el lpiz y goma de borrar de entrada al consultar el "tipo de herramienta" asociada a cada puntero en un MotionEvent con getToolType() Los tipos de herramientas que actualmente definidos son los siguientes:. TOOL_TYPE_UNKNOWN , TOOL_TYPE_FINGER , TOOL_TYPE_MOUSE , TOOL_TYPE_STYLUS y TOOL_TYPE_ERASER . Al consultar el tipo de herramienta, la aplicacin puede elegir manejar un lpiz de manera diferente a dedo o el mouse. Su aplicacin tambin se puede consultar que el ratn o los botones se presionan lpiz al consultar el "estado de los botones" de un MotionEvent con getButtonState() Los estados de los botones definidos actualmente son:. BUTTON_PRIMARY , BUTTON_SECONDARY , BUTTON_TERTIARY , BUTTON_BACK y BUTTON_FORWARD . Para mayor comodidad, la parte de atrs y hacia adelante botones del ratn se asignan automticamente a la KEYCODE_BACK y KEYCODE_FORWARD llaves. La aplicacin puede controlar estas teclas para apoyar botn del ratn basado en la navegacin hacia atrs y adelante. Adems de medir con precisin la posicin y la presin de un contacto, algunos dispositivos de entrada de lpiz tambin el informe de la distancia entre la punta del lpiz y el digitalizador, el ngulo de inclinacin stylus, y el ngulo de orientacin lpiz. Su aplicacin puede consultar esta informacin con getAxisValue() con el eje de los cdigos de AXIS_DISTANCE , AXIS_TILT y AXIS_ORIENTATION . Para una demostracin de los tipos de herramientas, estados de los botones y los cdigos de un nuevo eje, ver el TouchPaint clase en ApiDemos.

Propiedades
La nueva Property de clase proporciona una manera rpida, eficiente y fcil de especificar una propiedad de cualquier objeto que permite a quienes llaman para establecer de forma genrica / obtener los valores de los objetos de destino. Tambin permite la funcionalidad

de pasar alrededor del campo / mtodo de referencia y permite que el cdigo para obtener / establecer valores de la propiedad sin conocer los detalles de lo que los campos / mtodos. Por ejemplo, si desea establecer el valor del campo de bar en el objeto foo , que ya podra hacer esto:
foo.bar = valor;

Si usted desea llamar a la incubadora de un campo privado subyacente bar , que ya podra hacer esto:
foo.setBar (valor);

Sin embargo, si usted desea pasar todo el foo de la instancia y tener algn otro tipo de cdigo establece la bar valor, en realidad no hay manera de hacerlo antes de que Android 4.0. Uso de la Property de clase, se puede declarar una Property objeto BAR en la clase Foo para que pueda establecer el campo de la instancia foo de la clase Foo de esta manera:
BAR.set (foo, valor);

La View de clases ahora aprovecha la Property de clase que le permiten establecer diferentes campos, tales como propiedades de transformacin que se agregaron en Android 3.0 ( ROTATION , ROTATION_X , TRANSLATION_X , etc.) El ObjectAnimator clase tambin utiliza la Property de clase, para que pueda crear un ObjectAnimator con una Property , que es ms rpido, ms eficiente y mayor seguridad de tipos que el enfoque basado en cadenas.

Aceleracin por hardware


A partir de Android 4.0, la aceleracin de hardware para todas las ventanas est activado por defecto, si su aplicacin ha establecido ya sea targetSdkVersion o minSdkVersion a 14" o superior. La aceleracin por hardware en general, los resultados en animaciones ms suaves, ms suave desplazamiento y mejor rendimiento general y la respuesta a la interaccin del usuario . Si es necesario, puede deshabilitar manualmente la aceleracin de hardware con el hardwareAccelerated de atributos para cada <activity> elementos o la <application> elemento. Tambin puede optar por desactivar la aceleracin por hardware para puntos de vista individuales llamando setLayerType(LAYER_TYPE_SOFTWARE) . Para ms informacin sobre la aceleracin de hardware, incluyendo una lista de las operaciones de dibujo no admitidas, vea la aceleracin de hardware documento.

JNI cambios
En las versiones anteriores de Android, las referencias JNI local no se maneja indirectos; Android utiliza punteros directos. Este no era un problema, siempre y cuando el recolector de basura no se mueven los objetos, sino que pareca funcionar, ya que hizo posible la escritura de cdigo errneo. En Android 4.0, el sistema utiliza ahora las referencias indirectas a fin de detectar estos errores. Los pormenores de las referencias JNI local se describe en "Referencias Locales y Globales", en consejos JNI . En Android 4.0, CheckJNI se ha mejorado para detectar estos errores. Ver el blog de desarrolladores de Android para un puesto prximo acerca de los errores comunes con referencias JNI y cmo se puede arreglar. Este cambio en la implementacin de JNI slo afecta a las aplicaciones que se dirigen a Android 4.0 ya sea mediante el establecimiento de la targetSdkVersion o minSdkVersion a 14" o superior. Si ha establecido estos atributos en un valor inferior, las referencias JNI locales se comportan igual que en versiones anteriores .

WebKit

WebKit actualizado a la versin 534.30 Soporte para fuentes ndicas (devanagari, bengal, tamil y, entre ellos el soporte de caracteres complejos que son necesarios para la combinacin de glifos) en WebView y el navegador integrado Soporte para fuentes etope, Georgia, Armenia y en WebView y el navegador integrado Apoyo a WebDriver hace ms fcil para usted para poner a prueba las aplicaciones que utilizan WebView

Android Browser El navegador incorpora las siguientes caractersticas para soportar aplicaciones web:

Actualizado V8 JavaScript compilador para un rendimiento ms rpido Adems de otras mejoras notables prorrogados de Android 3.0 ya estn disponibles para los telfonos: o Soporte para colocar los elementos fijos en todas las pginas o HTML medio de captura o Los eventos del dispositivo de orientacin o CSS 3D transformaciones

Permisos
Los siguientes son los nuevos permisos:

ADD_VOICEMAIL

: Permite a un servicio de correo de voz para agregar mensajes de voz en el dispositivo. BIND_TEXT_SERVICE : Es un servicio que implementa SpellCheckerService que requieren este permiso por s mismo. BIND_VPN_SERVICE : Es un servicio que implementa VpnService que requieren este permiso por s mismo. READ_PROFILE : Proporciona acceso de lectura a la ContactsContract.Profile proveedor. WRITE_PROFILE : Proporciona acceso de escritura al ContactsContract.Profile proveedor.

Caractersticas del dispositivo


Las siguientes son las nuevas caractersticas del dispositivo:
FEATURE_WIFI_DIRECT

: Declara que la aplicacin utiliza Wi-Fi para comunicaciones peer-to-peer.

Para obtener una vista detallada de todos los cambios en la API de Android 4.0 (nivel de API 14), ver el informe de API diferencias .

Anterior API
Adems de todo lo anterior, Android 4.0, naturalmente, apoya todas las API de versiones anteriores. Dado que la plataforma Android 3.x est disponible slo para dispositivos de pantalla grande, si usted ha estado desarrollando principalmente para los telfonos, entonces no podra estar al tanto de todas las API aadido a Android en estos ltimos lanzamientos. He aqu un vistazo a algunas de las APIs ms notable que haya pasado por alto que ahora estn disponibles en los telfonos, as: Android 3.0
Fragment

: Un componente de marco de referencia que le permite separar los distintos elementos de una actividad en mdulos autnomos que definen su propia interfaz de usuario y ciclo de vida. Ver el Fragmentos gua para desarrolladores. ActionBar : Un reemplazo para la barra de ttulo tradicional en la parte superior de la ventana de la actividad. Incluye el logotipo de la aplicacin en la esquina izquierda, y ofrece una nueva interfaz para los elementos del men. Ver la barra de accin gua para desarrolladores. Loader : Un componente de marco de referencia que facilita la carga asncrona de datos en combinacin con componentes de interfaz de usuario para cargar dinmicamente datos sin bloquear el subproceso principal. Ver la Cargadores gua para desarrolladores.

Portapapeles del sistema: Las solicitudes se pueden copiar y pegar datos (ms all del texto simple) desde y hacia el portapapeles del sistema. Datos recortado puede ser texto plano, URI, o una intencin. Ver el copiar y pegar gua para desarrolladores. Arrastrar y soltar: Un conjunto de APIs integradas en el marco de visin que facilita las operaciones de arrastrar y soltar. Ver el Drag and Drop gua para desarrolladores. Un todo nuevo marco flexible que permite la animacin para animar las propiedades arbitrarias de cualquier objeto (Ver Disponibles, fragmento, objeto, o cualquier otra cosa) y definir aspectos como la duracin de la animacin, la interpolacin, la repeticin y ms. El nuevo marco de animaciones en Android ms sencillo que nunca. Vea la animacin de Propiedad gua para desarrolladores. RenderScript grficos y calcular motor: renderScript ofrece un alto rendimiento de procesamiento de grficos 3D y calcular API a nivel nativo, que se escribe en el C (C99 estndar), proporcionando el tipo de rendimiento que espera de un ambiente natural sin dejar de ser portable a travs de varias CPUs y GPUs. Ver el renderScript gua para desarrolladores. Aceleracin por hardware de grficos 2D: Ahora se puede permitir que el procesador OpenGL para su aplicacin mediante el establecimiento de {android: hardwareAccelerated = "true"} en el elemento de manifestar la propia <application> elemento o persona <activity> elementos. Esto da lugar a animaciones ms suaves, ms suave desplazamiento y mejor rendimiento general y la respuesta a la interaccin del usuario. Nota: Si se establece la aplicacin minSdkVersion o targetSdkVersion a "14" o superior, la aceleracin por hardware est activada por defecto.

Y mucho, mucho ms. Ver el Android 3.0 Plataforma notas para ms informacin.

Android 3.1

USB API: API para la integracin de nuevos y potentes perifricos conectados con las aplicaciones de Android. El API se basa en una pila USB y los servicios que se incorporan a la plataforma, incluyendo soporte para host USB y las interacciones dispositivo. Ver el host USB y accesorios de gua para el desarrollador. MTP / PTP API: Las aplicaciones pueden interactuar directamente con las cmaras conectadas y otros dispositivos PTP para recibir notificaciones cuando los dispositivos estn conectados y se retira, gestin de archivos y almacenamiento en estos dispositivos y transferir archivos y metadatos desde y hacia ellos. El MTP API implementa el PTP (Picture Transfer Protocol) subconjunto de la MTP (Media Transfer Protocol) especificacin. Ver el android.mtp documentacin.

RTP API: Android expone una API para su base de RTP (Real-time Transport Protocol) de pila, que las aplicaciones pueden utilizar para gestionar on-demand o streaming de datos interactivos. En aplicaciones particulares, que ofrecen VoIP, push-to-talk, conferencia y streaming de audio se puede utilizar la API para iniciar sesiones y transmitir o recibir secuencias de datos a travs de cualquier red disponible. Ver el android.net.rtp documentacin. Soporte para los joysticks y otros insumos de movimiento genrico. Ver el Android 3.1 Plataforma de notas para las API de muchos ms nuevos.

Android 3.2

Nuevas pantallas admite las API que le dar ms control sobre cmo sus aplicaciones se muestran a travs de diferentes tamaos de pantalla. El API se extiende el modelo de pantalla de apoyo existentes con la capacidad para orientar con precisin el tamao de pantalla especfico vara segn las dimensiones, medidas en unidades de densidad de pxeles independientes (como 600dp o 720dp de ancho), ms que por su tamao de pantalla generalizada (por ejemplo, grandes o xlarge ). Por ejemplo, esto es importante para ayudar a distinguir entre un 5 "y un dispositivo de 7", el cual sera tanto tradicionalmente se bucketed como "grandes" pantallas. Ver la entrada del blog, nuevas herramientas para administrar tamaos de pantalla . Nuevas constantes de <uses-feature> para declarar paisaje o retrato de los requisitos de orientacin de la pantalla. El dispositivo de "tamao de la pantalla" Configuracin de ahora los cambios durante un cambio de orientacin de la pantalla. Si su aplicacin los objetivos de nivel API 13 o superior, debe controlar el "screenSize" cambio de configuracin, si usted tambin quiere manejar la "orientation" cambio de configuracin. Ver android:configChanges para ms informacin. Ver el Android 3.2 Plataforma de notas para las nuevas API de otros.

API de nivel
El Android 4.0 API se le asigna un identificador entero-14-que se almacena en el propio sistema. Este identificador, llamado "API de nivel", permite al sistema determinar correctamente si una aplicacin es compatible con el sistema, antes de instalar la aplicacin. Para utilizar las API de Android introducido en 4.0 en su aplicacin, es necesario compilar la aplicacin en contra de una plataforma Android que soporta el nivel API 14 o superior. Dependiendo de sus necesidades, tambin puede ser necesario agregar un nuevo android:minSdkVersion="14" atribuir a la <uses-sdk> elemento. Para ms informacin, consulte la API niveles documento.

Aplicaciones incorporadas
La imagen del sistema incluido en la plataforma descargable ofrece estas aplicaciones incorporadas:

Demos de la API Navegador Calculadora Calendario Cmara Reloj Personalizadas de configuracin regional Dev Herramientas Descargas E-mail Galera

Gestos Builder Mensajera Msica Personas Telfono Bsqueda Configuracin Grabadores de Voz Grabadores de Voz Widget previa

Locales
La imagen del sistema incluido en el SDK de la plataforma descargable ofrece una variedad de lugares incorporados. En algunos casos, la regin cadenas especficas estn disponibles para los locales. En otros casos, una versin por defecto de la lengua se utiliza. Los idiomas que estn disponibles en la imagen del sistema Android 3.0 se enumeran a continuacin (con el idioma _ pas / regin de descriptor local).

rabe, Egipto (ar_EG) rabe, Israel (ar_IL) Bulgaria Bulgaria, (bg_BG) Cataln, Espaa (ca_ES) Checa, Repblica Checa (cs_CZ) Dans, Dinamarca (es_ES) Alemania, Austria (de_AT) Alemania, Suiza (de_CH) Alemania, Alemania (de_DE) Alemania, Liechtenstein (de_LI) Griego, Grecia (el_GR) Ingls, Australia (en_AU) Ingls, Canad (en_CA) Ingls, Gran Bretaa (es_ES) Ingls, Irlanda (en_IE) Ingls, India (en_IN) Ingls, Nueva Zelanda (en_NZ) Ingls, Singapur (en_SG)

Croacia, Croacia (hr_HR) Hungra, Hungra (hu_HU) Indonesia, Indonesia (id_ID) Italia, Suiza (it_CH) En italiano (it_IT) Japons (ja_JP) Corea (ko_KR) Lituania, Lituania (lt_LT) Letonia, Letonia (lv_LV) Noruega Noruega bokml (nb_NO) Holanda, Blgica (nl_BE) Holanda, Pases Bajos (nl_NL) Polaco (pl_PL) Portugal, Brasil (pt_BR) Portugal, Portugal (pt_PT) Rumania, Rumania (ro_RO) Rusia (ru_RU) Eslovaquia, Eslovaquia (sk_SK)

Ingls, EE.UU. (en_US) Ingls, Zimbabwe (en_ZA) Espaol (es_ES) Espaol, EE.UU. (es_US) Finlandia, Finlandia (fi_FI) Francs, Blgica (fr_BE) Francs, Canad (fr_CA) Francs, Suiza (fr_CH) Francs, Francia (fr_FR) Hebreo, Israel (he_IL) Hindi, India (hi_IN)

Eslovenia Eslovenia, (sl_SI) Serbia (sr_RS) Suecia, Suecia (sv_SE) Tailandia, Tailandia (th_TH) Tagalog, Filipinas (tl_PH) De Turqua, Turqua (tr_TR) Ucrania, Ucrania (uk_UA) Vietnamita, Vietnam (vi_VN) China, Repblica Popular China (zh_CN) China, Taiwn (zh_TW)

Nota: La plataforma Android puede soportar ms locales que se incluyen en la imagen del sistema de SDK. Todos los locales soportados estn disponibles en el proyecto de cdigo abierto Android .

Skins emulador
La plataforma de descarga incluye las pieles emulador siguiente:

QVGA (240x320, de baja densidad, la pequea pantalla) WQVGA400 (240x400, de baja densidad, la pantalla normal) WQVGA432 (240x432, de baja densidad, la pantalla normal) HVGA (320x480, de densidad media, pantalla normal) WVGA800 (480x800, de alta densidad, pantalla normal) WVGA854 (480x854 de alta densidad, pantalla normal) WXGA720 (1280x720, extra-alta densidad, pantalla normal) nuevo WSVGA (1024x600, de densidad media, la gran pantalla) nuevo WXGA (1280x800, de densidad media, xlarge pantalla)

Para probar la aplicacin en un emulador que representa el ms reciente dispositivo Android, puede crear una AVD con el nuevo WXGA720 la piel (es un dispositivo xhdpi, pantalla normal). Tenga en cuenta que el emulador en la actualidad no es compatible con el nuevo en la pantalla barra de navegacin para dispositivos sin botones de navegacin de hardware, por lo que cuando se utiliza este aspecto, es preciso utilizar el teclado Inicio claves para el botn Inicio, ESC para el botn Atrs y F2 o pgina -para el botn del men. Sin embargo, debido a problemas de rendimiento en el emulador cuando se ejecuta pantallas de alta resolucin como la de la piel WXGA720, le recomendamos que utilizan principalmente el tradicional WVGA800 piel (IPAP, pantalla normal) para probar la aplicacin.

Herramientas de desarrollo de Android (ADT) es un plugin para el IDE de Eclipse que est diseado para darle un ambiente potente, integrado en el que la creacin de aplicaciones para Android. ADT ampla las capacidades de Eclipse para que pueda configurar rpidamente nuevos proyectos de Android, crear una interfaz de usuario de la aplicacin, aadir componentes basados en la API de Android Framework, depurar sus aplicaciones utilizando las herramientas de SDK de Android, e incluso firm la exportacin (con o sin signo) .apk archivos con el fin de distribuir la aplicacin. En desarrollo en Eclipse con ADT es muy recomendable y es la manera ms rpida para empezar. Con la configuracin de un proyecto guiado que ofrece, as como la integracin de herramientas, editores XML personalizado, y el panel de salida de la seal de depuracin, ADT le da un impulso increble en el desarrollo de aplicaciones de Android. Este documento proporciona instrucciones paso a paso las instrucciones sobre cmo descargar el plugin ADT e instalarlo en su entorno de desarrollo Eclipse. Tenga en cuenta que para poder instalar o utilizar ADT, usted debe tener las versiones compatibles de ambos el IDE de Eclipse y el SDK de Android instalado. Para obtener ms informacin, asegrese de leer instalar el plugin ADT , por debajo. Si usted ya est usando ADT, este documento tambin contiene instrucciones sobre cmo actualizar ADT a la ltima versin o la forma de desinstalar, si es necesario. Para obtener informacin sobre las caractersticas proporcionadas por el plugin ADT, tales como las caractersticas del editor de cdigo, la integracin de la herramienta SDK, y el editor de diseo grfico (diseo para la edicin de arrastrar y soltar), ver el Android Developer Herramientas de documentos.

Revisiones
Las secciones siguientes proporcionan notas acerca de las sucesivas versiones del plugin de ADT, como lo indica el nmero de revisin. Para un resumen de todos los problemas conocidos en el ADT, ver http://tools.android.com/knownissues . ADT 15.0.0 (octubre de 2011) Dependencias: ADT 15.0.0 est diseado para su uso con herramientas de SDK r15 . Si usted no ha instalado el SDK Herramientas r15 en su SDK, utilice el SDK de Android y AVD Manager para hacerlo.

Correccin de errores:

Fija construir problema cuando se utiliza renderScript en proyectos destinados a los niveles de API 11-13 ( Edicin 21006 ). Solucionado el problema al crear proyectos de cdigo fuente existente. Corregidos problemas en el Manager SDK ( nmero 20.939 , nmero 20.607 ). Tema de desplazamiento fijo en el panel logcat nuevo DDMS.

ADT 14.0.0 (octubre de 2011) ADT 12.0.0 (julio de 2011) ADT 11.0.0 (junio de 2011) ADT 10.0.1 (marzo de 2011) ADT 10.0.0 (febrero de 2011) ADT 9.0.0 (enero de 2011) ADT 8.0.1 (Diciembre 2010) ADT 8.0.0 (Diciembre 2010) ADT 0.9.9 (Septiembre 2010) ADT 0.9.8 (Septiembre 2010) ADT 0.9.7 (mayo de 2010) ADT 0.9.6 (Marzo 2010) ADT 0.9.5 (Diciembre 2009) ADT 0.9.4 (Octubre 2009)

Instalar el plugin de ADT


Las secciones siguientes proporcionan instrucciones sobre cmo descargar e instalar el ADT en el entorno de Eclipse. Si tiene problemas, consulte la solucin de problemas seccin.

Cmo preparar a su equipo de desarrollo


ADT es un plugin para el IDE de Eclipse. Antes de poder instalar o utilizar ADT, usted debe tener una versin compatible de Eclipse instalado en su equipo de desarrollo. Compruebe el sistema Requisitos de documentos para obtener una lista de las versiones de Eclipse que son compatibles con el SDK de Android.

Si Eclipse ya est instalado en su computadora, asegrese de que se trata de una versin que sea compatible con el ADT y el SDK de Android. Si usted necesita para instalar o actualizar Eclipse, se puede descargar desde esta ubicacin: http://www.eclipse.org/downloads/ El "Eclipse Classic" se recomienda la versin. De lo contrario, una versin de Java o RCP de Eclipse se recomienda.

Adems, antes de poder configurar o utilizar ADT, debe instalar el SDK de Android paquete de inicio, como se describe en la descarga del paquete de inicio SDK . En concreto, es necesario instalar una versin compatible de las herramientas de Android SDK y al menos una plataforma de desarrollo. Para simplificar la configuracin de ADT, se recomienda instalar el SDK de Android antes de instalar el ADT. Cuando el Eclipse y entornos Android SDK est listo, continuar con la instalacin ADT como se describe en los pasos siguientes.

Descargar el plugin ADT


Utilice la funcin de Administrador de actualizacin de la instalacin de Eclipse para instalar la ltima versin de ADT en el equipo de desarrollo. <> Asumiendo que usted tiene una versin compatible de la IDE de Eclipse instalado, como se describe en Preparacin para la instalacin , por encima, siga estos pasos para descargar el plugin ADT e instalarlo en el entorno de Eclipse. 1. Inicio Eclipse, a continuacin, seleccione Ayuda> Instalar nuevo software .... 2. Haga clic en Agregar, en la esquina superior derecha. 3. En el cuadro de dilogo Agregar repositorio que aparece, escriba "ADT plugin" para el nombre y la siguiente URL para la ubicacin de:
https://dl-ssl.google.com/android/eclipse/

4. Haga clic en Aceptar Nota: Si usted tiene problemas para adquirir el plugin, trate de usar "http" en la URL de ubicacin, en vez de "https" (https es preferible por razones de seguridad). 5. En el cuadro de dilogo de software disponibles, seleccione la casilla junto a las herramientas de desarrollo y haga clic en Siguiente. 6. En la siguiente ventana, ver una lista de las herramientas para ser descargado. Haga clic en Siguiente. 7. Lea y acepte los acuerdos de licencia, haga clic en Finalizar. Nota: Si usted recibe un aviso de seguridad diciendo que la autenticidad o validez del software no se puede establecer, haga clic en Aceptar. 8. Cuando finalice la instalacin, reinicie Eclipse.

Configurar el plugin ADT


Una vez que haya descargado el ADT como se describi anteriormente, el siguiente paso es modificar sus preferencias de ADT en Eclipse para que apunte al directorio de Android SDK:

1. Seleccione Ventana> Preferencias ... para abrir el panel de Preferencias (Mac OS X: Eclipse> Preferencias). 2. Seleccione Android desde el panel de la izquierda. Es posible que vea un cuadro de dilogo que le pregunta si desea enviar estadsticas de uso de Google. Si es as, hacer su eleccin y haga clic en Continuar. No se puede continuar con este procedimiento hasta que haga clic en Continuar. 3. Para la ubicacin de SDK en el panel principal, haga clic en Examinar ... y localice el directorio de descarga del SDK. 4. Haga clic en Aplicar y luego Aceptar. Hecho! Si usted no ha tenido ningn problema, la instalacin se ha completado. Si va a instalar el SDK de Android, por primera vez, volver a instalar el SDK para completar la configuracin.

Solucin de problemas de instalacin ADT


Si usted est teniendo problemas para descargar el plugin ADT despus de seguir los pasos anteriores, he aqu algunas sugerencias:

Si Eclipse no puede encontrar el sitio de actualizacin a distancia que contiene el plugin ADT, intente cambiar la URL del sitio remoto para que utilice http, https en lugar de. Es decir, establecer la ubicacin del sitio remoto en:
http://dl-ssl.google.com/android/eclipse/

Si ests detrs de un firewall (como un firewall de la empresa), asegrese de que ha configurado correctamente la configuracin del proxy en Eclipse. En Eclipse, puede configurar la informacin del proxy en el men principal de Eclipse en la ventana (en Mac OS X, Eclipse)> Preferencias> General> Conexiones de red.

Si usted todava no puede utilizar Eclipse para descargar el plugin ADT como un sitio de actualizacin a distancia, puede descargar el archivo zip ADT para el equipo local y instalarlo manualmente: 1. Descargar el plugin actual ADT archivo zip de la tabla de abajo (no lo unpack). Nombre Paquete Tamao MD5 Checksum ADT 15.0.0 ADT-15.0.0.zip 6750682 bytes 264f40a89a1107b0c422adae4e1ce0d1 2. 3. 4. 5. Siga los pasos 1 y 2 en la instrucciones de instalacin por defecto (ver arriba). En el cuadro de dilogo Agregar sitio, haga clic en Archivo. Buscar y seleccionar el archivo zip descargado. Escriba un nombre para el sitio de actualizacin local (por ejemplo, "Android Plugin") en el campo "Nombre".

6. Haga clic en Aceptar. 7. Siga el resto de procedimientos que se enumeran para la instalacin por defecto arriba, comenzando desde el paso 4. Para actualizar el plug-in, una vez que haya instalado utilizando el archivo zip, tendrs que seguir estos pasos de nuevo en lugar de las instrucciones de actualizacin predeterminadas. Otros errores de instalacin Tenga en cuenta que hay caractersticas de ADT que requieren algunos componentes opcionales de Eclipse (por ejemplo, WST). Si se produce un error durante la instalacin ADT, su installion Eclipse podra no incluir estos componentes. Para obtener informacin sobre cmo agregar rpidamente los componentes necesarios para la instalacin de Eclipse, consulte Resolucin de problemas ADT Error de instalacin: "requiere plug-in org.eclipse.wst.sse.ui" . Para los usuarios de Linux Si te aparece este error al instalar el plugin de ADT para Eclipse:
Se produjo un error durante el aprovisionamiento. No se puede conectar al keystore. JKS

... Entonces el equipo de desarrollo carece de una adecuada mquina virtual de Java. Instalacin de Sun Java 6 se resolver este problema y, a continuacin, puede volver a instalar el plugin de ADT.

Actualizacin del Plugin ADT


De vez en cuando, una nueva revisin de la ADT plugin est disponible, con nuevas caractersticas y correcciones de errores. Generalmente, cuando una nueva revisin del ADT est disponible, debe actualizar a l tan pronto como sea conveniente. En algunos casos, una nueva revisin de ADT tienen una dependencia en una revisin especfica de las herramientas de Android SDK. Si existen tales dependencias, ser necesario actualizar el componente SDK herramientas del SDK despus de instalar la nueva revisin de la ADT. Para actualizar el componente SDK Tools, utilice el SDK de Android y AVD Manager, como se describe en Agregar componentes de SDK . Para aprender sobre las nuevas caractersticas de cada revisin ADT y tambin las dependencias de las herramientas de SDK, vea la lista en la revisiones seccin. Para determinar la versin instalada, abra la ventana de Eclipse instalado software de uso de la Ayuda> Actualizaciones de software y se refieren a la versin que aparece en "Herramientas de desarrollo de Android".

Siga los siguientes pasos para comprobar si hay una actualizacin disponible y, si es as, que lo instale. 1. Seleccione Ayuda> Buscar actualizaciones. Si no hay actualizaciones disponibles, aparecer un dilogo lo diga y ya est. 2. Si hay actualizaciones disponibles, seleccione Android DDMS, Herramientas de Desarrollo de Android, Android y el Visor de la Jerarqua, a continuacin, haga clic en Siguiente. 3. En el cuadro de dilogo Detalles de la actualizacin, haga clic en Siguiente. 4. Lea y acepte el acuerdo de licencia y haga clic en Finalizar. Esto descargar e instalar la ltima versin de Android DDMS y herramientas de desarrollo para Android. 5. Reiniciar Eclipse. Si se producen problemas durante la actualizacin, quite el plugin ADT existentes de Eclipse, a continuacin, realizar una nueva instalacin, siguiendo las instrucciones para instalar el plugin ADT .

http://www.androidda.com/2011/03/como-obtener-la-resolucion-de-pantalla-y-densidad-enaplicaciones-android/ http://sudokill.blogspot.com/2010/05/programar-en-android-con-netbeans-68.html

Potrebbero piacerti anche