Copiar e colar

A partir do Android 13, o sistema mostra uma confirmação visual padrão ao adicionar conteúdo à área de transferência. A nova confirmação faz o seguinte:

  • Confirma que o conteúdo foi copiado.
  • Oferece uma visualização do conteúdo copiado.

No Android 12L (API de nível 32) e versões anteriores, muitas vezes os usuários não tinham certeza se o conteúdo havia sido copiado.

Esse recurso padroniza as várias notificações exibidas pelos apps após copiar um conteúdo e oferece aos usuários mais controle sobre a área de transferência.

Widget do recurso copiar e colar.
Figura 1: nova IU exibida quando o conteúdo é inserido na área de transferência.
Widget do funcionamento do recurso copiar e colar: visualização e opções de compartilhamento e envio para outros dispositivos
Figura 2: widget do funcionamento do recurso copiar e colar: visualização e opções de compartilhamento e envio para outros dispositivos.

Evitar notificações duplicadas

Para não mostrar informações duplicadas, recomendamos que você remova as notificações pop-up exibidas quando o usuário copia um conteúdo no app no Android 13 e versões mais recente.

Exibir snackbar depois que o usuário cópia conteúdo no app.
Figura 3: se o app exibir um snackbar de confirmação ao copiar conteúdo no Android 13, o usuário verá mensagens duplicadas.
Exibir aviso depois que o usuário copia conteúdo no app.
Figura 4: se o app exibir um aviso de confirmação ao copiar conteúdo no Android 13, o usuário verá mensagens duplicadas.

Exemplo

Para evitar a exibição de uma IU duplicada de confirmação de cópia no Android 13, experimente usar um código como do exemplo a seguir:


  fun textCopyThenPost(textCopied:String) {
    val clipboardManager = getSystemService(CLIPBOARD_SERVICE) as ClipboardManager
    // When setting the clip board text.
    clipboardManager.setPrimaryClip(ClipData.newPlainText("", textCopied))
    // Only show a toast for Android 12 and lower.
    if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.S_V2)
      Toast.makeText(context, “Copied”, Toast.LENGTH_SHORT).show()
  }

Não é necessário incluir uma mensagem pop-up depois de copiar o texto para a área de transferência no Android 13 e versões mais recentes.

Adicionar conteúdo sensível à área de transferência

Se o app permitir que os usuários copiem conteúdo sensível para a área de transferência, como senhas ou dados de cartões de crédito, adicione uma sinalização à ClipDescription do ClipData antes de chamar ClipboardManager#setPrimaryClip(). Essa sinalização impede que conteúdo sensível seja exibido na visualização.

Visualização do texto copiado sem sinalização de conteúdo sensível.
Figura 5: visualização de texto copiado sem sinalização de conteúdo sensível.
Visualização do texto copiado com sinalização de conteúdo sensível.
Figura 6: visualização de texto copiado com sinalização de conteúdo sensível.

Para sinalizar a presença de conteúdo sensível, adicione um booleano extra à ClipDescription. Isso precisa ser feito por todos os apps, independentemente do nível desejado da API.


// When your app targets API level 33 or higher
clipData.apply {
    description.extras = PersistableBundle().apply {
        putBoolean(ClipDescription.EXTRA_IS_SENSITIVE, true)
    }
}

// If your app targets a lower API level
clipData.apply {
    description.extras = PersistableBundle().apply {
        putBoolean("android.content.extra.IS_SENSITIVE", true)
    }
}