Home | History | Annotate | Download | only in versions
      1 page.title=API de Android 5.0
      2 excludeFromSuggestions=true
      3 sdk.platform.version=5.0
      4 sdk.platform.apiLevel=21
      5 @jd:body
      6 
      7 
      8 <div id="qv-wrapper">
      9 <div id="qv">
     10 
     11 <h2>En este documento <a href="#" onclick="hideNestedItems('#toc44',this);return false;" class="header-toggle"> <span class="more">mostrar ms</span> <span class="less" style="display:none">mostrar menos</span></a></h2>
     12 
     13 <ol id="toc44" class="hide-nested">
     14   <li><a href="#ApiLevel">Actualiza el nivel de la API de destino</a></li>
     15   <li><a href="#Behaviors">Cambios importantes de comportamiento</a>
     16     <ol>
     17       <li><a href="#ART">Si no probaste la aplicacin con el nuevo Android Runtime (ART)</a></li>
     18       <li><a href="#BehaviorNotifications">Si la aplicacin implementa notificaciones</a></li>
     19       <li><a href="#BehaviorMediaControl">Si la aplicacin usa RemoteControlClient</a></li>
     20 <li><a href="#BehaviorGetRecentTasks">Si la aplicacin usa getRecentTasks()</a></li>
     21 <li><a href="#64BitSupport">Si usas el kit de desarrollo nativo (NDK) de Android</a></li>
     22 <li><a href="#BindService">Si la aplicacin se vincula a un servicio</a></li>
     23 <li><a href="#BehaviorWebView">Si la aplicacin usa WebView</a></li>
     24     </ol>
     25   </li>
     26   <li><a href="#UI">Interfaz de usuario</a>
     27     <ol>
     28       <li><a href="#MaterialDesign">Compatibilidad con diseo de materiales</a></li>
     29       <li><a href="#Recents">Documentos y actividades concurrentes en la pantalla de actividades y tareas recientes</a></li>
     30       <li><a href="#WebView">Actualizaciones de WebView</a></li>
     31       <li><a href="#ScreenCapture">Captura y uso compartido de pantalla</a></li>
     32     </ol>
     33   </li>
     34   <li><a href="#Notifications">Notificaciones</a>
     35     <ol>
     36       <li><a href="#LockscreenNotifications">Notificaciones de pantalla bloqueada</a></li>
     37       <li><a href="#NotificationsMetadata">Metadatos de notificaciones</a></li>
     38     </ol>
     39   </li>
     40   <li><a href="#Graphics">Grficos</a>
     41     <ol>
     42       <li><a href="#OpenGLES-3-1">Compatibilidad con OpenGL ES 3.1</a></li>
     43       <li><a href="#AndroidExtensionPack">Android Extension Pack</a></li>
     44     </ol>
     45   </li>
     46   <li><a href="#Media">Medios</a>
     47     <ol>
     48       <li><a href="#Camera-v2">API de cmara para capacidades avanzadas de la cmara</a></li>
     49       <li><a href="#AudioPlayback">Reproduccin de audio</a></li>
     50       <li><a href="#MediaPlaybackControl">Control de reproduccin de medios</a></li>
     51       <li><a href="#MediaBrowsing">Exploracin de medios</a></li>
     52     </ol>
     53   </li>
     54   <li><a href="#Storage">Almacenamiento</a>
     55     <ol>
     56       <li><a href="#DirectorySelection">Seleccin de directorio</a></li>
     57     </ol>
     58   </li>
     59   <li><a href="#Wireless">Redes inalmbricas y conectividad</a>
     60     <ol>
     61       <li><a href="#Multinetwork">Mltiples conexiones de red</a></li>
     62       <li><a href="#BluetoothBroadcasting">Emisin de Bluetooth</a></li>
     63       <li><a href="#NFCEnhancements">Mejoras de NFC</a></li>
     64     </ol>
     65   </li>
     66   <li><a href="#Power">Proyecto Volta</a>
     67     <ol>
     68       <li><a href="#JobScheduler">Programacin de trabajos</a></li>
     69       <li><a href="#PowerMeasurementTools">Herramientas de programadores para el uso de la batera</a>
     70     </ol>
     71   </li>
     72   <li><a href="#Enterprise">Android en el entorno de trabajo y en el entorno educativo</a>
     73     <ol>
     74       <li><a href="#ManagedProvisioning">Aprovisionamiento administrado</a></li>
     75       <li><a href="#DeviceOwner">Propietario de dispositivo</a></li>
     76       <li><a href="#ScreenPinning">Fijacin de pantalla</a></li>
     77     </ol>
     78   </li>
     79   <li><a href="#System">Sistema</a>
     80     <ol>
     81       <li><a href="#AppUsageStatistics">Estadsticas de uso de aplicaciones</a></li>
     82     </ol>
     83   </li>
     84   <li><a href="#Printing">Marco de impresin</a>
     85     <ol>
     86       <li><a href="#PDFRender">Representacin de PDF como mapa de bits</a></li>
     87     </ol>
     88   </li>
     89   <li><a href="#TestingA11y">Pruebas y accesibilidad</a>
     90     <ol>
     91       <li><a href="#TestingA11yImprovements">Mejoras de pruebas y accesibilidad</a></li>
     92     </ol>
     93   </li>
     94   <li><a href="#IME">IME</a>
     95     <ol>
     96       <li><a href="#Switching">Cambio ms sencillo de idiomas de entrada</a></li>
     97     </ol>
     98   </li>
     99   <li><a href="#Manifest">Declaraciones de manifiesto</a>
    100     <ol>
    101       <li><a href="#ManifestFeatures">Caractersticas requeridas declarables</a></li>
    102       <li><a href="#Permissions">Permisos de usuario</a></li>
    103     </ol>
    104   </li>
    105 </ol>
    106 
    107 <h2>API Differences</h2>
    108 <ol>
    109 <li><a href="{@docRoot}sdk/api_diff/21/changes.html">API level 20 to 21 &raquo;</a> </li>
    110 <li><a href="{@docRoot}sdk/api_diff/preview-21/changes.html">L Developer Preview to 21 &raquo;</a> </li>
    111 </ol>
    112 
    113 <h2>See Also</h2>
    114 <ol>
    115 <li><a href="{@docRoot}about/versions/android-5.0-changes.html">Android 5.0 Behavior Changes</a> </li>
    116 <li><a href="{@docRoot}about/versions/lollipop.html">Android Lollipop Highlights</a> </li>
    117 </ol>
    118 
    119 </div>
    120 </div>
    121 
    122 <p>Nivel de API: {@sdkPlatformApiLevel}</p>
    123 
    124 <p>Android 5.0 (<a href="{@docRoot}reference/android/os/Build.VERSION_CODES.html#LOLLIPOP">LOLLIPOP</a>) ofrece nuevas funciones para los usuarios y los programadores de aplicaciones. En este documento, se proporciona una introduccin a las API nuevas ms destacadas.</p>
    125 
    126 <p>Para conocer con ms detalle las nuevas funciones de la plataforma, consulta los <a href="{@docRoot}about/versions/lollipop.html">Aspectos destacados de Android Lollipop</a>.</p>
    127 
    128 
    129 <h3 id="Start">Empieza a programar</h3>
    130 
    131 <p>Si deseas empezar a crear aplicaciones para Android 5.0, primero debes <a href="{@docRoot}sdk/index.html">obtener el SDK de Android</a>. Luego, usa el <a href="{@docRoot}tools/help/sdk-manager.html">Administrador de SDK</a> para descargar las imgenes del sistema y la plataforma de SDK de Android 5.0.</p>
    132 
    133 <h3 id="ApiLevel">Actualiza el nivel de la API de destino</h3>
    134 
    135 <p>Si deseas optimizar de una mejor manera la aplicacin para dispositivos que tienen Android {@sdkPlatformVersion}, establece <a href="{@docRoot}guide/topics/manifest/uses-sdk-element.html#target">{@code targetSdkVersion}</a> en <code>"{@sdkPlatformApiLevel}"</code>, instala la aplicacin en una imagen del sistema de Android {@sdkPlatformVersion}, prubala y luego publica la aplicacin actualizada con este cambio.</p>
    136 
    137 <p>Puedes usar API de Android {@sdkPlatformVersion}, adems de admitir versiones anteriores, agregando condiciones al cdigo que comprueban el nivel de la API del sistema antes de ejecutar API no admitidas por <a href="{@docRoot}guide/topics/manifest/uses-sdk-element.html#min">{@code minSdkVersion}</a>. Para obtener ms informacin sobre el mantenimiento de la compatibilidad con versiones anteriores, consulta <a href="{@docRoot}training/basics/supporting-devices/platforms.html">Compatibilidad con versiones de plataforma diferentes</a>.</p>
    138 
    139 <p>Para obtener ms informacin sobre el funcionamiento de los niveles de API, consulta <a href="{@docRoot}guide/topics/manifest/uses-sdk-element.html#ApiLevels">Qu es un nivel de API?</a></p>
    140 
    141 <h2 id="Behaviors">Cambios importantes de comportamiento</h2>
    142 
    143 <p>Si publicaste previamente una aplicacin para Android, ten en cuenta que la aplicacin podra verse afectada por los cambios en Android 5.0.</p>
    144 
    145 <h3 id="ART">Si no probaste la aplicacin con el nuevo Android Runtime (ART)</h3>
    146 
    147 <p>La versin 4.4 introdujo un nuevo tiempo de ejecucin experimental de Android, ART. En la versin 4.4, ART era opcional, y el tiempo de ejecucin predeterminado segua siendo Dalvik. Con Android 5.0, ART ahora es el tiempo de ejecucin predeterminado.</p>
    148 
    149 <p>Para obtener una descripcin general de las nuevas funciones de ART, consulta <a href="https://source.android.com/devices/tech/dalvik/art.html">Introduccin a ART</a>. Algunas de las principales funciones nuevas son las siguientes:</p>
    150 
    151 <ul>
    152   <li>compilacin por adelantado (AOT);</li>
    153   <li>recoleccin de basura (GC) mejorada;</li>
    154   <li>compatibilidad con depuracin mejorada.</li>
    155 </ul>
    156 
    157 <p>La mayora de las aplicaciones de Android deberan funcionar sin ningn tipo de cambio en ART. Sin embargo, algunas de las tcnicas que funcionan en Dalvik no funcionan en ART. Para obtener informacin sobre los problemas ms significativos, consulta <a href="{@docRoot}guide/practices/verifying-apps-art.html">Verificacin de comportamiento de aplicaciones en Android Runtime (ART)</a>. Presta especial atencin en los siguientes casos:</p>
    158 
    159 <ul>
    160   <li>La aplicacin usa Java Native Interface (JNI) para ejecutar el cdigo C/C++.</li>
    161   <li>Usas herramientas de programacin que generan cdigo no estndar (por ejemplo, algunos ofuscadores).</li>
    162   <li>Usas tcnicas que son incompatibles con la compactacin de la recoleccin de basura. ART no implementa actualmente la compactacin GC, pero esta funcin est en programacin en el proyecto de cdigo abierto de Android.</li>
    163 </ul>
    164 
    165 <h3 id="BehaviorNotifications">Si la aplicacin implementa notificaciones</h3>
    166 
    167 <p>Asegrate de que las notificaciones tengan en cuenta estos cambios de Android 5.0. Para obtener ms informacin sobre el diseo de las notificaciones para Android 5.0 o versiones posteriores, consulta la <a href="{@docRoot}design/patterns/notifications.html">gua de diseo de notificaciones</a>.
    168 </p>
    169 
    170 <h4 id="NotificationsMaterialDesignStyle">Estilo de diseo de materiales</h4>
    171 <p>Las notificaciones se crean con texto oscuro sobre fondo blanco (o muy claro) para que coincidan con los nuevos widgets de diseo de materiales. Asegrate de que todas las notificaciones se vean bien con el nuevo esquema de colores. Si las notificaciones se ven mal, corrgelas:</p>
    172 
    173 <ul>
    174   <li>Usa {@link android.app.Notification.Builder#setColor(int) setColor()} para establecer un color de nfasis en un crculo detrs de la imagen del cono. </li>
    175   <li>Actualiza o elimina recursos que involucran color. El sistema ignora todos los canales no alfa en los conos de accin y en el cono de notificacin principal. Debes asumir que estos conos solo sern alfa. El sistema dibuja conos de notificacin en blanco e conos de accin en gris oscuro.</li>
    176 </ul>
    177 
    178 <h4 id="NotificationsSoundVibration">Sonido y vibracin</h4>
    179 <p>Si actualmente ests agregando sonidos y vibraciones a las notificaciones mediante el uso de las clases {@link android.media.Ringtone}, {@link android.media.MediaPlayer} o {@link android.os.Vibrator}, elimina este cdigo para que el sistema pueda presentar notificaciones de forma correcta en modo de <em>prioridad</em>. En su lugar, usa los mtodos {@link android.app.Notification.Builder} para agregar sonidos y vibraciones.</p>
    180 
    181 <p>Configurar el dispositivo en {@link android.media.AudioManager#RINGER_MODE_SILENT RINGER_MODE_SILENT} hace que el dispositivo pase al nuevo modo de prioridad. El dispositivo sale del modo de prioridad si lo estableces en {@link android.media.AudioManager#RINGER_MODE_NORMAL RINGER_MODE_NORMAL} o {@link android.media.AudioManager#RINGER_MODE_NORMAL RINGER_MODE_VIBRATE}.</p>
    182 
    183 <p>Anteriormente, Android usaba {@link android.media.AudioManager#STREAM_MUSIC STREAM_MUSIC} como la secuencia maestra para controlar el volumen de las tablets. En Android 5.0, la secuencia maestra de volumen tanto para telfonos como para tablets ahora est unificada y controlada por {@link android.media.AudioManager#STREAM_RING STREAM_RING} o {@link android.media.AudioManager#STREAM_NOTIFICATION STREAM_NOTIFICATION}.</p>
    184 
    185 <h4 id="NotificationsLockscreenVisibility">Visibilidad de la pantalla bloqueada</h4>
    186 <p>De forma predeterminada, las notificaciones ahora aparecen en la pantalla bloqueada del usuario en Android 5.0. Los usuarios pueden elegir proteger la informacin confidencial de dicha exposicin, en cuyo caso el sistema redacta automticamente el texto que aparece en la notificacin. Para personalizar esta notificacin redactada, usa {@link android.app.Notification.Builder#setPublicVersion(android.app.Notification) setPublicVersion()}.</p>
    187 <p>Si la notificacin no contiene informacin personal o si deseas permitir el control de la reproduccin de medios en la notificacin, llama al mtodo {@link android.app.Notification.Builder#setVisibility(int) setVisibility()} y establece el nivel de visibilidad de la notificacin en {@link android.app.Notification#VISIBILITY_PUBLIC VISIBILITY_PUBLIC}.
    188 </p>
    189 
    190 <h4 id="NotificationsMediaPlayback">Reproduccin de los medios</h4>
    191 <p>Si implementas notificaciones que presentan controles de transporte o estado de reproduccin de medios, considera el uso de la nueva plantilla {@link android.app.Notification.MediaStyle}, en lugar de un objeto {@link android.widget.RemoteViews.RemoteView} personalizado. Cualquiera sea el enfoque que elijas, asegrate de establecer la visibilidad de la notificacin en {@link android.app.Notification#VISIBILITY_PUBLIC VISIBILITY_PUBLIC} a fin de que los controles estn accesibles desde la pantalla bloqueada. Ten en cuenta que, a partir de Android 5.0, el sistema ya no muestra objetos {@link android.media.RemoteControlClient} en la pantalla bloqueada. Para obtener ms informacin, consulta <a href="#BehaviorMediaControl">Si la aplicacin usa RemoteControlClient</a>.</p>
    192 
    193 <h4 id="NotificationsHeadsup">Notificacin de aviso</h4>
    194 <p>Las notificaciones ahora pueden aparecer en una pequea ventana flotante (tambin denominada notificacin de aviso) cuando el dispositivo est activo (es decir, el dispositivo est desbloqueado y su pantalla est encendida). Estas notificaciones son similares a la forma compacta de tu notificacin, salvo que la notificacin de aviso tambin muestra los botones de accin. Los usuarios pueden actuar sobre una notificacin de aviso o descartarla sin salir de la aplicacin actual.</p>
    195 
    196 <p>Algunos ejemplos de condiciones que pueden desencadenar notificaciones de aviso incluyen:</p>
    197 
    198 <ul>
    199   <li>La actividad del usuario est en modo de pantalla completa (la aplicacin usa {@link android.app.Notification#fullScreenIntent}).</li>
    200   <li>La notificacin tiene alta prioridad y utiliza tonos o vibraciones.</li>
    201 </ul>
    202 
    203 <p>Si la aplicacin implementa notificaciones en cualquiera de esos escenarios, asegrate de que las notificaciones de aviso se presenten correctamente.</p>
    204 
    205 <h3 id="BehaviorMediaControl">Si la aplicacin usa RemoteControlClient</h3>
    206 <p>La clase {@link android.media.RemoteControlClient} ahora est obsoleta. Cambia a la nueva API {@link android.media.session.MediaSession} tan pronto como sea posible.</p>
    207 
    208 <p>Las pantallas bloqueadas en Android 5.0 no muestran controles de transporte para {@link android.media.session.MediaSession} ni {@link android.media.RemoteControlClient}. En cambio, la aplicacin puede proporcionar un control de la reproduccin de los medios desde la pantalla bloqueada a travs de una notificacin. De este modo, la aplicacin tiene un mayor control sobre la presentacin de los botones de medios, al mismo tiempo que proporciona una experiencia uniforme para los usuarios a travs de los dispositivos bloqueados y desbloqueados.</p>
    209 
    210 <p>Android 5.0 introduce una nueva plantilla {@link android.app.Notification.MediaStyle} para este fin. {@link android.app.Notification.MediaStyle} convierte acciones de notificacin que agregas con {@link android.app.Notification.Builder#addAction(int, java.lang.CharSequence, android.app.PendingIntent) Notification.Builder.addAction()} en botones compactos integrados en las notificaciones de reproduccin de medios de la aplicacin. Pasa el token de sesin al mtodo {@link android.app.Notification.MediaStyle#setMediaSession(android.media.session.MediaSession.Token) setSession()} para informar al sistema que esta notificacin controla una sesin de medios en curso.</p>
    211 
    212 <p>Asegrate de establecer la visibilidad de la notificacin en {@link android.app.Notification#VISIBILITY_PUBLIC VISIBILITY_PUBLIC} para marcar la notificacin como segura y mostrarla en cualquier pantalla bloqueada (segura o de otra manera). Para obtener ms informacin, consulta <a href="#LockscreenNotifications">Notificaciones de pantalla bloqueada</a>.</p>
    213 
    214 <p>Para mostrar los controles de reproduccin de medios si la aplicacin se est ejecutando en la plataforma de Android <a href="{@docRoot}tv/index.html">TV</a> o Android <a href="{@docRoot}wear/index.html">Wear</a>, implementa la clase {@link android.media.session.MediaSession}. Tambin debes implementar {@link android.media.session.MediaSession} si la aplicacin necesita recibir eventos de botones de medios en dispositivos Android.</p>
    215 
    216 <h3 id="BehaviorGetRecentTasks">Si la aplicacin usa getRecentTasks()</h3>
    217 
    218 <p>Con la introduccin de la nueva funcin de <em>tareas de documentos y actividades concurrentes</em> en Android 5.0 (consulta <a href="#Recents">Documentos y actividades concurrentes en la pantalla de actividades y tareas recientes</a> a continuacin), el mtodo {@link android.app.ActivityManager#getRecentTasks ActivityManager.getRecentTasks()} ahora est obsoleto para mejorar la privacidad del usuario. En el caso de la compatibilidad con versiones anteriores, este mtodo sigue devolviendo un pequeo subconjunto de sus datos, que incluye algunas tareas propias de la aplicacin que llama y, posiblemente, algunas otras tareas no confidenciales (como Pgina principal). Si la aplicacin usa este mtodo para recuperar sus propias tareas, usa {@link android.app.ActivityManager#getAppTasks() getAppTasks()} en su lugar para recuperar esa informacin.</p>
    219 
    220 <h3 id="64BitSupport">Si usas el kit de desarrollo nativo (NDK) de Android</h3>
    221 
    222 <p>Android 5.0 introduce compatibilidad con sistemas de 64 bits. La mejora de 64 bits aumenta el espacio de direcciones y mejora el rendimiento, al mismo tiempo que mantiene la compatibilidad absoluta con las aplicaciones de 32 bits existentes. La compatibilidad con 64 bits tambin mejora el rendimiento de OpenSSL para la criptografa. Adems, esta versin introduce nuevas API de NDK de medios nativas, as como compatibilidad nativa con la OpenGL ES (GLES) 3.1.</p>
    223 
    224 <p>Para usar la compatibilidad con 64 bits proporcionada en Android 5.0, descarga e instala la revisin 10c de NDK desde la <a href="{@docRoot}tools/sdk/ndk/index.html">pgina de NDK de Android</a>. Consulta las <a href="{@docRoot}tools/sdk/ndk/index.html#Revisions">notas de la versin</a> de la revisin 10c para obtener ms informacin acerca de los cambios y las correcciones de errores importantes en el NDK.</p>
    225 
    226 <h3 id="BindService">Si la aplicacin se vincula a un servicio</h3>
    227 
    228 <p>El mtodo {@link android.content.Context#bindService(android.content.Intent, android.content.ServiceConnection, int) Context.bindService()} ahora requiere un {@link android.content.Intent} explcito y genera una excepcin si se realiza un intento implcito. Para asegurarte de que la aplicacin sea segura, usa un intento explcito al iniciar o vincular tu {@link android.app.Service}, y no declares filtros de intencin para el servicio.</p>
    229 
    230 <h3 id="BehaviorWebView">Si la aplicacin usa WebView</h3>
    231 
    232 <p>Android 5.0 cambia el comportamiento predeterminado de la aplicacin.</p>
    233 <ul>
    234 <li><strong>Si la aplicacin est destinada para el nivel de API 21 o un nivel posterior:</strong>
    235   <ul>
    236     <li>El sistema bloquea <a href="https://developer.mozilla.org/en-US/docs/Security/MixedContent" class="external-link">contenido mixto</a> y cookies de terceros de forma predeterminada. Para permitir contenido mixto y cookies de terceros, usa los mtodos {@link android.webkit.WebSettings#setMixedContentMode(int) setMixedContentMode()} y {@link android.webkit.CookieManager#setAcceptThirdPartyCookies(android.webkit.WebView, boolean) setAcceptThirdPartyCookies()}, respectivamente.</li>
    237     <li>El sistema ahora elige inteligentemente partes del documento HTML para dibujar. Este nuevo comportamiento predeterminado ayuda a reducir la superficie de memoria y a aumentar el rendimiento. Si quieres representar todo el documento a la vez, inhabilita esta optimizacin llamando a {@link android.webkit.WebView#enableSlowWholeDocumentDraw()}.</li>
    238   </ul>
    239 </li>
    240 <li><strong>Si la aplicacin est destinada para los niveles de API anteriores a 21:</strong> El sistema permite contenido mixto y cookies de terceros, y siempre representa todo el documento a la vez.</li>
    241 </ul>
    242 
    243 <h2 id="UI">Interfaz de usuario</h2>
    244 
    245 <h3 id="MaterialDesign">Compatibilidad con diseo de materiales</h3>
    246 
    247 <p>La prxima versin agrega compatibilidad con el nuevo estilo de <em>diseo de materiales</em> de Android. Puedes crear aplicaciones con diseo de materiales que sean visualmente dinmicas y tengan transiciones de elementos de interfaz de usuario que parezcan reales para los usuarios. Esta compatibilidad incluye lo siguiente:</p>
    248 
    249 <ul>
    250 
    251   <li>tema de material;</li>
    252   <li>sombras de vista;</li>
    253   <li>widget {@link android.support.v7.widget.RecyclerView};</li>
    254   <li>animacin dibujable y efectos de estilo;</li>
    255   <li>animacin de diseo de materiales y efectos de transicin de actividad;</li>
    256   <li>animadores para propiedades de vista en funcin del estado de la vista;</li>
    257   <li>widgets de interfaz de usuario personalizables y barras de aplicaciones con paletas de colores que se pueden controlar;</li>
    258   <li>dibujables animados y no animados en funcin de grficos con vectores XML.</li>
    259 </ul>
    260 
    261 <p>Para obtener ms informacin sobre la adicin de la funcionalidad de diseo de materiales a la aplicacin, consulta <a href="{@docRoot}training/material/index.html">Diseo de materiales</a>.</p>
    262 
    263 <h3 id="Recents">Documentos y actividades concurrentes en la pantalla de actividades y tareas recientes</h3>
    264 
    265 <p>En versiones anteriores, la <a href="{@docRoot}guide/components/recents.html">pantalla de actividades y tareas recientes</a> solo poda mostrar una tarea para cada aplicacin con la que el usuario haba interaccionado recientemente. Si es necesario, ahora la aplicacin puede abrir ms tareas para actividades y documentos concurrentes adicionales. Esta funcin facilita la multitarea, ya que permite a los usuarios cambiar rpidamente entre las actividades y los documentos individuales de la pantalla de actividades y tareas recientes, y brinda una experiencia de cambio uniforme entre todas las aplicaciones. Algunos ejemplos de este tipo de tareas concurrentes pueden incluir pestaas abiertas en una aplicacin de navegador web, documentos en una aplicacin de productividad, partidos concurrentes en un juego o chats en una aplicacin de mensajera. La aplicacin puede administrar sus tareas a travs de la clase {@link android.app.ActivityManager.AppTask}.</p>
    266 
    267 <p>Para insertar un salto lgico a fin de que el sistema trate la actividad como una nueva tarea, usa {@link android.content.Intent#FLAG_ACTIVITY_NEW_DOCUMENT} al iniciar la actividad con {@link android.app.Activity#startActivity(android.content.Intent) startActivity()}. Tambin puedes obtener este comportamiento estableciendo el atributo {@code documentLaunchMode} del elemento de <a href="{@docRoot}guide/topics/manifest/activity-element.html">&lt;actividad&gt;</a> en {@code "intoExisting"} o {@code "always"} en tu manifiesto.</p>
    268 
    269 <p>Para evitar la saturacin de la pantalla de actividades y tareas recientes, puedes establecer la cantidad mxima de tareas de la aplicacin que pueden aparecer en esa pantalla. Para hacerlo, establece el atributo {@link android.R.attr#maxRecents android:maxRecents} de la <a href="{@docRoot}guide/topics/manifest/application-element.html">&lt;aplicacin&gt;</a>. La cantidad mxima actual que se puede especificar es de 50 tareas por usuario (25 para dispositivos con baja memoria RAM).</a></p>
    270 
    271 <p>Las tareas en la pantalla de actividades y tareas recientes se pueden configurar para que se mantengan tras los reinicios. Para controlar el comportamiento de persistencia, usa el atributo <a href="{@docRoot}reference/android/R.attr.html#persistableMode">android:persistableMode</a>. Tambin puedes cambiar las propiedades visuales de una actividad en la pantalla de actividades y tareas recientes, como el color, la etiqueta y el cono de la actividad, llamando al mtodo {@link android.app.Activity#setTaskDescription(android.app.ActivityManager.TaskDescription) setTaskDescription()}.</p>
    272 
    273 <h3 id="WebView">Actualizaciones de WebView</h3>
    274 <p>Android 5.0 actualiza la implementacin de {@link android.webkit.WebView} a Chromium M37, que incorpora mejoras de seguridad y estabilidad, as como correcciones de errores. Se actualiz la cadena de usuario-agente predeterminada de una {@link android.webkit.WebView} que se ejecuta en Android 5.0 para incorporar 37.0.0.0 como el nmero de versin.</p>
    275 
    276 <p>Esta versin introduce la clase {@link android.webkit.PermissionRequest}, que permite a la aplicacin conceder el permiso {@link android.webkit.WebView} para acceder a los recursos protegidos, como la cmara y el micrfono, a travs de las API web, como <a href="https://developer.mozilla.org/en-US/docs/NavigatorUserMedia.getUserMedia" class="external-link">getUserMedia()</a>. La aplicacin debe tener los permisos apropiados de Android para estos recursos con el fin de otorgar los permisos a {@link android.webkit.WebView}.</p>
    277 
    278 <p>Con el nuevo mtodo <code><a href="{@docRoot}reference/android/webkit/WebChromeClient.html#onShowFileChooser(android.webkit.WebView, android.webkit.ValueCallback<android.net.Uri[]>, android.webkit.WebChromeClient.FileChooserParams)">onShowFileChooser()</a></code>, ahora puedes usar un campo de formulario de entrada en {@link android.webkit.WebView} y abrir un selector de archivos para seleccionar imgenes y archivos desde el dispositivo Android.</p>
    279 
    280 <p>Adems, esta versin admite los estndares abiertos <a href="http://webaudio.github.io/web-audio-api/" class="external-link">WebAudio</a>, <a href="https://www.khronos.org/webgl/" class="external-link">WebGL</a> y <a href="http://www.webrtc.org/" class="external-link">WebRTC</a>. Para obtener ms informacin sobre las nuevas funciones incluidas en esta versin, consulta <a href="https://developer.chrome.com/multidevice/webview/overview" class="external-link">WebView para Android</a>.</p>
    281 
    282 <h3 id="ScreenCapture">Captura y uso compartido de pantalla</h3>
    283 <p>Android 5.0 permite agregar capacidades de captura y uso compartido de pantalla a la aplicacin con las nuevas API {@link android.media.projection}. Esta funcionalidad es til, por ejemplo, si quieres habilitar el uso compartido de la pantalla en una aplicacin de videoconferencia.</p>
    284 
    285 <p>El nuevo mtodo {@link android.media.projection.MediaProjection#createVirtualDisplay(java.lang.String, int, int, int, int, android.view.Surface, android.hardware.display.VirtualDisplay.Callback, android.os.Handler) createVirtualDisplay()} permite que la aplicacin capture el contenido de la pantalla principal (la pantalla predeterminada) en un objeto {@link android.view.Surface}, que luego la aplicacin puede enviar a travs de la red. La API solo permite capturar contenido de pantalla no seguro, y no audio del sistema. Para comenzar la captura de pantalla, la aplicacin primero debe solicitar el permiso del usuario abriendo un cuadro de dilogo de captura de pantalla con un {@link android.content.Intent} obtenido a travs del mtodo {@link android.media.projection.MediaProjectionManager#createScreenCaptureIntent()}.</p>
    286 
    287 <p>Para ver un ejemplo de cmo utilizar las nuevas API, consulta la clase {@code MediaProjectionDemo} en el proyecto de ejemplo.</p>
    288 
    289 <h2 id="Notifications">Notificaciones</h2>
    290 
    291 <h3 id="LockscreenNotifications">Notificaciones de pantalla bloqueada</h3>
    292 <p>Las pantallas bloqueadas en Android 5.0 tienen la capacidad de presentar notificaciones. Los usuarios pueden elegir mediante la <em>configuracin</em> si desean permitir que el contenido de notificacin confidencial se muestre a travs de una pantalla bloqueada segura.</p>
    293 
    294 <p>La aplicacin puede controlar el nivel de detalle visible cuando las notificaciones se muestran a travs de la pantalla bloqueada segura. Para controlar el nivel de visibilidad, llama a {@link android.app.Notification.Builder#setVisibility(int) setVisibility()} y especifica uno de estos valores:</p>
    295 
    296 <ul>
    297 <li>{@link android.app.Notification#VISIBILITY_PRIVATE VISIBILITY_PRIVATE}: Muestra informacin bsica, como el cono de la notificacin, pero oculta el contenido completo de la notificacin.</li>
    298 <li>{@link android.app.Notification#VISIBILITY_PUBLIC VISIBILITY_PUBLIC}: Muestra el contenido completo de la notificacin.</li>
    299 <li>{@link android.app.Notification#VISIBILITY_SECRET VISIBILITY_SECRET}: No muestra nada y excluye incluso el cono de la notificacin.</li>
    300 </ul>
    301 
    302 <p>Cuando el nivel de visibilidad es {@link android.app.Notification#VISIBILITY_PRIVATE VISIBILITY_PRIVATE}, tambin puedes proporcionar una versin redactada del contenido de la notificacin que oculta datos personales. Por ejemplo, una aplicacin de SMS podra mostrar una notificacin que te indique que tienes tres nuevos mensajes de texto, pero oculta el contenido y los remitentes del mensaje. Para proporcionar esta notificacin alternativa, primero crea la notificacin de reemplazo utilizando {@link android.app.Notification.Builder}. Cuando crees el objeto de notificacin privado, adjntale la notificacin de reemplazo a travs del mtodo {@link android.app.Notification.Builder#setPublicVersion(android.app.Notification) setPublicVersion()}.</p>
    303 
    304 <h3 id="NotificationsMetadata">Metadatos de notificaciones</h3>
    305 <p>Android 5.0 utiliza metadatos asociados con notificaciones de la aplicacin para ordenar las notificaciones de forma ms inteligente. Para definir los metadatos, llama a los siguientes mtodos en {@link android.app.Notification.Builder} cuando creas la notificacin:</p>
    306 
    307 <ul>
    308 <li>{@link android.app.Notification.Builder#setCategory(java.lang.String) setCategory()}: Indica al sistema cmo manejar las notificaciones de la aplicacin cuando el dispositivo est en modo de <em>prioridad</em> (por ejemplo, si una notificacin representa una llamada entrante, un mensaje instantneo o una alarma).
    309 <li>{@link android.app.Notification.Builder#setPriority(int) setPriority()}: Marca la notificacin como ms o menos importante que las notificaciones habituales. Las notificaciones con el campo de prioridad establecido en {@link android.app.Notification#PRIORITY_MAX PRIORITY_MAX} o {@link android.app.Notification#PRIORITY_HIGH PRIORITY_HIGH} aparecen en una pequea ventana flotante si la notificacin tambin tiene sonido o vibracin.</li>
    310 <li>{@link android.app.Notification.Builder#addPerson(java.lang.String) addPerson()}: Permite agregar una o ms personas que son relevantes para una notificacin. La aplicacin puede usar esta opcin para indicar al sistema que debera agrupar las notificaciones de las personas especificadas o clasificar las notificaciones de estas personas como ms importantes.</li>
    311 </ul>
    312 
    313 <h2 id="Graphics">Grficos</h2>
    314 
    315 <h3 id="OpenGLES-3-1">Compatibilidad con OpenGL ES 3.1</h3>
    316 <p>Android 5.0 agrega interfaces Java y compatibilidad nativa para OpenGL ES 3.1. La nueva funcionalidad clave proporcionada en OpenGL ES 3.1 incluye lo siguiente:</p>
    317 
    318 <ul>
    319 <li>sombreadores de clculo;
    320 <li>objetos de sombreadores independientes;
    321 <li>comandos de dibujo indirectos;
    322 <li>texturas de smbolos y multimuestra;
    323 <li>mejoras del lenguaje de sombreado;
    324 <li>extensiones para depuracin y modos de fusin avanzados;
    325 <li>compatibilidad de versiones anteriores con OpenGL ES 2.0 y 3.0.
    326 </ul>
    327 
    328 <p>La interfaz Java para OpenGL ES 3.1 en Android se proporciona con {@link android.opengl.GLES31}. Al usar OpenGL ES 3.1, asegrate de declararlo en el archivo de manifiesto con la etiqueta <a href="{@docRoot}guide/topics/manifest/uses-feature-element.html">{@code <uses-feature>}</a> y el atributo {@code android:glEsVersion}. Por ejemplo:</p>
    329 
    330 <pre>
    331 &lt;manifest&gt;
    332     &lt;uses-feature android:glEsVersion="0x00030001" /&gt;
    333     ...
    334 &lt;/manifest&gt;
    335 </pre>
    336 
    337 <p>Para obtener ms informacin sobre el uso de OpenGL ES, incluso cmo comprobar la versin de OpenGL ES compatible del dispositivo en el tiempo de ejecucin, consulta la <a href="{@docRoot}guide/topics/graphics/opengl.html">gua de la API OpenGL ES</a>.</p>
    338 
    339 <h3 id="AndroidExtensionPack">Android Extension Pack</h3>
    340 
    341 <p>Adems de OpenGL ES 3.1, esta versin ofrece un paquete de extensiones con interfaces Java y compatibilidad nativa para la funcionalidad de grficos avanzada. Estas extensiones se tratan como un solo paquete en Android. (Si la extensin {@code ANDROID_extension_pack_es31a} est presente, la aplicacin puede asumir que todas las extensiones en el paquete estn presentes y habilitar las funciones del lenguaje de sombreado con una sola instruccin {@code #extension}).</p>
    342 
    343 <p>El paquete de extensiones admite lo siguiente:</p>
    344 
    345 <ul>
    346 <li>compatibilidad con sombreador de fragmento garantizada para bferes de almacenamiento de sombreador, imgenes y operaciones atmicas (la compatibilidad con el sombreador de fragmento es opcional en OpenGL ES 3.1);</li>
    347 <li>sombreadores de geometra y teselacin;</li>
    348 <li>formato de compresin de texturas ASTC (LDR);</li>
    349 <li>interpolacin y sombreado por muestra;</li>
    350 <li>diferentes modos de fusin para cada archivo adjunto de color en un bfer de fotogramas.</li>
    351 </ul>
    352 
    353 <p>La interfaz Java para el paquete de extensiones se proporciona con {@link android.opengl.GLES31Ext}. En el manifiesto de la aplicacin, puedes declarar que la aplicacin debe instalarse solo en dispositivos compatibles con el paquete de extensiones. Por ejemplo:</p>
    354 
    355 <pre>
    356 &lt;manifest&gt;
    357     &lt;uses-feature android:name=android.hardware.opengles.aep
    358         android:required="true" /&gt;
    359     ...
    360 &lt;/manifest&gt;
    361 </pre>
    362 
    363 <h2 id="Media">Medios</h2>
    364 
    365 <h3 id="Camera-v2">API de cmara para capacidades avanzadas de la cmara</h3>
    366 
    367 <p>Android 5.0 introduce la nueva API <a href="{@docRoot}reference/android/hardware/camera2/package-summary.html">android.hardware.camera2</a> para facilitar la captura y el procesamiento de imgenes de grano fino. Ahora puedes acceder mediante programacin a los dispositivos de cmara disponibles para el sistema con {@link android.hardware.camera2.CameraManager#getCameraIdList() getCameraIdList()} y conectarte a un dispositivo especfico con {@link android.hardware.camera2.CameraManager#openCamera(java.lang.String, android.hardware.camera2.CameraDevice.StateCallback, android.os.Handler) openCamera()}. Para iniciar la captura de imgenes, crea una {@link android.hardware.camera2.CameraCaptureSession} y especifica los objetos {@link android.view.Surface} para enviar las imgenes capturadas. La {@link android.hardware.camera2.CameraCaptureSession} puede configurarse para tomar fotos individuales o mltiples imgenes al instante.</p>
    368 
    369 <p>Para recibir una notificacin cuando se capturan imgenes nuevas, implementa el agente de escucha {@link android.hardware.camera2.CameraCaptureSession.CaptureCallback} y establcelo en la solicitud de captura. Cuando el sistema completa la solicitud de captura de imgenes, el agente de escucha {@link android.hardware.camera2.CameraCaptureSession.CaptureCallback} recibe una llamada en {@link android.hardware.camera2.CameraCaptureSession.CaptureCallback#onCaptureCompleted(android.hardware.camera2.CameraCaptureSession, android.hardware.camera2.CaptureRequest, android.hardware.camera2.TotalCaptureResult) onCaptureCompleted()} y proporciona los metadatos de captura de imgenes en un {@link android.hardware.camera2.CaptureResult}.</p>
    370 
    371 <p>La clase {@link android.hardware.camera2.CameraCharacteristics} permite que la aplicacin detecte las funciones de la cmara que estn disponibles en un dispositivo. La propiedad {@link android.hardware.camera2.CameraCharacteristics#INFO_SUPPORTED_HARDWARE_LEVEL INFO_SUPPORTED_HARDWARE_LEVEL} del objeto representa el nivel de funcionalidad de la cmara.</p>
    372 
    373 <ul>
    374   <li>Todos los dispositivos admiten al menos el nivel de hardware {@link android.hardware.camera2.CameraMetadata#INFO_SUPPORTED_HARDWARE_LEVEL_LEGACY INFO_SUPPORTED_HARDWARE_LEVEL_LEGACY}, que tiene capacidades similares a las de la API {@link android.hardware.Camera} obsoleta.</li>
    375   <li>Los dispositivos que admiten el nivel de hardware {@link android.hardware.camera2.CameraMetadata#INFO_SUPPORTED_HARDWARE_LEVEL_FULL INFO_SUPPORTED_HARDWARE_LEVEL_FULL} permiten el control manual de la captura y el procesamiento posterior, as como la captura de imgenes de alta resolucin a altas velocidades de fotogramas.</li>
    376 </ul>
    377 
    378 <p>Para ver cmo utilizar la API de la <a href="{@docRoot}reference/android/hardware/camera2/package-summary.html">cmara</a> actualizada, consulta las muestras de implementacin de {@code Camera2Basic} y {@code Camera2Video} en esta versin.</p>
    379 
    380 <h3 id="AudioPlayback">Reproduccin de audio</h3>
    381 <p>En esta versin, se incluyen los cambios a {@link android.media.AudioTrack} que se indican a continuacin:</p>
    382 <ul>
    383   <li>La aplicacin ahora puede suministrar datos de audio en formato de punto flotante ({@link android.media.AudioFormat#ENCODING_PCM_FLOAT ENCODING_PCM_FLOAT}). Esta funcin permite obtener un rango dinmico mayor, una precisin ms coherente y una capacidad de aumento mayor. La aritmtica de punto flotante es especialmente til durante los clculos intermedios. Los puntos finales de reproduccin usan un formato de enteros para datos de audio con una profundidad en bits inferior. (En Android 5.0, las partes de la canalizacin interna todava no son puntos flotantes).
    384   <li>La aplicacin ahora puede suministrar datos de audio como un {@link java.nio.ByteBuffer} en el mismo formato que proporciona {@link android.media.MediaCodec}.
    385   <li>La opcin {@link android.media.AudioTrack#WRITE_NON_BLOCKING WRITE_NON_BLOCKING} puede simplificar el almacenamiento en bfer y los subprocesos para algunas aplicaciones.
    386 </ul>
    387 
    388 <h3 id="MediaPlaybackControl">Control de reproduccin de medios</h3>
    389 <p>Usa las nuevas API de notificacin y medios para asegurarte de que la interfaz de usuario del sistema sepa cuando reproduces medios y pueda extraer y mostrar la cartula del lbum. El control de la reproduccin de medios en una interfaz de usuario y un servicio es ahora ms fcil con las nuevas clases {@link android.media.session.MediaSession} y {@link android.media.session.MediaController}.</p>
    390 
    391 <p>La nueva clase {@link android.media.session.MediaSession} reemplaza la clase {@link android.media.RemoteControlClient} obsoleta y proporciona un nico conjunto de mtodos de devolucin de llamada para el manejo de los controles de transporte y los botones de los medios. Si la aplicacin permite reproducir medios y se ejecuta en la plataforma Android <a href="{@docRoot}tv/index.html">TV</a> o Android <a href="{@docRoot}wear/index.html">Wear</a>, usa la clase {@link android.media.session.MediaSession} para manejar los controles de transporte con los mismos mtodos de devolucin de llamada.</p>
    392 
    393 <p>Ahora puedes crear tu propia aplicacin de controlador de medios con la nueva clase {@link android.media.session.MediaController}. Esta clase ofrece una manera segura para subprocesos de supervisar y controlar la reproduccin de medios desde el proceso de la interfaz de usuario de la aplicacin. Al crear un controlador, especifica un objeto {@link android.media.session.MediaSession.Token} para que la aplicacin pueda interaccionar con la {@link android.media.session.MediaSession} dada. Mediante el uso de los mtodos {@link android.media.session.MediaController.TransportControls}, puedes enviar comandos, como {@link android.media.session.MediaController.TransportControls#play() play()}, {@link android.media.session.MediaController.TransportControls#stop() stop()}, {@link android.media.session.MediaController.TransportControls#skipToNext() skipToNext()} y {@link android.media.session.MediaController.TransportControls#setRating(android.media.Rating) setRating()}, para controlar la reproduccin de medios en esa sesin. Con el controlador, tambin puedes registrar un objeto {@link android.media.session.MediaController.Callback} para escuchar metadatos y cambios de estado en la sesin.</p>
    394 
    395 <p>Adems, puedes crear notificaciones enriquecidas que permiten el control de la reproduccin vinculado a una sesin de medios con la nueva clase {@link android.app.Notification.MediaStyle}.</p>
    396 
    397 <h3 id="MediaBrowsing">Exploracin de medios</h3>
    398 <p>Android 5.0 introduce la capacidad para las aplicaciones de explorar la biblioteca de contenidos de medios de otra aplicacin a travs de la nueva API <a href="{@docRoot}reference/android/media/browse/package-summary.html">android.media.browse</a>. Para exponer el contenido de los medios en la aplicacin, ampla la clase {@link android.service.media.MediaBrowserService}. La implementacin de {@link android.service.media.MediaBrowserService} debe proporcionar acceso a {@link android.media.session.MediaSession.Token} para que las aplicaciones puedan reproducir contenido de medios proporcionado a travs de tu servicio.</p>
    399 <p>Para interaccionar con un servicio de explorador de medios, usa la clase {@link android.media.browse.MediaBrowser}. Especifica el nombre del componente para una {@link android.media.session.MediaSession} cuando creas una instancia {@link android.media.browse.MediaBrowser}. El uso de esa instancia de explorador har que la aplicacin pueda conectarse al servicio asociado y obtener un objeto {@link android.media.session.MediaSession.Token} para reproducir contenido expuesto a travs de ese servicio.</p>
    400 
    401 <h2 id="Storage">Almacenamiento</h2>
    402 
    403 <h3 id="DirectorySelection">Seleccin de directorio</h3>
    404 
    405 <p>Android 5.0 ampla el <a href="{@docRoot}guide/topics/providers/document-provider.html">Storage Access Framework</a> para permitir a los usuarios seleccionar un subrbol entero del directorio y proporcionar a las aplicaciones acceso de lectura o escritura a todos los documentos incluidos sin requerir la confirmacin del usuario para cada elemento.</p>
    406 
    407 <p>Para seleccionar un subrbol del directorio, crea y enva un intento {@link android.content.Intent#ACTION_OPEN_DOCUMENT_TREE OPEN_DOCUMENT_TREE}. El sistema muestra todas las instancias {@link android.provider.DocumentsProvider} que admiten la seleccin de subrbol y permite que el usuario explore y seleccione un directorio. El URI devuelto representa el acceso al subrbol seleccionado. A continuacin, puedes usar {@link android.provider.DocumentsContract#buildChildDocumentsUriUsingTree(android.net.Uri, java.lang.String) buildChildDocumentsUriUsingTree()} y {@link android.provider.DocumentsContract#buildDocumentUriUsingTree(android.net.Uri, java.lang.String) buildDocumentUriUsingTree()} junto con {@link android.content.ContentResolver#query(android.net.Uri, java.lang.String[], java.lang.String, java.lang.String[], java.lang.String) query()} para explorar el subrbol.</p>
    408 
    409 <p>El nuevo mtodo {@link android.provider.DocumentsContract#createDocument(android.content.ContentResolver, android.net.Uri, java.lang.String, java.lang.String) createDocument()} permite crear nuevos documentos o directorios en cualquier lugar del subrbol. Para administrar los documentos existentes, usa {@link android.provider.DocumentsContract#renameDocument(android.content.ContentResolver, android.net.Uri, java.lang.String) renameDocument()} y {@link android.provider.DocumentsProvider#deleteDocument(java.lang.String) deleteDocument()}. Comprueba {@link android.provider.DocumentsContract.Document#COLUMN_FLAGS COLUMN_FLAGS} para verificar si el proveedor admite estas llamadas antes de su emisin.</p>
    410 
    411 <p>Si implementas un {@link android.provider.DocumentsProvider} y quieres admitir la seleccin de subrbol, implementa {@link android.provider.DocumentsProvider#isChildDocument(java.lang.String, java.lang.String) isChildDocument()} e incluye {@link android.provider.DocumentsContract.Root#FLAG_SUPPORTS_IS_CHILD FLAG_SUPPORTS_IS_CHILD} en tu {@link android.provider.DocumentsContract.Root#COLUMN_FLAGS COLUMN_FLAGS}.</p>
    412 
    413 <p>Android 5.0 tambin introduce nuevos directorios especficos de paquetes en almacenamiento compartido, donde la aplicacin puede colocar archivos de medios para que sean incluidos en {@link android.provider.MediaStore}. El nuevo {@link android.content.Context#getExternalMediaDirs()} devuelve rutas a estos directorios en todos los dispositivos de almacenamiento compartido. De forma similar a {@link android.content.Context#getExternalFilesDir(java.lang.String) getExternalFilesDir()}, la aplicacin no necesita permisos adicionales para acceder a las rutas devueltas. La plataforma busca peridicamente nuevos medios en estos directorios, pero t tambin puedes utilizar {@link android.media.MediaScannerConnection} para buscar contenido nuevo de forma explcita.</p>
    414 
    415 <h2 id="Wireless">Redes inalmbricas y conectividad</h2>
    416 
    417 <h3 id="Multinetwork">Mltiples conexiones de red</h3>
    418 <p>Android 5.0 ofrece nuevas API de mltiples redes que permiten que la aplicacin busque las redes disponibles con capacidades especficas dinmicamente y que establezca una conexin con ellas. Esta funcionalidad es til cuando la aplicacin requiere una red especializada, como una red de facturacin del operador de telefona celular, SUPL o MMS, o si quieres enviar datos con un determinado tipo de protocolo de transporte.</p>
    419 
    420 <p>Para seleccionar una red y conectarte a ella de forma dinmica desde la aplicacin, sigue estos pasos:</p>
    421 
    422 <ol>
    423  <li>Crea un {@link android.net.ConnectivityManager}.</li>
    424  <li>Usa la clase {@link android.net.NetworkRequest.Builder} para crear un objeto {@link android.net.NetworkRequest} y especifica las caractersticas de la red y el tipo de transporte que requiere la aplicacin.</li>
    425 <li>Para buscar las redes adecuadas, llama a {@link android.net.ConnectivityManager#requestNetwork(android.net.NetworkRequest, android.net.ConnectivityManager.NetworkCallback) requestNetwork()} o {@link android.net.ConnectivityManager#registerNetworkCallback(android.net.NetworkRequest, android.net.ConnectivityManager.NetworkCallback) registerNetworkCallback()}, y enva el objeto {@link android.net.NetworkRequest} y una implementacin de {@link android.net.ConnectivityManager.NetworkCallback}. Usa el mtodo {@link android.net.ConnectivityManager#requestNetwork(android.net.NetworkRequest, android.net.ConnectivityManager.NetworkCallback) requestNetwork()} si deseas cambiar de forma activa a una red adecuada una vez que se detecta; para recibir solamente notificaciones de redes analizadas sin tener que cambiar de forma activa de red, usa el mtodo {@link android.net.ConnectivityManager#registerNetworkCallback(android.net.NetworkRequest, android.net.ConnectivityManager.NetworkCallback) registerNetworkCallback()} en su lugar.</li>
    426 </ol>
    427 
    428 <p>Cuando el sistema detecta una red adecuada, se conecta a la red e invoca la devolucin de llamada {@link android.net.ConnectivityManager.NetworkCallback#onAvailable(android.net.Network) onAvailable()}. Puedes usar el objeto {@link android.net.Network} de la devolucin de llamada para obtener informacin adicional acerca de la red o para indicar que el trfico use la red seleccionada.</p>
    429 
    430 <h3 id="BluetoothBroadcasting">Bluetooth de baja energa</h3>
    431 <p>Android 4.3 introdujo compatibilidad de plataforma para <a href="{@docRoot}guide/topics/connectivity/bluetooth-le.html">Bluetooth de baja energa</a> (<em>Bluetooth LE</em>) en el rol central. En Android 5.0, un dispositivo Android ahora puede actuar como un <em>dispositivo perifrico</em> Bluetooth LE. Las aplicaciones pueden utilizar esta capacidad para que otros dispositivos cercanos detecten su presencia. Por ejemplo, puedes crear aplicaciones que permiten que un dispositivo funcione como un podmetro o un monitor de estado, y comunique sus datos a otro dispositivo Bluetooth LE.</p>
    432 <p>Las nuevas API {@link android.bluetooth.le} permiten a sus aplicaciones transmitir anuncios, buscar respuestas y establecer conexiones con dispositivos Bluetooth LE cercanos. Para utilizar las nuevas funciones de anuncio y bsqueda, agrega el permiso {@link android.Manifest.permission#BLUETOOTH_ADMIN BLUETOOTH_ADMIN} en el manifiesto. Cuando los usuarios actualizan o descargan tu aplicacin desde Play Store, se les pide que concedan el siguiente permiso a tu aplicacin: "Informacin de conexin Bluetooth: Permite que la aplicacin controle Bluetooth, incluida la transmisin de informacin a dispositivos Bluetooth cercanos o la obtencin de informacin sobre ellos".</p>
    433 
    434 <p>Para comenzar el anuncio de Bluetooth LE a fin de que otros dispositivos puedan detectar tu aplicacin, llama a {@link android.bluetooth.le.BluetoothLeAdvertiser#startAdvertising(android.bluetooth.le.AdvertiseSettings, android.bluetooth.le.AdvertiseData, android.bluetooth.le.AdvertiseCallback) startAdvertising()} y enva una implementacin de la clase {@link android.bluetooth.le.AdvertiseCallback}. El objeto de devolucin de llamada recibe un informe del xito o fracaso de la operacin de anuncio.</p>
    435 
    436 <p> Android 5.0 introduce la clase {@link android.bluetooth.le.ScanFilter} para que tu aplicacin pueda buscar solo tipos especficos de dispositivos que le interesan. Para empezar a buscar dispositivos Bluetooth LE, llama a {@link android.bluetooth.le.BluetoothLeScanner#startScan(android.bluetooth.le.ScanCallback) startScan()} y enva una lista de filtros. En la llamada del mtodo, tambin debes proporcionar una implementacin de {@link android.bluetooth.le.ScanCallback} para infomar cuando se encuentra un anuncio de Bluetooth LE. </p>
    437 
    438 <h3 id="NFCEnhancements">Mejoras de NFC</h3>
    439 <p>Android 5.0 agrega estas mejoras para permitir un uso ms amplio y ms flexible de la NFC:</p>
    440 
    441 <ul>
    442 <li>Android Beam ahora est disponible en el men de <em>uso compartido</em>.</li>
    443 <li>La aplicacin puede invocar Android Beam en el dispositivo del usuario para compartir datos llamando a {@link android.nfc.NfcAdapter#invokeBeam(android.app.Activity) invokeBeam()}. Esto evita que el usuario tenga que apoyar manualmente el dispositivo contra otro dispositivo NFC para completar la transferencia de datos.</li>
    444 <li>Puedes utilizar el nuevo mtodo {@link android.nfc.NdefRecord#createTextRecord(java.lang.String, java.lang.String) createTextRecord()} para crear un registro NDEF que contenga datos de texto UTF-8.</li>
    445 <li>Si programas una aplicacin de pago, ahora tienes la capacidad de registrar un ID de aplicacin NFC (AID) dinmicamente llamando a <code><a href="{@docRoot}reference/android/nfc/cardemulation/CardEmulation.html#registerAidsForService(android.content.ComponentName, java.lang.String, java.util.List<java.lang.String>)">registerAidsForService()</a></code>. Tambin puedes usar {@link android.nfc.cardemulation.CardEmulation#setPreferredService(android.app.Activity, android.content.ComponentName) setPreferredService()} para establecer el servicio de emulacin de tarjeta preferido que se debe utilizar cuando una actividad especfica est en primer plano.</li>
    446 </ul>
    447 
    448 <h2 id="Power">Proyecto Volta</h2>
    449 
    450 <p>Adems de las nuevas funciones, Android 5.0 hace hincapi en las mejoras de la duracin de la batera. Usa las nuevas API y la herramienta para entender y optimizar el consumo de energa de la aplicacin.</p>
    451 
    452 <h3 id="JobScheduler">Programacin de trabajos</h3>
    453 <p>Android 5.0 proporciona una nueva API {@link android.app.job.JobScheduler} que permite optimizar la duracin de la batera mediante la definicin de trabajos que el sistema ejecutar de forma asncrona (en otro momento) o en condiciones especficas (por ejemplo, cuando el dispositivo se est cargando). La programacin de trabajos es til en situaciones como las siguientes:</p>
    454 <ul>
    455   <li>La aplicacin tiene trabajos en segundo plano que puedes posponer.</li>
    456   <li>La aplicacin tiene trabajos que prefieres hacer cuando la unidad est enchufada.</li>
    457   <li>La aplicacin tiene una tarea que requiere acceso a la red o una conexin Wi-Fi.</li>
    458   <li>La aplicacin tiene una serie de tareas que deseas que se ejecuten como un lote en un horario regular.</li>
    459 
    460 </ul>
    461 
    462 <p>Una unidad de trabajo est encapsulada por un objeto {@link android.app.job.JobInfo}. Este objeto especifica los criterios de programacin.</p>
    463 
    464 <p>Usa la clase {@link android.app.job.JobInfo.Builder} para configurar cmo se debe ejecutar la tarea programada. Puedes programar la tarea para que se ejecute en condiciones especficas, como las siguientes:</p>
    465 
    466 <ul>
    467   <li>Debe empezar cuando el dispositivo se est cargando.</li>
    468   <li>Debe empezar cuando el dispositivo est conectado a una red no medida.</li>
    469   <li>Debe empezar cuando el dispositivo est inactivo.</li>
    470   <li>Debe terminar antes de que transcurra un determinado plazo o con una demora mnima.</li>
    471 </ul>
    472 
    473 <p>Por ejemplo, puedes agregar un cdigo como este para ejecutar la tarea en una red no medida:</p>
    474 
    475 <pre>
    476 JobInfo uploadTask = new JobInfo.Builder(mJobId,
    477                                          mServiceComponent /* JobService component */)
    478         .setRequiredNetworkCapabilities(JobInfo.NetworkType.UNMETERED)
    479         .build();
    480 JobScheduler jobScheduler =
    481         (JobScheduler) context.getSystemService(Context.JOB_SCHEDULER_SERVICE);
    482 jobScheduler.schedule(uploadTask);
    483 </pre>
    484 
    485 <p>Si el dispositivo tiene energa estable (es decir, el dispositivo estuvo enchufado durante ms de dos minutos, y la batera est en un <a href="{@docRoot}reference/android/content/Intent.html#ACTION_BATTERY_OKAY">nivel aceptable</a>), el sistema ejecutar cualquier trabajo programado que est listo, incluso si la fecha lmite del trabajo no pas.</p>
    486 
    487 <p>Para ver un ejemplo de cmo utilizar la API {@link android.app.job.JobScheduler}, consulta la muestra de implementacin de {@code JobSchedulerSample} en esta versin.</p>
    488 
    489 <h3 id="PowerMeasurementTools">Herramientas de programadores para el uso de la batera</h3>
    490 
    491 <p>El nuevo comando {@code dumpsys batterystats} genera informacin estadstica interesante sobre el uso de la batera en un dispositivo, organizada por ID de usuario nico (UID). Las estadsticas incluyen:</p>
    492 
    493 <ul>
    494 <li>historial de eventos relacionados con la batera;
    495 <li>estadsticas globales para el dispositivo;
    496 <li>uso de energa aproximado por UID y componente de sistema;
    497 <li>ms por paquete de dispositivos mviles por aplicacin;
    498 <li>estadsticas globales de UID de sistema;
    499 <li>estadsticas globales de UID de aplicacin.
    500 </ul>
    501 
    502 <p>Usa la opcin {@code --help} para conocer acerca de las diversas opciones que tienes para adaptar la salida. Por ejemplo, para imprimir las estadsticas de uso de la batera de un paquete de aplicaciones dado desde que el dispositivo se carg por ltima vez, ejecuta este comando:
    503 <pre>
    504 $ adb shell dumpsys batterystats --charged &lt;package-name&gt;
    505 </pre>
    506 
    507 <p>Puedes utilizar la herramienta <a href="https://github.com/google/battery-historian" class="external-link">Battery Historian</a> en la salida del comando {@code dumpsys} para generar una visualizacin HTML de eventos relacionados con la energa a partir de los registros. Esta informacin facilita la comprensin y el diagnstico de cualquier problema relacionado con la batera.</p>
    508 
    509 <h2 id="Enterprise">Android en el entorno de trabajo y en el entorno educativo</h2>
    510 <h3 id="ManagedProvisioning">Aprovisionamiento administrado</h3>
    511 
    512 <p>Android 5.0 ofrece nuevas funcionalidades para ejecutar aplicaciones en un entorno empresarial. Un <a href="{@docRoot}guide/topics/admin/device-admin.html">administrador de dispositivos</a> puede iniciar un proceso de aprovisionamiento administrado para agregar un <em>perfil administrado</em> copresente, pero separado, a un dispositivo si el usuario tiene una cuenta personal existente. Las aplicaciones que se asocian con perfiles administrados aparecen junto con las aplicaciones no administradas en el Launcher del usuario, la pantalla de actividades y tareas recientes, y las notificaciones.</p>
    513 
    514 <p>Para iniciar el proceso de aprovisionamiento administrado, enva {@link android.app.admin.DevicePolicyManager#ACTION_PROVISION_MANAGED_PROFILE ACTION_PROVISION_MANAGED_PROFILE} en un {@link android.content.Intent}. Si la llamada se realiza correctamente, el sistema activa la devolucin de llamada {@link android.app.admin.DeviceAdminReceiver#onProfileProvisioningComplete(android.content.Context, android.content.Intent) onProfileProvisioningComplete()}. A continuacin, puedes llamar a {@link android.app.admin.DevicePolicyManager#setProfileEnabled(android.content.ComponentName) setProfileEnabled()} para habilitar este perfil administrado.</p>
    515 
    516 <p>De forma predeterminada, solo un pequeo subconjunto de aplicaciones estn habilitadas en el perfil administrado. Puedes instalar aplicaciones adicionales en el perfil administrado llamando a {@link android.app.admin.DevicePolicyManager#enableSystemApp(android.content.ComponentName, android.content.Intent) enableSystemApp()}.</p>
    517 
    518 <p>Si programas una aplicacin Launcher, puedes utilizar la nueva clase {@link android.content.pm.LauncherApps} para obtener una lista de las actividades que se pueden iniciar para el usuario actual y los perfiles administrados asociados. El Launcher puede hacer que las aplicaciones administradas sean visualmente prominentes agregando una insignia de trabajo al cono dibujable. Para recuperar el cono con insignia, llama a {@link android.content.pm.PackageManager#getUserBadgedIcon(android.graphics.drawable.Drawable, android.os.UserHandle) getUserBadgedIcon()}.</p>
    519 
    520 <p>Para ver cmo utilizar la nueva funcionalidad, consulta la muestra de implementacin de {@code BasicManagedProfile} en esta versin.</p>
    521 
    522 <h3 id="DeviceOwner">Propietario de dispositivo</h3>
    523 <p>Android 5.0 introduce la capacidad de implementar una aplicacin de propietario de dispositivo. Un <em>propietario de dispositivo</em> es un tipo especializado de <a href="{@docRoot}guide/topics/admin/device-admin.html">administrador de dispositivos</a> que tiene la capacidad adicional de crear y eliminar usuarios secundarios, y configurar opciones globales en el dispositivo. La aplicacin de propietario de dispositivo puede utilizar los mtodos de la clase {@link android.app.admin.DevicePolicyManager} para tomar un control especfico de la configuracin, la seguridad y las aplicaciones en los dispositivos administrados. Un dispositivo puede tener solamente un propietario de dispositivo activo a la vez.</p>
    524 
    525 <p>Para implementar y activar un propietario de dispositivo, debes realizar una transferencia de datos NFC desde una aplicacin de programacin hasta el dispositivo mientras el dispositivo est en estado no aprovisionado. Esta transferencia de datos enva la misma informacin que la que se enva en el intento de aprovisionamiento descrito en <a href="#ManagedProvisioning">Aprovisionamiento administrado</a>.</p>
    526 
    527 <h3 id="ScreenPinning">Fijacin de pantalla</h3>
    528 
    529 <p>Android 5.0 introduce una nueva API para fijar la pantalla que te permite impedir temporalmente que los usuarios salgan de tu tarea o sean interrumpidos por notificaciones. Podra usarse, por ejemplo, si ests programando una aplicacin de educacin para cumplir con requisitos de evaluacin de gran importancia en Android o una aplicacin de nico propsito o kiosco. Una vez que la aplicacin activa la fijacin de pantalla, los usuarios no pueden ver las notificaciones, acceder a otras aplicaciones ni volver a la pantalla principal hasta que la aplicacin sale del modo.</p>
    530 
    531 <p>Hay dos formas de activar la fijacin de pantalla:</p>
    532 
    533 <ul>
    534 <li><strong>Manualmente:</strong> Los usuarios pueden habilitar la fijacin de pantalla desde <em>Configuracin &gt; Seguridad&gt; Fijar pantalla</em> y seleccionar las tareas que desean fijar tocando el cono para fijar de color verde en la pantalla de actividades y tareas recientes.</li> <li><strong>Mediante programacin</strong>: Para activar la fijacin de pantalla mediante programacin, llama a {@link android.app.Activity#startLockTask() startLockTask()} desde la aplicacin. Si la aplicacin que realiza la solicitud no es un propietario de dispositivo, se solicita confirmacin al usuario. Una aplicacin de propietario de dispositivo puede llamar al mtodo {@link android.app.admin.DevicePolicyManager#setLockTaskPackages(android.content.ComponentName, java.lang.String[]) setLockTaskPackages()} para permitir que las aplicaciones se puedan fijar sin tener que pasar por el paso de confirmacin del usuario.</li>
    535 </ul>
    536 
    537 <p>Cuando el bloqueo de tarea est activo, ocurre lo siguiente:</p>
    538 
    539 <ul>
    540 <li>La barra de estado est en blanco, y las notificaciones de los usuarios y la informacin de estado estn ocultas.</li>
    541 <li>Los botones de pantalla principal y aplicaciones recientes estn ocultos.</li>
    542 <li>Otras aplicaciones no pueden iniciar actividades nuevas.</li>
    543 <li>La aplicacin actual puede iniciar actividades nuevas, siempre y cuando no cree nuevas tareas.</li>
    544 <li>Cuando la fijacin de pantalla es invocada por un propietario de dispositivo, el usuario no puede acceder a tu aplicacin hasta que la aplicacin llama a {@link android.app.Activity#stopLockTask() stopLockTask()}.</li>
    545 <li>Si la fijacin de pantalla es una actividad realizada por otra aplicacin que no es un propietario de dispositivo o por el usuario directamente, el usuario puede salir de ella manteniendo presionados los botones de retroceso y aplicaciones recientes.</li>
    546 
    547 </ul>
    548 
    549 <h2 id="Printing">Marco de impresin</h2>
    550 
    551 <h3 id="PDFRender">Representacin de PDF como mapa de bits</h3>
    552 <p>Ahora puedes representar pginas de documentos PDF en imgenes de mapa de bits para imprimir mediante el uso de la nueva clase {@link android.graphics.pdf.PdfRenderer}. Debes especificar un {@link android.os.ParcelFileDescriptor} que admita bsquedas (es decir, que se pueda acceder al contenido de forma aleatoria) y en el que el sistema pueda escribir el contenido imprimible. La aplicacin puede obtener una pgina para representar con {@link android.graphics.pdf.PdfRenderer#openPage(int) openPage()} y luego llamar a {@link android.graphics.pdf.PdfRenderer.Page#render(android.graphics.Bitmap, android.graphics.Rect, android.graphics.Matrix, int) render()} para convertir la {@link android.graphics.pdf.PdfRenderer.Page} abierta en un mapa de bits. Tambin puedes configurar parmetros adicionales si solo deseas convertir una parte del documento en una imagen de mapa de bits (por ejemplo, para implementar la <a href="http://en.wikipedia.org/wiki/Tiled_rendering" class="external-link">representacin en mosaicos</a> a fin de hacer zoom en el documento).</p>
    553 
    554 <p>Para ver un ejemplo de cmo utilizar las nuevas API, consulta la muestra {@code PdfRendererBasic}.</p>
    555 
    556 <h2 id="System">Sistema</h2>
    557 <h3 id="AppUsageStatistics">Estadsticas de uso de aplicaciones</h3>
    558 <p>Ahora puedes acceder al historial de uso de las aplicaciones desde un dispositivo Android con la nueva API {@link android.app.usage}. Esta API proporciona informacin de uso ms detallada que el mtodo {@link android.app.ActivityManager#getRecentTasks(int, int) getRecentTasks()} obsoleto. Para utilizar esta API, primero debes declarar el permiso {@code "android.permission.PACKAGE_USAGE_STATS"} en el manifiesto. El usuario tambin debe permitir el acceso a esta aplicacin a travs de <em>Configuracin &gt; Seguridad&gt; Aplicaciones</em> con acceso de uso.</p>
    559 
    560 <p>El sistema recopila los datos de uso por aplicacin y agrega los datos en intervalos diarios, semanales, mensuales y anuales. El tiempo mximo que el sistema conserva estos datos es el siguiente:</p>
    561 
    562 <ul>
    563   <li>datos diarios: siete das;</li>
    564   <li>datos semanales: cuatro semanas;</li>
    565   <li>datos mensuales: seis meses;</li>
    566   <li>datos anuales: dos aos.</li>
    567 </ul>
    568 
    569 <p>Para cada aplicacin, el sistema registra los siguientes datos:</p>
    570 <ul>
    571 <li>la ltima vez que se utiliz la aplicacin;</li>
    572 <li>la cantidad total de tiempo que la aplicacin estuvo en primer plano durante ese intervalo (por da, semana, mes o ao);</li>
    573 <li>captura de marca de tiempo del momento en que un componente (identificado por un nombre de actividad y paquete) se traslad a primer plano o segundo plano durante un da;</li>
    574 <li>captura de marca de tiempo del momento en que se modific la configuracin de un dispositivo (por ejemplo, cuando la orientacin del dispositivo cambi debido a la rotacin).</li>
    575 </ul>
    576 
    577 <h2 id="TestingA11y">Pruebas y accesibilidad </h2>
    578 
    579 <h3 id="TestingA11yImprovements">Mejoras de pruebas y accesibilidad</h3>
    580 <p>Android 5.0 incorpora la siguiente compatibilidad para pruebas y accesibilidad:</p>
    581 
    582 <ul>
    583 <li>Los nuevos mtodos {@link android.app.UiAutomation#getWindowAnimationFrameStats() getWindowAnimationFrameStats()} y {@link android.app.UiAutomation#getWindowContentFrameStats(int) getWindowContentFrameStats()} capturan estadsticas de fotogramas para animaciones de ventanas y contenido. Estos mtodos permiten escribir pruebas de instrumentacin para evaluar si una aplicacin est representando fotogramas a una frecuencia de actualizacin suficiente que brinde a los usuarios una experiencia perfecta.</li>
    584 
    585 <li>El nuevo mtodo {@link android.app.UiAutomation#executeShellCommand(java.lang.String) executeShellCommand()} permite ejecutar comandos shell desde la prueba de instrumentacin. La ejecucin de comandos es similar a la ejecucin de {@code adb shell} desde un host conectado al dispositivo, lo que permite utilizar herramientas basadas en shell, como {@code dumpsys}, {@code am}, {@code content} y {@code pm}.</li>
    586 
    587 <li>Los servicios de accesibilidad y las herramientas de prueba que utilizan las API de accesibilidad (como <a href="{@docRoot}tools/help/uiautomator/index.html">{@code UiAutomator}</a>) ahora pueden recuperar datos precisos acerca de las propiedades de las ventanas en pantalla con las que pueden interaccionar los usuarios videntes. Para recuperar una lista de objetos {@link android.view.accessibility.AccessibilityWindowInfo}, llama al nuevo mtodo {@link android.accessibilityservice.AccessibilityService#getWindows() getWindows()}.</li>
    588 
    589 <li>La nueva clase {@link android.view.accessibility.AccessibilityNodeInfo.AccessibilityAction} permite definir acciones estndares o personalizadas para realizar en un {@link android.view.accessibility.AccessibilityNodeInfo}. La nueva clase {@link android.view.accessibility.AccessibilityNodeInfo.AccessibilityAction} reemplaza las API relacionadas con acciones que se encontraban previamente en {@link android.view.accessibility.AccessibilityNodeInfo}.</li>
    590 
    591 <li>Android 5.0 ofrece un control ms preciso sobre la sntesis de texto a voz en la aplicacin. La nueva clase {@link android.speech.tts.Voice} permite que la aplicacin use perfiles de voz asociados con configuraciones regionales especficas, calificaciones de calidad y latencia, y parmetros especficos del motor de conversin de texto a voz.</li>
    592 </ul>
    593 
    594 <h2 id="IME">IME</h2>
    595 
    596 <h3 id="Switching">Cambio ms sencillo de idiomas de entrada</h3>
    597 
    598 <p>A partir de Android 5.0, los usuarios pueden cambiar ms fcilmente entre todos los <a href="{@docRoot}guide/topics/text/creating-input-method.html">editores de mtodos de entrada (IME)</a> admitidos por la plataforma. La ejecucin de la accin de cambio designada (normalmente tocar un cono del mundo en el teclado en pantalla) te lleva por todos estos IME. Este cambio de comportamiento es implementado por el mtodo {@link android.view.inputmethod.InputMethodManager#shouldOfferSwitchingToNextInputMethod(android.os.IBinder) shouldOfferSwitchingToNextInputMethod()}.</p>
    599 
    600 <p>Adems, el marco ahora comprueba si el siguiente IME incluye un mecanismo de cambio (y, por lo tanto, si ese IME admite el cambio al IME despus de l). Un IME con un mecanismo de cambio no pasar a otro IME que no lo tenga. Este cambio de comportamiento es implementado por el mtodo {@link android.view.inputmethod.InputMethodManager#switchToNextInputMethod(android.os.IBinder, boolean) switchToNextInputMethod()}.
    601 
    602 <p>Para ver un ejemplo de cmo utilizar las API de cambio de IME actualizadas, consulta la muestra de implementacin de teclado en pantalla actualizada en esta versin. Para obtener ms informacin acerca de cmo implementar el cambio entre los IME, consulta <a href="{@docRoot}guide/topics/text/creating-input-method.html">Creacin de un mtodo de entrada</a>.
    603 </p>
    604 
    605 <h2 id="Manifest">Declaraciones de manifiesto</h2>
    606 
    607 <h3 id="ManifestFeatures">Caractersticas requeridas declarables</h3>
    608 <p>Los siguientes valores ahora son compatibles con el elemento <a href="{@docRoot}guide/topics/manifest/uses-feature-element.html">{@code <uses-feature>}</a>, por lo que puedes asegurarte de que la aplicacin solo se instale en dispositivos que proporcionen las caractersticas que necesita.</p>
    609 
    610 <ul>
    611 <li>{@link android.content.pm.PackageManager#FEATURE_AUDIO_OUTPUT}</li>
    612 <li>{@link android.content.pm.PackageManager#FEATURE_CAMERA_CAPABILITY_MANUAL_POST_PROCESSING}</li>
    613 <li>{@link android.content.pm.PackageManager#FEATURE_CAMERA_CAPABILITY_MANUAL_SENSOR}</li>
    614 <li>{@link android.content.pm.PackageManager#FEATURE_CAMERA_CAPABILITY_RAW}</li>
    615 <li>{@link android.content.pm.PackageManager#FEATURE_CAMERA_LEVEL_FULL}</li>
    616 <li>{@link android.content.pm.PackageManager#FEATURE_GAMEPAD}</li>
    617 <li>{@link android.content.pm.PackageManager#FEATURE_LIVE_TV}</li>
    618 <li>{@link android.content.pm.PackageManager#FEATURE_MANAGED_USERS}</li>
    619 <li>{@link android.content.pm.PackageManager#FEATURE_LEANBACK}</li>
    620 <li>{@link android.content.pm.PackageManager#FEATURE_OPENGLES_EXTENSION_PACK}</li>
    621 <li>{@link android.content.pm.PackageManager#FEATURE_SECURELY_REMOVES_USERS}</li>
    622 <li>{@link android.content.pm.PackageManager#FEATURE_SENSOR_AMBIENT_TEMPERATURE}</li>
    623 <li>{@link android.content.pm.PackageManager#FEATURE_SENSOR_HEART_RATE_ECG}</li>
    624 <li>{@link android.content.pm.PackageManager#FEATURE_SENSOR_RELATIVE_HUMIDITY}</li>
    625 <li>{@link android.content.pm.PackageManager#FEATURE_VERIFIED_BOOT}</li>
    626 <li>{@link android.content.pm.PackageManager#FEATURE_WEBVIEW}</li>
    627 </ul>
    628 
    629 <h3 id="Permissions">Permisos de usuario</h3>
    630 
    631 <p>El siguiente permiso ahora es compatible con el elemento <a href="{@docRoot}guide/topics/manifest/uses-permission-element.html">{@code <uses-permission>}</a> para declarar los permisos que requiere la aplicacin para acceder a determinadas API.</p>
    632 
    633 <ul>
    634 <li>{@link android.Manifest.permission#BIND_DREAM_SERVICE}: Cuando se busca un nivel de API 21 o posterior, este permiso es requerido por un servicio de <a href="{@docRoot}about/versions/android-4.2.html#Daydream">Protector de pantalla interactivo</a> para garantizar que solo el sistema pueda vincularse a l.</li>
    635 </ul>
    636