| page.title=Notificações |
| page.tags="notifications","design","L" |
| @jd:body |
| |
| <a class="notice-developers" href="{@docRoot}training/notify-user/index.html"> |
| <div> |
| <h3>Documentos do desenvolvedor</h3> |
| <p>Notificação ao usuário</p> |
| </div> |
| </a> |
| |
| <a class="notice-designers" href="notifications_k.html"> |
| <div> |
| <h3>Notificações no Android 4.4 e em anteriores</h3> |
| </div> |
| </a> |
| |
| <!-- video box --> |
| <a class="notice-developers-video" href="https://www.youtube.com/watch?v=Uiq2kZ2JHVY"> |
| <div> |
| <h3>Vídeo</h3> |
| <p>DevBytes: Notificações na pré-visualização do desenvolvedor do Android L</p> |
| </div> |
| </a> |
| |
| <style> |
| .col-5, .col-6, .col-7 { |
| margin-left:0px; |
| } |
| </style> |
| |
| <p>O sistema de notificações permite que os usuários se mantenham informados sobre eventos relevantes e |
| imediatos |
| no aplicativo, como novas mensagens de bate-papo de um amigo ou um evento de calendário. |
| Pense nas notificações como um canal de notícias que alerta o usuário sobre eventos |
| importantes à |
| medida que acontecem ou sobre um registro que grava eventos enquanto o usuário não está prestando |
| atenção — e que é sincronizado conforme apropriado em todos os dispositivos Android dele.</p> |
| |
| <h4 id="New"><strong>Novo no Android 5.0</strong></h4> |
| |
| <p>No Android 5.0, as notificações recebem atualizações importantes: em termos estruturais, visuais e |
| funcionais:</p> |
| |
| <ul> |
| <li>As notificações passaram por mudanças visuais consistentes com o novo |
| tema do Material Design.</li> |
| <li> As notificações agora estão disponíveis na tela de bloqueio do dispositivo, enquanto que |
| o conteúdo sensível ainda pode |
| ficar oculto atrás dela.</li> |
| <li>Notificações de alta prioridade recebidas enquanto o dispositivo está em uso agora usam um novo formato, chamado de |
| notificações heads-up.</li> |
| <li>Notificações sincronizadas na nuvem: descartar uma notificação em um dos |
| dispositivos Android a descarta |
| também nos outros.</li> |
| </ul> |
| |
| <p class="note"><strong>Observação:</strong> o projeto de notificação nesta versão do |
| Android é uma mudança |
| significativa em relação às versões anteriores. Para obter informações sobre o projeto de notificação em versões |
| anteriores, consulte <a href="./notifications_k.html">Notificações no Android 4.4 ou em anteriores</a>.</p> |
| |
| <h2 id="Anatomy">Anatomia de uma notificação</h2> |
| |
| <p>Esta seção aborda as partes básicas de uma notificação e como elas |
| podem aparecer em diferentes tipos de dispositivos.</p> |
| |
| <h3 id="BaseLayout">Layout básico</h3> |
| |
| <p>No mínimo, todas as notificações consistem em um layout básico, incluindo:</p> |
| |
| <ul> |
| <li> O <strong>ícone</strong> da notificação. O ícone simboliza o |
| aplicativo de origem. Ele também |
| pode indicar o tipo de notificação, caso o aplicativo gere mais de um |
| tipo.</li> |
| <li> Um <strong>título</strong> da notificação e |
| <strong>texto</strong> adicional.</li> |
| <li> Uma <strong>marcação de data e hora</strong>.</li> |
| </ul> |
| |
| <p>Notificações criadas com {@link android.app.Notification.Builder Notification.Builder} |
| para versões anteriores da plataforma têm a mesma aparência e o mesmo funcionamento no Android |
| 5.0, com apenas mudanças menores de estilo que o sistema |
| entrega a você. Para obter mais informações sobre notificações em versões |
| anteriores do Android, consulte |
| <a href="./notifications_k.html">Notificações no Android 4.4 ou em 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"> |
| Layout básico de uma notificação em dispositivo portátil (à esquerda) e a mesma notificação em Wear (à direita), |
| com uma foto do usuário e um ícone de notificação |
| </p> |
| </div> |
| |
| <h3 id="ExpandedLayouts">Layouts expandidos</h3> |
| |
| |
| <p>Você pode escolher o nível de detalhe que as notificações de seu aplicativo |
| devem fornecer. Elas podem mostrar as primeiras |
| linhas de uma mensagem ou exibir uma visualização de imagem maior. As informações |
| adicionais fornecem ao usuário mais |
| contexto e — em alguns casos — podem permitir que o usuário leia uma mensagem |
| em sua totalidade. O usuário pode |
| pinçar para aproximar ou afastar a vista ou realizar deslizamento de um dedo para alternar entre os layouts |
| compacto e expandido. |
| Para notificações de um evento, o Android fornece três modelos de layout |
| expandido (texto, caixa de entrada e |
| imagem) para usar em seu aplicativo. As imagens a seguir mostram como |
| se parecem notificações de um evento em |
| dispositivos portáteis (à esquerda) e usados junto ao corpo (à direita).</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">Ações</h3> |
| |
| <p>O Android tem suporte para ações opcionais que são exibidas na parte inferior |
| da notificação. |
| Com ações, os usuários podem tratar as tarefas mais comuns para |
| determinada notificação de dentro da sombra da notificação sem precisar abrir o |
| aplicativo de origem. |
| Isso acelera a interação e, em conjunto com deslizar-para-descartar, ajuda os usuários a |
| se concentrarem em notificações que sejam importantes.</p> |
| |
| |
| <img src="{@docRoot}images/android-5.0/notifications/action_combo.png" alt="" width="700px" /> |
| |
| |
| |
| <p style="clear:both">Tenha cuidado com o número de ações que inclui em uma |
| notificação. Quanto mais |
| ações incluir, maior será a complexidade cognitiva criada. Limite-se |
| ao menor número possível |
| de ações, incluindo apenas as ações efetivamente mais importantes e |
| significativas.</p> |
| |
| <p>Boas candidatas a ações em notificações são ações que:</p> |
| |
| <ul> |
| <li> Sejam essenciais, frequentes e típicas para o tipo de conteúdo |
| exibido |
| <li> Permitam que o usuário realize tarefas rapidamente |
| </ul> |
| |
| <p>Evite ações que sejam:</p> |
| |
| <ul> |
| <li> Ambíguas |
| <li> Idênticas à ação padrão da notificação (como "Ler" ou |
| "Abrir") |
| </ul> |
| |
| |
| |
| <p>Você pode especificar no máximo três ações, cada uma consistindo em um ícone |
| e um nome de ação. |
| Adicionar ações a um layout básico simples torna a notificação expansível, |
| mesmo se a |
| notificação não tiver um layout expandido. Como as ações são exibidas apenas para notificações |
| expandidas |
| e que ficam de outra forma ocultas, certifique-se de que qualquer ação que um |
| usuário possa invocar de dentro de uma |
| notificação esteja disponível também dentro do aplicativo |
| associado.</p> |
| |
| <h2 style="clear:left">Notificação heads-up</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"> |
| Exemplo de uma notificação heads-up (chamada telefônica recebida, alta prioridade) |
| que aparece sobre um |
| aplicativo imersivo |
| </p> |
| </div> |
| |
| <p>Quando uma notificação de alta prioridade chega (veja à direita), ela é apresentada |
| aos usuários por |
| um período curto com um layout expandido mostrando possíveis ações.</p> |
| <p> Depois desse período, a notificação recua para a sombra |
| de notificação. Se a <a href="#correctly_set_and_manage_notification_priority">prioridade</a> de uma notificação for |
| marcada como Alta, Máxima ou tela cheia, ela receberá uma notificação heads-up.</p> |
| |
| <p><b>Bons exemplos de notificações heads-up</b></p> |
| |
| <ul> |
| <li> Chamada telefônica recebida durante o uso do dispositivo</li> |
| <li> Alarme durante o uso do dispositivo</li> |
| <li> Nova mensagem SMS</li> |
| <li> Bateria fraca</li> |
| </ul> |
| |
| <h2 style="clear:both" id="guidelines">Diretrizes</h2> |
| |
| |
| <h3 id="MakeItPersonal">Torne-a pessoal</h3> |
| |
| <p>Para notificações de itens enviados por outra pessoa (como uma mensagem ou |
| atualização de status), inclua a imagem da pessoa usando |
| {@link android.app.Notification.Builder#setLargeIcon setLargeIcon()}. Anexe também informações sobre |
| a pessoa nos metadados da notificação (consulte {@link android.app.Notification#EXTRA_PEOPLE}).</p> |
| |
| <p>O ícone principal de sua notificação ainda é mostrado, portanto, o usuário pode associá-lo |
| ao ícone |
| visível na barra de status.</p> |
| |
| |
| <img src="{@docRoot}images/android-5.0/notifications/Triggered.png" alt="" width="311px" /> |
| <p style="margin-top:10px" class="img-caption"> |
| Notificação que mostra a pessoa que a ativou e o conteúdo enviado. |
| </p> |
| |
| |
| <h3 id="navigate_to_the_right_place">Navegação para o lugar certo</h3> |
| |
| <p>Quando o usuário toca no corpo de uma notificação (fora dos botões |
| de ação), abra o aplicativo |
| no lugar em que o usuário possa visualizar e agir sobre os dados referenciados na |
| notificação. Na maioria dos casos, será a exibição detalhada de um único item de dado, como uma mensagem, |
| mas também poderá ser uma |
| vista resumida se a notificação estiver empilhada. Se o aplicativo |
| levar o usuário a qualquer lugar abaixo do nível superior do aplicativo, insira a navegação na pilha de retorno do aplicativo para que |
| o usuário possa pressionar o botão Voltar do sistema para voltar ao nível superior. Para obter mais informações, consulte |
| <em>Navegação para o seu aplicativo pelos widgets de página inicial e notificações</em> no padrão de projeto de <a href="{@docRoot}design/patterns/navigation.html#into-your-app">Navegação</a>. |
| </p> |
| |
| <h3 id="correctly_set_and_manage_notification_priority">Definição e gerenciamento |
| corretos da prioridade das |
| notificações</h3> |
| |
| <p>O Android tem suporte para um sinalizador de prioridade para notificações. Esse sinalizador permite |
| influenciar o local em que a notificação é exibida em relação a outras notificações e |
| ajuda a garantir |
| que os usuários sempre vejam primeiro as notificações mais importantes. Você pode escolher entre |
| os seguintes |
| níveis de prioridade ao publicar uma notificação:</p> |
| <table> |
| <tr> |
| <td class="tab0"> |
| <p><strong>Prioridade</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>Use para notificações críticas e urgentes que alertam o usuário sobre uma condição |
| que depende |
| do tempo ou que precisa ser resolvida antes que o usuário possa continuar |
| com uma determinada tarefa.</p> |
| </td> |
| </tr> |
| <tr> |
| <td class="tab1"> |
| <p><code>HIGH</code></p> |
| </td> |
| <td class="tab1"> |
| <p>Use principalmente para comunicações importantes, como uma mensagem ou |
| eventos de bate-papo com conteúdo particularmente interessante para o usuário. |
| Notificações de alta prioridade acionam a exibição de uma notificação heads-up.</p> |
| </td> |
| </tr> |
| <tr> |
| <td class="tab1"> |
| <p><code>DEFAULT</code></p> |
| </td> |
| <td class="tab1"> |
| <p>Use para todas as notificações que não recaiam em nenhuma das outras prioridades descritas aqui.</p> |
| </td> |
| </tr> |
| <tr> |
| <td class="tab1"> |
| <p><code>LOW</code></p> |
| </td> |
| <td class="tab1"> |
| <p>Use para notificações sobre as quais deseja que o usuário seja informado, mas |
| que sejam menos urgentes. Notificações de baixa prioridade tendem a ser exibidas na parte inferior da lista, |
| o que as torna uma boa |
| opção para coisas como atualizações públicas ou sociais não direcionadas: o usuário pediu para |
| ser notificado sobre |
| elas, mas essas notificações nunca devem ter precedência sobre comunicações |
| urgentes ou diretas.</p> |
| </td> |
| </tr> |
| <tr> |
| <td class="tab1"> |
| <p><code>MIN</code></p> |
| </td> |
| <td class="tab1"> |
| <p>Use para informações contextuais ou de histórico, como informações sobre clima ou |
| informações contextuais de localização. |
| Notificações de prioridade mínima não aparecem na barra de status. O usuário |
| as descobre expandindo a sombra da notificação.</p> |
| </td> |
| </tr> |
| </table> |
| |
| |
| <h4 id="how_to_choose_an_appropriate_priority"><strong>Como escolher uma prioridade |
| adequada |
| </strong></h4> |
| |
| <p><code>DEFAULT</code>, <code>HIGH</code> e <code>MAX</code> são níveis de prioridade de interrupção e arriscam |
| interromper a atividade |
| do usuário. Para evitar irritar os usuários de seu aplicativo, reserve níveis de prioridade de interrupção para |
| notificações que:</p> |
| |
| <ul> |
| <li> Envolvam outra pessoa</li> |
| <li> Dependam do tempo</li> |
| <li> Possam mudar imediatamente o comportamento do usuário no mundo real</li> |
| </ul> |
| |
| <p>Notificações definidas como <code>LOW</code> e <code>MIN</code> ainda podem |
| ser valiosas para o usuário: muitas, se não a maioria, das notificações não precisam demandar a atenção |
| imediata do usuário, ou vibrar o pulso do usuário, mas ainda contêm informações que o usuário |
| achará valiosas ao decidir procurar |
| notificações. Os critérios para notificações de prioridade <code>LOW</code> e <code>MIN</code> |
| incluem:</p> |
| |
| <ul> |
| <li> Não envolver outras pessoas</li> |
| <li> Não depender de tempo</li> |
| <li> Ter conteúdo no qual o usuário pode estar interessado, mas que pode decidir |
| verificar no momento em que desejar</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">Definição de uma categoria |
| de notificação</h3> |
| |
| <p>Se a sua notificação recair em uma das categorias predefinidas (veja |
| abaixo), atribua-a |
| adequadamente. Aspectos da IU do sistema, como a sombra da notificação (ou qualquer |
| outra escuta |
| de notificação), podem usar essas informações para tomar decisões de classificação e filtragem.</p> |
| <table> |
| <tr> |
| <td> |
| <p><code><a |
| href="/reference/android/app/Notification.html#CATEGORY_CALL">CATEGORY_CALL</a></code></p> |
| </td> |
| <td> |
| <p>Chamada recebida (voz ou vídeo) ou solicitação similar de |
| comunicação síncrona</p> |
| </td> |
| </tr> |
| <tr> |
| <td> |
| <p><code><a |
| href="/reference/android/app/Notification.html#CATEGORY_MESSAGE">CATEGORY_MESSAGE</a></code></p> |
| </td> |
| <td> |
| <p>Mensagem direta recebida (SMS, mensagem instantânea 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>Mensagens assíncronas em lote (e-mail)</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 de calendário</p> |
| </td> |
| </tr> |
| <tr> |
| <td> |
| <p><code><a |
| href="/reference/android/app/Notification.html#CATEGORY_PROMO">CATEGORY_PROMO</a></code></p> |
| </td> |
| <td> |
| <p>Promoção ou publicidade</p> |
| </td> |
| </tr> |
| <tr> |
| <td> |
| <p><code><a |
| href="/reference/android/app/Notification.html#CATEGORY_ALARM">CATEGORY_ALARM</a></code></p> |
| </td> |
| <td> |
| <p>Alarme ou cronômetro</p> |
| </td> |
| </tr> |
| <tr> |
| <td> |
| <p><code><a |
| href="/reference/android/app/Notification.html#CATEGORY_PROGRESS">CATEGORY_PROGRESS</a></code></p> |
| </td> |
| <td> |
| <p>Andamento de uma operação de execução longa em segundo plano</p> |
| </td> |
| </tr> |
| <tr> |
| <td> |
| <p><code><a |
| href="/reference/android/app/Notification.html#CATEGORY_SOCIAL">CATEGORY_SOCIAL</a></code></p> |
| </td> |
| <td> |
| <p>Atualização de rede social ou de compartilhamento</p> |
| </td> |
| </tr> |
| <tr> |
| <td> |
| <p><code><a |
| href="/reference/android/app/Notification.html#CATEGORY_ERROR">CATEGORY_ERROR</a></code></p> |
| </td> |
| <td> |
| <p>Erro em operação de segundo plano ou no status de autenticação</p> |
| </td> |
| </tr> |
| <tr> |
| <td> |
| <p><code><a |
| href="/reference/android/app/Notification.html#CATEGORY_TRANSPORT">CATEGORY_TRANSPORT</a></code></p> |
| </td> |
| <td> |
| <p>Controle de transporte de mídia para reprodução</p> |
| </td> |
| </tr> |
| <tr> |
| <td> |
| <p><code><a |
| href="/reference/android/app/Notification.html#CATEGORY_SYSTEM">CATEGORY_SYSTEM</a></code></p> |
| </td> |
| <td> |
| <p>Atualização do sistema ou do status do dispositivo. Reservado para uso do 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>Indicação de serviço de segundo plano em execução</p> |
| </td> |
| </tr> |
| <tr> |
| <td> |
| <p><code><a |
| href="/reference/android/app/Notification.html#CATEGORY_RECOMMENDATION">CATEGORY_RECOMMENDATION</a></code></p> |
| </td> |
| <td> |
| <p>Uma recomendação específica e oportuna para uma única coisa. Por exemplo, um aplicativo |
| de notícias pode querer |
| recomendar uma notícia que acredita que o usuário desejará ler em seguida.</p> |
| </td> |
| </tr> |
| <tr> |
| <td> |
| <p><code><a |
| href="/reference/android/app/Notification.html#CATEGORY_STATUS">CATEGORY_STATUS</a></code></p> |
| </td> |
| <td> |
| <p>Informações contínuas sobre o dispositivo ou o status contextual</p> |
| </td> |
| </tr> |
| </table> |
| |
| <h3 id="summarize_your_notifications">Resuma as notificações</h3> |
| |
| <p>Se uma notificação de um certo tipo já estiver pendente quando o aplicativo tentar enviar uma nova |
| notificação do mesmo tipo, combine-as em uma única notificação de resumo para o aplicativo. Não |
| crie um novo objeto.</p> |
| |
| <p>Uma notificação de resumo cria uma descrição resumida e permite que o |
| usuário entenda quantas notificações |
| de um determinado tipo estão pendentes.</p> |
| |
| <div class="col-6"> |
| |
| <p><strong>O que não fazer</strong></p> |
| <img src="{@docRoot}images/android-5.0/notifications/Summarise_Dont.png" alt="" width="311px" /> |
| </div> |
| |
| <div> |
| <p><strong>O que fazer</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">Você pode fornecer |
| mais detalhes sobre as notificações individuais que compõem um |
| resumo usando o layout resumido expandido. Essa abordagem permite que os usuários |
| entendam melhor quais |
| notificações estão pendentes e decidam se estão interessados o suficiente para lê-las |
| em detalhes dentro |
| do aplicativo associado.</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"> |
| Notificação expandida e contraída que é um resumo (usando <code>InboxStyle</code>) |
| </p> |
| </div> |
| |
| <h3 style="clear:both" id="make_notifications_optional">Torne as notificações |
| opcionais</h3> |
| |
| <p>Os usuários devem sempre controlar as notificações. Permita que o usuário |
| desative as notificações |
| de seu aplicativo ou altere as propriedades de alerta, como som de alerta e |
| se a vibração será usada, |
| adicionando um item de configuração da notificação nas configurações do aplicativo.</p> |
| |
| <h3 id="use_distinct_icons">Use ícones distintos</h3> |
| <p>Ao olhar para a área de notificação, o usuário deverá ser capaz de discernir |
| que tipos de |
| notificações estão atualmente pendentes.</p> |
| |
| <div class="figure"> |
| <img src="{@docRoot}images/android-5.0/notifications/ProductIcons.png" alt="" width="420" /> |
| </div> |
| |
| <div><p><strong>O que fazer</strong></p> |
| <p>Verifique os ícones de notificação que os aplicativos do Android já fornecem e crie |
| ícones de notificação para o seu |
| aplicativo que tenham aparência suficientemente distinta.</p> |
| |
| <p><strong>O que fazer</strong></p> |
| <p>Use o <a href="/design/style/iconography.html#notification">estilo de ícone de notificação</a> apropriado |
| para ícones pequenos e o |
| <a href="/design/style/iconography.html#action-bar">estilo de ícone de barra |
| de ação</a> da luminosidade do Material para os ícones |
| de ação.</p> |
| <p ><strong>O que fazer</strong></p> |
| <p >Mantenha os ícones visualmente simples, evitando detalhes excessivos que sejam |
| difíceis de discernir.</p> |
| |
| <div><p><strong>O que não fazer</strong></p> |
| <p>Coloque um alfa adicional (esmaecimento ou redução de intensidade) nos ícones pequenos |
| e nos ícones de |
| ação; eles podem ter bordas suavizadas, mas, como o Android usa esses |
| ícones como máscaras (ou seja, somente |
| o canal alfa é usado), a imagem normalmente deve ser desenhada com |
| opacidade total.</p> |
| |
| </div> |
| <p style="clear:both"><strong>O que não fazer</strong></p> |
| |
| <p>Use cores para distinguir o seu aplicativo dos outros. Ícones de notificação devem |
| somente ser uma imagem com fundo branco sobre transparente.</p> |
| |
| |
| <h3 id="pulse_the_notification_led_appropriately">Pisque o LED de notificação |
| adequadamente</h3> |
| |
| <p>Muitos dispositivos Android contêm um LED de notificação, que é usado para manter o |
| usuário informado sobre |
| eventos enquanto a tela está desligada. Notificações com um nível de prioridade de <code>MAX</code>, |
| <code>HIGH</code> ou <code>DEFAULT</code> devem |
| fazer com que o LED brilhe, enquanto que os de prioridade mais baixa (<code>LOW</code> e |
| <code>MIN</code>) não devem.</p> |
| |
| <p>O controle do usuário sobre as notificações deve se estender ao LED. Ao usar |
| DEFAULT_LIGHTS, o |
| LED brilhará na cor branca. Suas notificações não devem usar uma cor |
| diferente, a não ser que o |
| usuário as tenha explicitamente personalizado.</p> |
| |
| <h2 id="building_notifications_that_users_care_about">Criação de notificações |
| que agradam aos usuários</h2> |
| |
| <p>Para criar um aplicativo que os usuários amem, é importante projetar as |
| notificações cuidadosamente. |
| As notificações personificam a voz do seu aplicativo e contribuem para |
| a personalidade dele. Notificações indesejadas ou |
| irrelevantes podem irritar o usuário ou fazer com que ele reprove a |
| quantidade de atenção que o |
| aplicativo exige. Portanto, use notificações de forma cuidadosa.</p> |
| |
| <h3 id="when_to_display_a_notification">Quando exibir uma notificação</h3> |
| |
| <p>Para criar um aplicativo que as pessoas gostem de usar, é importante |
| reconhecer que a atenção e o foco |
| do usuário são recursos que devem ser protegidos. Apesar de o sistema de |
| notificação do Android ter |
| sido projetado para minimizar o impacto das notificações na atenção do usuário, |
| ainda é |
| importante ter ciência do fato de que as notificações interrompem o |
| fluxo de tarefas do usuário. |
| Ao planejar as notificações, pergunte-se se elas são importantes o suficiente para |
| justificar uma interrupção. Se não tiver certeza, permita que o usuário decida se quer |
| uma notificação usando as configurações de notificação do seu aplicativo ou ajuste |
| o sinalizador de prioridade das notificações para <code>LOW</code> ou <code>MIN</code> para |
| evitar distrair o usuário enquanto ele faz |
| alguma outra coisa.</p> |
| |
| <img src="{@docRoot}images/android-5.0/notifications/TimeSensitive.png" alt="" width="311px" /> |
| <p style="margin-top:10px" class="img-caption"> |
| Exemplos de notificação que depende de tempo |
| </p> |
| |
| <p>Apesar de aplicativos bem comportados geralmente se manifestarem apenas quando ocorre interação com eles, alguns |
| casos justificam que o aplicativo interrompa o usuário com uma notificação não solicitada.</p> |
| |
| <p>Use notificações principalmente para <strong>eventos que dependam de tempo</strong>, especialmente |
| se esses eventos síncronos <strong>envolverem outras pessoas</strong>. Por |
| exemplo, um bate-papo recebido |
| é uma forma síncrona em tempo real de comunicação: outro usuário |
| espera ativamente a resposta. Eventos de calendário são outro exemplo bom de quando usar uma |
| notificação e atrair a |
| atenção do usuário, pois o evento é iminente e eventos de calendário frequentemente |
| envolvem outras pessoas.</p> |
| |
| <h3 style="clear:both" id="when_not_to_display_a_notification">Quando não exibir |
| uma notificação</h3> |
| |
| <div class="figure" style="margin-top:60px"> |
| <img src="{@docRoot}images/android-5.0/notifications/AntiSample1.png" alt="" width="311px" /> |
| </div> |
| |
| <p>Em muitos outros casos, notificações não são adequadas:</p> |
| |
| <ul> |
| <li> Evite notificar o usuário sobre informações que não são especificamente |
| direcionadas a ele ou |
| que não dependam realmente de tempo. Por exemplo, as atualizações |
| assíncronas e não direcionadas |
| que fluem por uma rede social geralmente não justificam uma interrupção |
| em tempo real. Para os usuários que se importam |
| com elas, deixe que decidam recebê-las.</li> |
| <li> Não crie uma notificação se as informações novas relevantes estiverem |
| atualmente na tela. Em vez disso, |
| use a IU do próprio aplicativo para notificar o usuário das novas informações |
| diretamente no contexto. |
| Por exemplo, um aplicativo de bate-papo não deve criar notificações de sistema enquanto o |
| usuário estiver conversando ativamente com outro usuário.</li> |
| <li> Não interrompa o usuário para realizar operações técnicas de baixo nível, como salvar |
| ou sincronizar informações, nem atualize um aplicativo se o aplicativo ou o sistema puder resolver |
| o problema sem envolver o usuário.</li> |
| <li> Não interrompa o usuário para informar um erro se o aplicativo |
| puder se recuperar dele por conta própria, sem que o usuário |
| tome qualquer ação.</li> |
| <li> Não crie notificações que não tenham conteúdo real de notificação e |
| que meramente anunciem o seu |
| aplicativo. Uma notificação deve fornecer informações úteis, oportunas e novas e |
| não deve ser usada |
| meramente para executar um aplicativo.</li> |
| <li> Não crie notificações supérfluas apenas para colocar sua marca na frente |
| dos usuários. |
| Tais notificações frustram e provavelmente alienam seu público-alvo. A |
| melhor forma de fornecer |
| pequenas quantidades de informações atualizadas e manter o usuário envolvido |
| com o seu |
| aplicativo é desenvolver um widget que ele possa colocar na |
| tela inicial.</li> |
| </ul> |
| |
| <h2 style="clear:left" id="interacting_with_notifications">Interação com |
| notificações</h2> |
| |
| <p>Notificações são indicadas por ícones na barra de status e podem ser acessadas |
| abrindo a |
| gaveta de notificações.</p> |
| |
| <p>Tocar em uma notificação abre o aplicativo associado com o conteúdo |
| detalhado que corresponde à notificação. |
| Deslizar à esquerda ou à direita em uma notificação a remove da gaveta.</p> |
| |
| <h3 id="ongoing_notifications">Notificações contínuas</h3> |
| <div class="figure" style="width:311px"> |
| <img src="{@docRoot}images/android-5.0/notifications/MusicPlayback.png" alt="" width="311px" /> |
| <p class="img-caption"> |
| Notificação contínua devido à reprodução de música |
| </p> |
| </div> |
| <p>Notificações contínuas mantêm os usuários informados sobre um processo em andamento em |
| segundo plano. |
| Por exemplo, reprodutores de música anunciam a faixa em reprodução no |
| sistema de notificação e |
| continuam a fazer isso até que o usuário interrompa a reprodução. Notificações contínuas também podem |
| mostrar ao usuário |
| feedback sobre tarefas mais longas, como o download de um arquivo ou a codificação de um vídeo. Um usuário não pode remover |
| manualmente uma notificação contínua da gaveta de notificações.</p> |
| |
| <h3 id="ongoing_notifications">Reprodução de mídia</h3> |
| <p>No Android 5.0, a tela de bloqueio não mostra controles de transporte por causa da classe |
| {@link android.media.RemoteControlClient} obsoleta. Mas ela <em>mostra</em> notificações, portanto, a notificação de reprodução |
| de cada aplicativo agora é a forma |
| principal para que os usuários controlem a reprodução em um estado bloqueado. Esse comportamento dá aos aplicativos mais |
| controle sobre quais |
| botões exibir e de que forma, ao mesmo tempo em que fornece uma experiência consistente |
| para o usuário, com a tela bloqueada ou não.</p> |
| |
| <h3 style="clear:both" |
| id="dialogs_and_toasts_are_for_feedback_not_notification">Diálogos |
| e avisos</h3> |
| |
| <p>O seu aplicativo não deve criar uma caixa de diálogo ou um aviso se não estiver |
| atualmente na tela. Uma caixa de diálogo ou um aviso |
| deve ser exibido somente como uma resposta imediata ao usuário tomando uma ação |
| dentro do seu aplicativo. |
| Para obter orientação adicional sobre o uso de caixas de diálogo e avisos, consulte |
| <a href="/design/patterns/confirming-acknowledging.html">Confirmação e reconhecimento</a>.</p> |
| |
| <h3>Avaliação e classificação</h3> |
| |
| <p>Notificações são notícias e, portanto, são essencialmente exibidas |
| em ordem cronológica inversa, com |
| consideração especial para a |
| <a href="#correctly_set_and_manage_notification_priority">prioridade</a> da notificação declarada no aplicativo.</p> |
| |
| <p>Notificações são uma parte importante da tela de bloqueio e são exibidas proeminentemente |
| sempre |
| que a tela do dispositivo é exibida. O espaço na tela de bloqueio é restrito, portanto, |
| é mais importante |
| do que nunca identificar as notificações mais urgentes ou relevantes. Por esse |
| motivo, o Android tem um |
| algoritmo de classificação mais sofisticado para notificações, levando em conta:</p> |
| |
| <ul> |
| <li> A marcação de data e hora e a prioridade declarada no aplicativo.</li> |
| <li> Se a notificação incomodou recentemente o usuário com som ou |
| vibração (ou seja, |
| se o celular acabou de fazer um ruído e o usuário deseja saber "O que acabou de |
| acontecer?", a tela de bloqueio |
| deve responder com um olhar rápido).</li> |
| <li> Qualquer pessoa anexada à notificação usando {@link android.app.Notification#EXTRA_PEOPLE} |
| e, em particular, se é contato especial (com estrelas).</li> |
| </ul> |
| |
| <p>Para aproveitar ao máximo essa classificação, concentre-se na experiência |
| do usuário que deseja |
| criar, e não em um determinado local na lista.</p> |
| |
| <img src="{@docRoot}images/android-5.0/notifications/AntiSample3.png" alt="" width="700px" /> |
| |
| <p class="img-caption" style="margin-top:10px">Notificações do Gmail têm |
| prioridade padrão e normalmente |
| são classificadas abaixo de mensagens de um aplicativo de mensagem instantânea, como o Hangouts, mas |
| recebem |
| uma promoção temporária quando novas mensagens chegam. |
| </p> |
| |
| |
| <h3>Na tela de bloqueio</h3> |
| |
| <p>Como as notificações são visíveis na tela de bloqueio, a privacidade do usuário é uma consideração |
| especialmente |
| importante. Notificações frequentemente contêm informações sensíveis e |
| não devem necessariamente estar visíveis |
| para qualquer pessoa que ligar a tela do dispositivo.</p> |
| |
| <ul> |
| <li> Para dispositivos que têm uma tela de bloqueio segura (PIN, padrão ou senha), a interface tem |
| partes públicas e privadas. A interface pública pode ser exibida em uma tela de bloqueio segura e, |
| portanto, vista por qualquer pessoa. A interface privada é o mundo atrás da tela de bloqueio e |
| só é revelada depois que o usuário faz login no dispositivo.</li> |
| </ul> |
| |
| <h3>Controle do usuário sobre as informações exibidas na tela de bloqueio 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"> |
| Notificações na tela de bloqueio com conteúdo revelado depois que o usuário desbloqueia o dispositivo. |
| </p> |
| </div> |
| |
| <p>Ao definir uma tela de bloqueio segura, o usuário poderá escolher ocultar |
| detalhes sensíveis da tela de bloqueio segura. Nesse caso, a IU do sistema |
| considerará o <em>nível de visibilidade</em> da notificação para descobrir o que pode |
| ser exibido com segurança.</p> |
| <p> Para controlar o nível de visibilidade, chame |
| <code><a |
| href="/reference/android/app/Notification.Builder.html#setVisibility(int)">Notification.Builder.setVisibility()</a></code> |
| e especifique um destes valores:</p> |
| |
| <ul> |
| <li><code><a |
| href="/reference/android/app/Notification.html#VISIBILITY_PUBLIC">VISIBILITY_PUBLIC</a></code>. |
| Exibe o conteúdo inteiro da notificação. |
| Esse é o padrão do sistema se a visibilidade não for especificada.</li> |
| <li><code><a |
| href="/reference/android/app/Notification.html#VISIBILITY_PRIVATE">VISIBILITY_PRIVATE</a></code>. |
| Na tela de bloqueio, exibe informações básicas sobre essa notificação, incluindo o |
| ícone e o nome do aplicativo que a publicou. O restante dos detalhes da notificação não é exibido. |
| Alguns pontos a ter em mente são: |
| <ul> |
| <li> Se você quer fornecer uma versão pública diferente da sua notificação |
| para que o sistema a exiba em uma tela de bloqueio segura, forneça um objeto |
| Notificação substituto no campo <code><a |
| href="/reference/android/app/Notification.html#publicVersion">Notification.publicVersion</a></code>. |
| |
| <li> Essa configuração dá ao aplicativo uma oportunidade de criar uma versão alternativa do |
| conteúdo que ainda é útil, mas não revela informações pessoais. Considere o exemplo de um |
| aplicativo de SMS cujas notificações incluem o texto da mensagem SMS, o nome do remetente e o ícone do contato. |
| Essa notificação deve ser <code>VISIBILITY_PRIVATE</code>, mas <code>publicVersion</code> ainda pode |
| conter informações úteis, como "3 novas mensagens", sem outros detalhes |
| de identificação. |
| </ul> |
| </li> |
| <li><code><a |
| href="/reference/android/app/Notification.html#VISIBILITY_SECRET">Notification.VISIBILITY_SECRET</a></code>. Mostra apenas as informações mínimas, excluindo até mesmo |
| o ícone da notificação.</li> |
| </ul> |
| <h2 style="clear:both" id="notifications_on_android_wear">Notificações no |
| Android Wear</h2> |
| |
| <p>Notificações e suas <em>ações</em> são enviadas a dispositivos Wear por padrão. |
| Os desenvolvedores podem controlar que notificações são enviadas do |
| celular ao relógio |
| e vice-versa. Os desenvolvedores também podem controlar quais ações são transmitidas. Se o |
| seu aplicativo inclui |
| ações que não podem ser executadas com um toque, oculte essas ações |
| na sua notificação do Wear |
| ou considere colocá-las em um aplicativo do Wear, permitindo que o usuário |
| termine a ação |
| no relógio.</p> |
| |
| <h4>Transmissão de notificações e ações</h4> |
| |
| <p>Um dispositivo conectado, como um celular, pode transmitir notificações para um dispositivo Wear para que as |
| notificações sejam exibidas nele. De forma similar, ele pode transmitir ações para que o usuário possa agir |
| sobre as notificações diretamente do dispositivo Wear.</p> |
| |
| <p><strong>Transmitir</strong></p> |
| |
| <ul> |
| <li> Novas mensagens instantâneas</li> |
| <li> Ações de um toque, como +1, Curtir, Coração</li> |
| </ul> |
| |
| <img src="{@docRoot}images/android-5.0/notifications/WearBasic.png" width="156px" height="156px" alt="" /> |
| |
| <p><strong>Não transmitir</strong></p> |
| |
| <ul> |
| <li> Notificações de podcasts recém-chegados</li> |
| <li> Ações que mapeiem para recursos que não são possíveis no relógio</li> |
| </ul> |
| |
| |
| |
| <p><h4>Ações exclusivas a definir para Wear</h4></p> |
| |
| <p>Há algumas ações que só podem ser realizadas em Wear. Elas incluem:</p> |
| |
| <ul> |
| <li> Listas rápidas de respostas prontas, como "Volto logo"</li> |
| <li> Abrir no celular</li> |
| <li> Uma ação "Comentar" ou "Responder" que abre a tela de entrada de voz</li> |
| <li> Ações que executam aplicativos específicos de Wear</li> |
| </ul> |
| |
| <img src="{@docRoot}images/android-5.0/notifications/ReplyAction.png" width="156px" height="156px" alt="" /> |