blob: bdbc77b71f4677d8cc27b8bb3bb8bd800731e483 [file] [log] [blame]
page.title=Notificaciones
page.tags="notifications","design","L"
@jd:body
<a class="notice-developers" href="{@docRoot}training/notify-user/index.html">
<div>
<h3>Documentos para desarrolladores</h3>
<p>Cómo notificar al usuario</p>
</div>
</a>
<a class="notice-designers" href="notifications_k.html">
<div>
<h3>Notificaciones en Android 4.4 y versiones anteriores</h3>
</div>
</a>
<!-- video box -->
<a class="notice-developers-video" href="https://www.youtube.com/watch?v=Uiq2kZ2JHVY">
<div>
<h3>Video</h3>
<p>DevBytes: Notificaciones en la vista previa para desarrolladores de Android L</p>
</div>
</a>
<style>
.col-5, .col-6, .col-7 {
margin-left:0px;
}
</style>
<p>El sistema de notificaciones les permite a los usuarios mantenerse informados sobre eventos relevantes y
oportunos
de su aplicación, como nuevos mensajes de chat de un amigo o un evento del calendario.
Piense en las notificaciones como un canal de noticias que alerta a los usuarios sobre eventos
importantes
a medida que se producen o como un registro en el que se relatan los eventos mientras el usuario no está prestando
atención y que se sincroniza de forma correspondiente en todos los dispositivos de Android.</p>
<h4 id="New"><strong>Novedades de Android 5.0</strong></h4>
<p>En Android 5.0, las notificaciones reciben actualizaciones importantes a nivel estructural,
visual y funcional.</p>
<ul>
<li>En las notificaciones, se han realizado cambios visuales de forma coherente con el nuevo
tema Material Design.</li>
<li> Las notificaciones ahora están disponibles en la pantalla de bloqueo del dispositivo y
el contenido confidencial se puede seguir
ocultando detrás de dicha pantalla.</li>
<li>En las notificaciones de alta prioridad que se reciben cuando el dispositivo está en uso, ahora se utiliza un nuevo formato llamado
notificaciones emergentes.</li>
<li>Notificaciones sincronizadas en la nube: Si se omite una notificación en un dispositivo
Android, esta se omitirá
también en los demás dispositivos.</li>
</ul>
<p class="note"><strong>Nota:</strong> El diseño de las notificaciones de esta versión de
Android se diferencia
de manera significativa del diseño de las versiones anteriores. Para obtener información sobre el diseño de las notificaciones en versiones
anteriores, consulte <a href="./notifications_k.html">Notificaciones en Android 4.4 y versiones anteriores</a>.</p>
<h2 id="Anatomy">Anatomía de una notificación</h2>
<p>En esta sección, se repasan las partes básicas de una notificación y cómo se pueden mostrar en
diferentes tipos de dispositivos.</p>
<h3 id="BaseLayout">Diseño básico</h3>
<p>Como mínimo, todas las notificaciones poseen un diseño básico que incluye lo siguiente:</p>
<ul>
<li> El <strong>icono</strong> de la notificación. El icono simboliza la
aplicación que lo origina. También puede
indicar el tipo de notificación si la aplicación genera más de un
tipo.</li>
<li> <strong>Título</strong> de la notificación y
<strong>texto</strong> adicional.</li>
<li> Una <strong>marca de tiempo</strong>.</li>
</ul>
<p>Las notificaciones creadas con {@link android.app.Notification.Builder Notification.Builder}
para versiones anteriores de la plataforma lucen y funcionan igual en Android
5.0; solo presentan algunos cambios de estilo que el sistema realiza
por usted. Para obtener más información sobre las notificaciones en versiones anteriores de
Android, consulte
<a href="./notifications_k.html">Notificaciones en Android 4.4 y versiones anteriores</a>.</p></p>
<img style="margin:20px 0 0 0" src="{@docRoot}images/android-5.0/notifications/basic_combo.png" alt="" width="700px" />
<div style="clear:both;margin-top:20px">
<p class="img-caption">
Diseño básico de una notificación para dispositivos portátiles (izquierda) y la misma notificación en Wear (derecha),
con una fotografía del usuario y un icono de la notificación
</p>
</div>
<h3 id="ExpandedLayouts">Diseños expandidos</h3>
<p>Usted puede decidir cuántos detalles mostrarán las notificaciones
de su aplicación. Las notificaciones pueden mostrar las primeras
líneas de un mensaje o la vista previa de una imagen más grande. A través de la
información adicional, se proporciona más
contexto al usuario y, en algunos casos, se puede permitir que el usuario lea todo el
mensaje. El usuario
puede acercar o alejar la imagen, o deslizar la imagen con un solo dedo para alternar entre los diseños compacto
y expandido.
En el caso de las notificaciones de un solo evento, Android proporciona tres plantillas de
diseños expandidos (texto, bandeja de entrada e
imagen) para que usted utilice en su aplicación. En las siguientes imágenes, se muestra cómo
se ven las notificaciones de un solo evento en los
dispositivos portátiles (izquierda) y los dispositivos con Wear (derecha).</p>
<img style="margin-top:30px"
src="{@docRoot}images/android-5.0/notifications/expandedtext_combo.png"
alt="" width="700px" height;="284px" />
<img style="margin-top:30px"
src="{@docRoot}images/android-5.0/notifications/stack_combo.png"
alt="" width="700px" height;="284px" />
<img style="margin-top:30px"
src="{@docRoot}images/android-5.0/notifications/ExpandedImage.png"
alt="" width="311px" height;="450px" />
<h3 id="actions" style="clear:both; margin-top:40px">Acciones</h3>
<p>Android es compatible con acciones opcionales que se muestran en la parte inferior
de la notificación.
A través de las acciones, los usuarios pueden administrar las tareas más comunes para una determinada
notificación desde el interior del panel de notificaciones, sin tener que abrir la
aplicación que la originó.
Esto acelera la interacción y, junto con la función deslizar para descartar, ayuda a los usuarios a enfocarse en las
notificaciones que les parecen importantes.</p>
<img src="{@docRoot}images/android-5.0/notifications/action_combo.png" alt="" width="700px" />
<p style="clear:both">Sea moderado con la cantidad de acciones que incluye en una
notificación. Mientras más
acciones incluya, mayor complejidad cognitiva generará. Limítese a
la menor cantidad posible
de acciones al incluir solo las acciones más importantes
y significativas.</p>
<p>Las acciones recomendadas para las notificaciones son aquellas que:</p>
<ul>
<li> Son fundamentales, frecuentes y típicas para el tipo de contenido que está
mostrando.
<li> Les permiten a los usuarios realizar las tareas rápidamente.
</ul>
<p>Evite acciones que sean:</p>
<ul>
<li> ambiguas;
<li> iguales que la acción predeterminada de la notificación (tales como "Leer" o
"Abrir").
</ul>
<p>Puede especificar un máximo de tres acciones, cada una de ellas formada por un icono
de la acción y un nombre.
Al agregarle acciones a un diseño básico simple, la notificación será expandible,
incluso si no
cuenta con un diseño expandido. Como las acciones solo se muestran en las notificaciones
expandidas
y, de lo contrario, se ocultan, asegúrese de que cualquier acción que el
usuario invoque desde
una notificación esté disponible también desde la aplicación
asociada.</p>
<h2 style="clear:left">Notificación emergente</h2>
<div class="figure" style="width:311px">
<img src="{@docRoot}images/android-5.0/notifications/hun-example.png" alt="" width="311px" />
<p class="img-caption">
Ejemplo de una notificación emergente (llamada telefónica entrante, alta prioridad)
que aparece en la parte superior de una
aplicación inmersiva
</p>
</div>
<p>Cuando llega una notificación de alta prioridad (ver a la derecha), esta se presenta
a los usuarios
durante un período breve, con un diseño expandido que expone las posibles acciones.</p>
<p> Luego de este período, la notificación se retira hacia el
panel de notificaciones. Si la <a href="#correctly_set_and_manage_notification_priority">prioridad</a> de una notificación
se marca como Alta, Máxima o Pantalla completa, se obtiene una notificación emergente.</p>
<p><b>Buenos ejemplos de notificaciones emergentes</b></p>
<ul>
<li> Llamada telefónica entrante cuando se utiliza un dispositivo</li>
<li> Alarma cuando se utiliza un dispositivo</li>
<li> Nuevo mensaje SMS</li>
<li> Batería baja</li>
</ul>
<h2 style="clear:both" id="guidelines">Pautas</h2>
<h3 id="MakeItPersonal">Personalización</h3>
<p>En el caso de las notificaciones de los elementos que envía otra persona (como un mensaje o una
actualización de estado), utilice
{@link android.app.Notification.Builder#setLargeIcon setLargeIcon()} para incluir la imagen de esa persona. Además, adjunte información sobre
la persona en los metadatos de la notificación (consulte {@link android.app.Notification#EXTRA_PEOPLE}).</p>
<p>El icono principal de su notificación seguirá estando visible, de modo que el usuario pueda asociarlo
con el icono
que se muestra en la barra de estado.</p>
<img src="{@docRoot}images/android-5.0/notifications/Triggered.png" alt="" width="311px" />
<p style="margin-top:10px" class="img-caption">
Notificación en la que se muestra la persona que la generó y el contenido que envió.
</p>
<h3 id="navigate_to_the_right_place">Navegación hacia el lugar correcto</h3>
<p>Cuando el usuario toca el cuerpo de una notificación (fuera de los botones de acción
), esta se abre
en el lugar en el que el usuario puede visualizarla y utilizar los datos que se mencionan en la
notificación. En la mayoría de los casos, se tratará de la vista detallada de un solo elemento de datos como un mensaje,
pero también se podría tratar de una
vista resumida si la notificación está apilada. Si la aplicación dirige al
usuario a cualquier sitio que se encuentre debajo del nivel superior, incorpore la navegación en la pila de retroceso de la aplicación para que el
usuario pueda presionar el botón Back del sistema y regresar al nivel superior. Para obtener más información, consulte
<em>Navegación dentro de la aplicación a través de los widgets y las notificaciones de la pantalla de Inicio</em> en el patrón de
diseño <a href="{@docRoot}design/patterns/navigation.html#into-your-app">Navegación</a>.</p>
<h3 id="correctly_set_and_manage_notification_priority">Configuración y administración
correctas de la prioridad
de las notificaciones</h3>
<p>Android admite el uso de una marca de prioridad en las notificaciones. Esta marca
le permite influir en el lugar donde aparecerá la notificación, en relación con otras notificaciones, y
lo ayuda a asegurarse de
que los usuarios vean siempre primero las notificaciones más importantes. Cuando publica una notificación, puede elegir
entre los
siguientes niveles de prioridad:</p>
<table>
<tr>
<td class="tab0">
<p><strong>Prioridad</strong></p>
</td>
<td class="tab0">
<p><strong>Uso</strong></p>
</td>
</tr>
<tr>
<td class="tab1">
<p><code>MAX</code></p>
</td>
<td class="tab1">
<p>Utilícelo para las notificaciones críticas y urgentes en las que se le informa al usuario sobre una condición
que es
crítica en el tiempo o que se debe resolver antes de que el usuario continúe con una
tarea específica.</p>
</td>
</tr>
<tr>
<td class="tab1">
<p><code>HIGH</code></p>
</td>
<td class="tab1">
<p>Utilícelo, principalmente, para comunicaciones importantes, como eventos de mensajes o
chats con contenido que sea particularmente interesante para el usuario.
Las notificaciones de alta prioridad activan la pantalla de notificaciones emergentes.</p>
</td>
</tr>
<tr>
<td class="tab1">
<p><code>DEFAULT</code></p>
</td>
<td class="tab1">
<p>Utilícelo para todas las notificaciones que no pertenecen a ninguno de los otros tipos de prioridades que se describen aquí.</p>
</td>
</tr>
<tr>
<td class="tab1">
<p><code>LOW</code></p>
</td>
<td class="tab1">
<p>Utilícelo para las notificaciones que desea que el usuario reciba, pero
que son menos urgentes. Las notificaciones de baja prioridad tienden a aparecer en la parte inferior de la lista,
por lo que son ideales para
eventos como actualizaciones sociales públicas o indirectas: El usuario solicitó que se le notifiquen
estas
actualizaciones, pero estas notificaciones nunca tendrán prioridad sobre las comunicaciones
urgentes o directas.</p>
</td>
</tr>
<tr>
<td class="tab1">
<p><code>MIN</code></p>
</td>
<td class="tab1">
<p>Utilícelo para la información contextual o de segundo plano, como información sobre el clima o la
ubicación contextual.
Las notificaciones cuya prioridad es mínima no aparecen en la barra de estado. El usuario
las descubre al expandir el panel de notificaciones.</p>
</td>
</tr>
</table>
<h4 id="how_to_choose_an_appropriate_priority"><strong>Cómo elegir la
prioridad
adecuada</strong></h4>
<p><code>DEFAULT</code>, <code>HIGH</code> y <code>MAX</code> son niveles de prioridad interruptiva, y se corre el riesgo de
interrumpir al usuario
en el medio de su actividad. Para evitar incomodar a los usuarios de su aplicación, reserve los niveles de prioridad interruptiva para
las notificaciones:</p>
<ul>
<li> en las que participe otra persona;</li>
<li> en las que el tiempo sea importante;</li>
<li> que puedan modificar inmediatamente el comportamiento del usuario en el mundo real.</li>
</ul>
<p>Las notificaciones que se configuran en <code>LOW</code> y <code>MIN</code> pueden seguir siendo
valiosas para el usuario: muchas, tal vez la mayoría, de las notificaciones simplemente no le piden al usuario que actúe de inmediato
ni llaman su atención mediante una vibración, pero poseen información que será valiosa para el
usuario
cuando este decida ver las notificaciones. Entre los criterios de las notificaciones con prioridad <code>LOW</code> y <code>MIN</code>,
se incluyen los siguientes:</p>
<ul>
<li> No participan otras personas.</li>
<li> El tiempo no es importante.</li>
<li> Incluyen contenido que podría interesarle al usuario, pero que tal vez desee
buscarlo cuando lo necesite.</li>
</ul>
<img src="{@docRoot}images/android-5.0/notifications/notifications_pattern_priority.png" alt="" width="700" />
<h3 style="clear:both" id="set_a_notification_category">Configuración de una
categoría de notificaciones</h3>
<p>Si su notificación se puede clasificar dentro de alguna de las categorías predefinidas (consulte
a continuación), asígnela
según corresponda. Esta información se puede utilizar en determinados aspectos de la IU del sistema, como el panel de notificaciones (o cualquier
otro
agente de escucha de la notificación), para realizar una clasificación y filtrar las decisiones.</p>
<table>
<tr>
<td>
<p><code><a
href="/reference/android/app/Notification.html#CATEGORY_CALL">CATEGORY_CALL</a></code></p>
</td>
<td>
<p>Llamada entrante (voz o video) o una solicitud de comunicación
sincrónica similar</p>
</td>
</tr>
<tr>
<td>
<p><code><a
href="/reference/android/app/Notification.html#CATEGORY_MESSAGE">CATEGORY_MESSAGE</a></code></p>
</td>
<td>
<p>Mensaje entrante directo (SMS, mensaje instantáneo, etc.)</p>
</td>
</tr>
<tr>
<td>
<p><code><a
href="/reference/android/app/Notification.html#CATEGORY_EMAIL">CATEGORY_EMAIL</a></code></p>
</td>
<td>
<p>Mensaje en bloque asíncrono (correo electrónico)</p>
</td>
</tr>
<tr>
<td>
<p><code><a
href="/reference/android/app/Notification.html#CATEGORY_EVENT">CATEGORY_EVENT</a></code></p>
</td>
<td>
<p>Evento del calendario</p>
</td>
</tr>
<tr>
<td>
<p><code><a
href="/reference/android/app/Notification.html#CATEGORY_PROMO">CATEGORY_PROMO</a></code></p>
</td>
<td>
<p>Promoción o anuncio</p>
</td>
</tr>
<tr>
<td>
<p><code><a
href="/reference/android/app/Notification.html#CATEGORY_ALARM">CATEGORY_ALARM</a></code></p>
</td>
<td>
<p>Alarma o temporizador</p>
</td>
</tr>
<tr>
<td>
<p><code><a
href="/reference/android/app/Notification.html#CATEGORY_PROGRESS">CATEGORY_PROGRESS</a></code></p>
</td>
<td>
<p>Progreso de una operación en segundo plano de larga ejecución</p>
</td>
</tr>
<tr>
<td>
<p><code><a
href="/reference/android/app/Notification.html#CATEGORY_SOCIAL">CATEGORY_SOCIAL</a></code></p>
</td>
<td>
<p>Actualización de red social o uso compartido de datos</p>
</td>
</tr>
<tr>
<td>
<p><code><a
href="/reference/android/app/Notification.html#CATEGORY_ERROR">CATEGORY_ERROR</a></code></p>
</td>
<td>
<p>Error en una operación en segundo plano o un estado de autenticación</p>
</td>
</tr>
<tr>
<td>
<p><code><a
href="/reference/android/app/Notification.html#CATEGORY_TRANSPORT">CATEGORY_TRANSPORT</a></code></p>
</td>
<td>
<p>Control de transporte de medios para la reproducción</p>
</td>
</tr>
<tr>
<td>
<p><code><a
href="/reference/android/app/Notification.html#CATEGORY_SYSTEM">CATEGORY_SYSTEM</a></code></p>
</td>
<td>
<p>Actualización del estado del dispositivo o el sistema. Reservado para ser utilizado por el sistema</p>
</td>
</tr>
<tr>
<td>
<p><code><a
href="/reference/android/app/Notification.html#CATEGORY_SERVICE">CATEGORY_SERVICE</a></code></p>
</td>
<td>
<p>Indicación de ejecución de servicio en segundo plano</p>
</td>
</tr>
<tr>
<td>
<p><code><a
href="/reference/android/app/Notification.html#CATEGORY_RECOMMENDATION">CATEGORY_RECOMMENDATION</a></code></p>
</td>
<td>
<p>Una recomendación específica y oportuna para un solo evento. Por ejemplo, en una
aplicación de noticias tal vez se desee
recomendar una historia que se considere que el usuario deseará leer luego</p>
</td>
</tr>
<tr>
<td>
<p><code><a
href="/reference/android/app/Notification.html#CATEGORY_STATUS">CATEGORY_STATUS</a></code></p>
</td>
<td>
<p>Información constante sobre el estado contextual o del dispositivo</p>
</td>
</tr>
</table>
<h3 id="summarize_your_notifications">Resumen de las notificaciones</h3>
<p>Si una notificación de un determinado tipo ya está pendiente cuando su aplicación intenta enviar una nueva
notificación del mismo tipo, combínelas en una misma notificación resumida para la aplicación. No
cree un objeto nuevo.</p>
<p>Las notificaciones resumidas incluirán una descripción resumida y le permitirán al usuario
conocer cuántas
notificaciones de un determinado tipo están pendientes.</p>
<div class="col-6">
<p><strong>Lo que no debe hacer</strong></p>
<img src="{@docRoot}images/android-5.0/notifications/Summarise_Dont.png" alt="" width="311px" />
</div>
<div>
<p><strong>Lo que debe hacer</strong></p>
<img src="{@docRoot}images/android-5.0/notifications/Summarise_Do.png" alt="" width="311px" />
</div>
<p style="clear:left; padding-top:30px; padding-bottom:20px">Puede proporcionar
información más detallada sobre cada una de las notificaciones que conforman un
resumen al utilizar el diseño resumido expandido. Este enfoque les permite a los usuarios tener
una idea más clara de las
notificaciones pendientes y determinar si están lo suficientemente interesados como para leer
los detalles en la
aplicación asociada.</p>
<div class="col-6">
<img src="{@docRoot}images/android-5.0/notifications/Stack.png" style="margin-bottom:20px" alt="" width="311px" />
<p class="img-caption">
Notificación contraída y expandida que es un resumen (mediante el uso de <code>InboxStyle</code>)
</p>
</div>
<h3 style="clear:both" id="make_notifications_optional">Uso de notificaciones
opcionales</h3>
<p>Los usuarios deben tener siempre el control sobre las notificaciones. Permítale al usuario
deshabilitar las notificaciones
de su aplicación o cambiar las propiedades de las alertas, como el sonido de una alerta y si desea
utilizar la vibración,
mediante la incorporación de un elemento de configuración de notificaciones en las configuraciones de la aplicación.</p>
<h3 id="use_distinct_icons">Uso de iconos diferentes</h3>
<p>Al mirar el área de notificaciones, el usuario debe poder diferenciar
los tipos de
notificaciones que están pendientes actualmente.</p>
<div class="figure">
<img src="{@docRoot}images/android-5.0/notifications/ProductIcons.png" alt="" width="420" />
</div>
<div><p><strong>Lo que debe hacer</strong></p>
<p>Mirar los iconos de notificaciones que ya se proporcionan en las aplicaciones de Android y crear
iconos de notificaciones para
su aplicación que tengan una apariencia bastante diferente.</p>
<p><strong>Lo que debe hacer</strong></p>
<p>Utilizar el <a href="/design/style/iconography.html#notification">estilo de icono de notificación</a>
adecuado para los iconos pequeños y el
<a href="/design/style/iconography.html#action-bar">estilo
de icono de barra de acción</a> del diseño Material Light para los iconos
de acciones.</p>
<p ><strong>Lo que debe hacer</strong></p>
<p >Hacer que los iconos sean simples y evitar incluir una cantidad excesiva de detalles difíciles de
distinguir.</p>
<div><p><strong>Lo que no debe hacer</strong></p>
<p>Colocar valores alfa adicionales (que se oscurezcan o aclaren) en los
iconos pequeños y los
iconos de acciones. Estos pueden tener bordes alisados, pero como en Android estos iconos se utilizan
como máscaras (es decir, solo se
utiliza el canal alfa), por lo general, la imagen se debe dibujar con
opacidad completa.</p>
</div>
<p style="clear:both"><strong>Lo que no debe hacer</strong></p>
<p>Utilizar colores para diferenciar su aplicación de las demás. Los iconos de las notificaciones simplemente
deben ser una imagen sobre un fondo blanco o transparente.</p>
<h3 id="pulse_the_notification_led_appropriately">Pulsación adecuada del
LED de notificaciones</h3>
<p>Muchos dispositivos con Android incluyen un LED de notificaciones, que se utiliza para mantener al
usuario informado sobre los
eventos cuando la pantalla está apagada. Las notificaciones con un nivel de prioridad <code>MAX</code>,
<code>HIGH</code> o <code>DEFAULT</code> deben
hacer que se encienda el LED, mientras que las de menor prioridad (<code>LOW</code> y
<code>MIN</code>) no deben activar esta función.</p>
<p>El control del usuario sobre las notificaciones debe extenderse al LED. Cuando se utilice
DEFAULT_LIGHTS, el
LED se iluminará en color blanco. Sus notificaciones no deberían utilizar un color
diferente, a menos que el
usuario lo haya personalizado explícitamente.</p>
<h2 id="building_notifications_that_users_care_about">Creación de notificaciones
importantes para los usuarios</h2>
<p>Para crear una aplicación que les guste a los usuarios, es importante diseñar las notificaciones
cuidadosamente.
Las notificaciones son la voz de su aplicación y ayudan a definir su
personalidad. Las notificaciones no deseadas
o que no son importantes pueden hacer que el usuario se moleste o no se sienta cómodo con la cantidad de
atención que le demanda la
aplicación, por eso debe utilizarlas de forma moderada.</p>
<h3 id="when_to_display_a_notification">Cuándo se deben mostrar las notificaciones</h3>
<p>Para crear una aplicación que los usuarios disfruten, es importante
reconocer que la atención
y el enfoque del usuario son recursos que se deben proteger. Aunque el sistema de notificaciones de Android
se diseñó
para minimizar el impacto de las notificaciones en la atención del usuario,
es
importante tener en cuenta que las notificaciones interrumpen el
flujo de tareas del usuario.
Cuando planifique sus notificaciones, pregúntese si son lo suficiente importantes como para
realizar una interrupción. Si no está seguro, permítale al usuario que elija las
notificaciones mediante la configuración de notificaciones de su aplicación o que ajuste
la marca de prioridad de las notificaciones en <code>LOW</code> o <code>MIN</code> para
evitar distraer al usuario cuando realiza
alguna otra tarea.</p>
<img src="{@docRoot}images/android-5.0/notifications/TimeSensitive.png" alt="" width="311px" />
<p style="margin-top:10px" class="img-caption">
Ejemplos de notificaciones sujetas a limitación temporal
</p>
<p>Aunque las aplicaciones más eficientes para el usuario solo proporcionan una respuesta cuando se la solicita, en algunos casos,
vale la pena que una aplicación interrumpa al usuario con una notificación no solicitada.</p>
<p>Utilice las notificaciones principalmente para <strong>eventos sujetos a limitaciones temporales</strong>, en especial
si estos eventos sincrónicos <strong>involucran a otras personas</strong>. Por
ejemplo, un chat entrante
es una forma de comunicación sincrónica y en tiempo real: otro usuario
está esperando de forma activa su respuesta. Los eventos del calendario son otros buenos ejemplos de cuándo se debe utilizar una
notificación y llamar la atención del usuario,
ya que los eventos son inminentes y, generalmente,
involucran a otras personas.</p>
<h3 style="clear:both" id="when_not_to_display_a_notification">Cuándo no se debe
mostrar una notificación</h3>
<div class="figure" style="margin-top:60px">
<img src="{@docRoot}images/android-5.0/notifications/AntiSample1.png" alt="" width="311px" />
</div>
<p>En muchos otros casos, no es apropiado enviar notificaciones:</p>
<ul>
<li> Evite notificarle al usuario acerca de información que no le enviaron
específicamente a él o
información que no está verdaderamente sujeta a una limitación temporal. Por ejemplo, las actualizaciones asíncronas
e indirectas
que circulan por las redes sociales generalmente no justifican una interrupción en
tiempo real. En el caso de los usuarios
interesados en dichas notificaciones, permítales elegir.</li>
<li> No cree una notificación si la información nueva y relevante se muestra actualmente
en la pantalla. En su lugar,
utilice la IU de la aplicación para notificarle al usuario sobre la nueva información
directamente en contexto.
Por ejemplo, una aplicación de chat no debe crear notificaciones del sistema mientras
el usuario está chateando de forma activa con otro usuario.</li>
<li> No interrumpa al usuario para que ejecute operaciones técnicas de bajo nivel, como guardar
o sincronizar información, o actualizar una aplicación si dicha aplicación o el sistema pueden resolver el problema
sin la participación del usuario.</li>
<li> No interrumpa al usuario para informarle sobre un error si la
aplicación puede solucionar el error por sus propios medios, sin que el usuario
realice ninguna acción.</li>
<li> No cree notificaciones que no incluyan contenidos reales de notificación y que
simplemente promocionen
su aplicación. Una notificación debe proporcionar información nueva, útil y oportuna, y
no debe utilizarse
solo para lanzar una aplicación.</li>
<li> No cree notificaciones superfluas solo para mostrar su marca
a los usuarios.
Dichas notificaciones frustran y aíslan a su público. La
mejor forma de proporcionar
pequeñas cantidades de información actualizada y de mantener a los usuarios interesados
en su
aplicación es desarrollar un widget que puedan colocar en la
pantalla de inicio, si así lo desean.</li>
</ul>
<h2 style="clear:left" id="interacting_with_notifications">Interacción con
las notificaciones</h2>
<p>Las notificaciones se indican mediante iconos en la barra de estado, y se puede acceder a ellas
al abrir el
panel lateral de notificaciones.</p>
<p>Al tocar una notificación, se abre la aplicación asociada con el contenido detallado
que coincide con el de la notificación.
Si dicha notificación se desplaza hacia la izquierda o la derecha, esta se eliminará del panel lateral.</p>
<h3 id="ongoing_notifications">Notificaciones constantes</h3>
<div class="figure" style="width:311px">
<img src="{@docRoot}images/android-5.0/notifications/MusicPlayback.png" alt="" width="311px" />
<p class="img-caption">
Notificaciones constantes relacionadas con la reproducción de música
</p>
</div>
<p>Mediante las notificaciones constantes, se mantiene a los usuarios informados sobre un proceso en curso en
segundo plano.
Por ejemplo, los reproductores de música anuncian la pista que se está reproduciendo actualmente en el
sistema de notificaciones y
siguen haciéndolo hasta que el usuario detiene la reproducción. Mediante las notificaciones constantes también se le pueden
mostrar al usuario
comentarios sobre tareas más extensas, como descargar un archivo o codificar un video. Los usuarios no podrán
eliminar las notificaciones constantes del panel lateral de notificaciones.</p>
<h3 id="ongoing_notifications">Reproducción de medios</h3>
<p>En Android 5.0, la pantalla de bloqueo no muestra los controles de transporte para la clase
{@link android.media.RemoteControlClient} obsoleta. Sin embargo, <em>sí</em> muestra las notificaciones, de modo que las notificaciones de reproducción de cada
aplicación ahora son la forma principal
en la que los usuarios controlan la reproducción desde el estado bloqueado. A través de este comportamiento, se le otorga más control
a la aplicación sobre los
botones que se deben mostrar, y la forma en que debe mostrarlos, al mismo tiempo que se proporciona
al usuario una experiencia coherente, independientemente de si la pantalla está bloqueada o no.</p>
<h3 style="clear:both"
id="dialogs_and_toasts_are_for_feedback_not_notification">Diálogos
y avisos</h3>
<p>Su aplicación no debe crear un diálogo o un aviso si actualmente no se muestra en la
pantalla. Los diálogos o los avisos se deben
mostrar únicamente como una respuesta inmediata a una acción que realiza el usuario
dentro de su aplicación.
Para obtener más información sobre cómo utilizar los diálogos y los avisos, consulte
<a href="/design/patterns/confirming-acknowledging.html">Confirmación y reconocimiento</a>.</p>
<h3>Orden y clasificación</h3>
<p>Las notificaciones son noticias que, como tales, se muestran, básicamente, en
orden cronológico inverso, prestando
especial atención a la
<a href="#correctly_set_and_manage_notification_priority">prioridad</a> de la notificación especificada en la aplicación.</p>
<p>Las notificaciones son una parte clave de la pantalla de bloqueo y se muestran de forma prominente
cada vez
que se enciende la pantalla del dispositivo. El espacio en la pantalla de bloqueo es reducido, por lo que
es sumamente importante
que se identifiquen las notificaciones más urgentes o relevantes. Por este
motivo, Android cuenta
con un algoritmo de clasificación más sofisticado para las notificaciones, que tiene en cuenta lo siguiente:</p>
<ul>
<li> La marca de tiempo y la prioridad especificada en la aplicación.</li>
<li> Si la notificación interrumpió al usuario recientemente con un sonido o una
vibración. (Es decir,
si el teléfono emitió un sonido y el usuario desea saber "¿Qué
pasó?", en la pantalla de bloqueo se debe
proporcionar una respuesta a simple vista).</li>
<li> Todas aquellas personas involucradas en la notificación mediante{@link android.app.Notification#EXTRA_PEOPLE}
y, especialmente, si son contactos preferidos.</li>
</ul>
<p>Para aprovechar aún más esta función de clasificación, enfóquese en la
experiencia del usuario que desea
crear, en lugar de centrarse en algún punto importante de la lista.</p>
<img src="{@docRoot}images/android-5.0/notifications/AntiSample3.png" alt="" width="700px" />
<p class="img-caption" style="margin-top:10px">Las notificaciones de Gmail
poseen una prioridad predeterminada, por lo que
normalmente clasifican los mensajes de una aplicación de mensajería instantánea como Hangouts, pero
realizan
un cambio de prioridad temporal cuando ingresan nuevos mensajes.
</p>
<h3>En la pantalla de bloqueo</h3>
<p>Como las notificaciones son visibles en la pantalla de bloqueo, la privacidad del usuario es un aspecto
especialmente
importante. Por lo general, las notificaciones contienen información confidencial y
no necesariamente deben ser visibles
para cualquier persona que agarre el dispositivo y encienda la pantalla.</p>
<ul>
<li> En el caso de los dispositivos que posean una pantalla de bloqueo segura (PIN, patrón o contraseña), la interface está formada por
partes públicas y privadas. La interfaz pública se puede mostrar en una pantalla de bloqueo segura y,
por ende, cualquier persona puede verla. La interfaz privada es el mundo detrás de esa pantalla de bloqueo y
solo se revela cuando el usuario se registra en el dispositivo.</li>
</ul>
<h3>Control del usuario sobre la información que se muestra en la pantalla de bloqueo segura</h3>
<div class="figure" style="width:311px">
<img src="{@docRoot}images/android-5.0/notifications/LockScreen@2x.png" srcset="{@docRoot}images/android-5.0/notifications/LockScreen.png 1x" alt="" width="311px" />
<p class="img-caption">
Notificaciones en la pantalla de bloqueo, en la que el contenido se revela luego de que el usuario desbloquea el dispositivo
</p>
</div>
<p>Cuando se configura una pantalla de bloqueo segura, el usuario puede decidir ocultar los
detalles confidenciales de dicha pantalla. En este caso, la IU del sistema
analiza el <em>nivel de visibilidad</em> de la notificación para decidir
qué información se puede mostrar de forma segura.</p>
<p> Para controlar el nivel de visibilidad, realice una llamada a
<code><a
href="/reference/android/app/Notification.Builder.html#setVisibility(int)">Notification.Builder.setVisibility()</a></code>
y especifique uno de los siguientes valores:</p>
<ul>
<li><code><a
href="/reference/android/app/Notification.html#VISIBILITY_PUBLIC">VISIBILITY_PUBLIC</a></code>.
Se muestra todo el contenido de la notificación.
Esta es la opción predeterminada del sistema si no se especificó el grado de visibilidad.</li>
<li><code><a
href="/reference/android/app/Notification.html#VISIBILITY_PRIVATE">VISIBILITY_PRIVATE</a></code>.
En la pantalla de bloqueo se muestra la información básica sobre la existencia de esta notificación, incluido
el icono y el nombre de la aplicación a través de la cual se publicó. No se muestra el resto de los detalles de la notificación.
A continuación, especificamos algunos puntos que se deben tener en cuenta:
<ul>
<li> Si desea proporcionar una versión pública diferente de su notificación
para que el sistema la muestre en una pantalla de bloqueo segura, suministre un
objeto de notificación de reemplazo en el campo <code><a
href="/reference/android/app/Notification.html#publicVersion">Notification.publicVersion</a></code>
.
<li> Mediante esta configuración, su aplicación puede crear una versión resumida del
contenido que sigue siendo útil, pero que no revela información personal. Considere el ejemplo de una
aplicación de SMS cuyas notificaciones incluyen el texto del SMS, el nombre del remitente y el icono del contacto.
Esta notificación debe ser <code>VISIBILITY_PRIVATE</code>, pero <code>publicVersion</code> podría
seguir conteniendo información útil como "3 mensajes nuevos", sin que se muestren otros detalles
de identificación.
</ul>
</li>
<li><code><a
href="/reference/android/app/Notification.html#VISIBILITY_SECRET">Notification.VISIBILITY_SECRET</a></code>. Se muestra solo la menor cantidad de información posible; se excluye incluso
el icono de la notificación.</li>
</ul>
<h2 style="clear:both" id="notifications_on_android_wear">Notificaciones en
Android Wear</h2>
<p>Las notificaciones y sus <em>acciones</em> se conectan de forma predeterminada con los dispositivos con Wear.
Los desarrolladores pueden controlar qué notificaciones se conectan desde el
teléfono hacia el reloj
y viceversa. Los desarrolladores también pueden controlar qué acciones se conectan. Si
en su aplicación se incluyen
acciones que no se pueden realizar con una sola pulsación, oculte dichas acciones
en su notificación para Wear
o considere anclarlas a una aplicación de Wear. De este modo, el usuario podrá
finalizar con la acción desde el
reloj.</p>
<h4>Conexión entre notificaciones y acciones</h4>
<p>Mediante un dispositivo conectado, como un teléfono, es posible conectar las notificaciones con un dispositivo con Wear, para que las
notificaciones se muestren allí. De modo similar, también es posible conectar acciones para que el usuario pueda ejecutarlas
directamente desde las notificaciones en los dispositivos con Wear.</p>
<p><strong>Conexión</strong></p>
<ul>
<li> Nuevos mensajes instantáneos</li>
<li> Acciones de una sola pulsación como Hacer +1, Me gusta o Favorito</li>
</ul>
<img src="{@docRoot}images/android-5.0/notifications/WearBasic.png" width="156px" height="156px" alt="" />
<p><strong>Sin conexión</strong></p>
<ul>
<li> Notificaciones de podcasts que llegaron recientemente</li>
<li> Acciones que se asignan a funciones que no se pueden ejecutar desde el reloj</li>
</ul>
<p><h4>Acciones únicas diseñadas para Wear</h4></p>
<p>Existen algunas acciones que solo puede realizar en Wear. Entre estas, se incluyen las siguientes:</p>
<ul>
<li> listas rápidas de respuestas predeterminadas como "Vuelvo enseguida";</li>
<li> acciones que se abren desde el teléfono;</li>
<li> un "Comentario" o una acción de "Respuesta" que activa la pantalla de entrada de voz;</li>
<li> acciones que lanzan aplicaciones específicas de Wear.</li>
</ul>
<img src="{@docRoot}images/android-5.0/notifications/ReplyAction.png" width="156px" height="156px" alt="" />