Salin dan tempel

Mulai Android 13, sistem akan menampilkan konfirmasi visual standar saat konten ditambahkan ke papan klip. Konfirmasi baru akan melakukan hal berikut:

  • Mengonfirmasi bahwa konten berhasil disalin.
  • Memberikan pratinjau konten yang disalin.

Di Android 12L (API level 32) dan versi lebih lama, pengguna sering kali tidak tahu apakah mereka berhasil menyalin konten atau apa yang telah disalin.

Fitur ini menstandarkan berbagai notifikasi yang ditampilkan oleh aplikasi setelah menyalin dan menawarkan kontrol lebih atas papan klip kepada pengguna.

Widget Salin/Tempel
Gambar 1: UI baru ditampilkan saat konten memasuki papan klip.
Anatomi widget Salin/Tempel: pratinjau, berbagi, dan kirim lintas-perangkat
Gambar 2: anatomi widget Salin/Tempel: pratinjau, berbagi, dan kirim lintas perangkat.

Menghindari notifikasi duplikat

Untuk menghindari duplikasi tampilan informasi, sebaiknya hapus notifikasi pop-up yang ditampilkan setelah menyalin dalam aplikasi di Android 13 dan versi lebih baru.

Memposting snackbar setelah menyalin dalam aplikasi.
Gambar 3: Jika Anda menampilkan snackbar konfirmasi penyalinan di Android 13, pengguna akan melihat pesan duplikat.
Memposting toast setelah menyalin dalam aplikasi.
Gambar 4: Jika Anda menampilkan toast konfirmasi penyalinan di Android 13, pengguna akan melihat pesan duplikat.

Contoh

Agar tidak menampilkan UI duplikat tentang konfirmasi penyalinan di Android 13, coba gunakan kode seperti contoh ini:


  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()
  }

Perhatikan bahwa Anda tidak perlu menyertakan pesan pop-up setelah menyalin teks ke papan klip untuk Android 13 dan yang lebih baru.

Menambahkan konten sensitif ke papan klip

Jika aplikasi Anda mengizinkan pengguna untuk menyalin konten sensitif, seperti sandi atau informasi kartu kredit, Anda harus menambahkan flag ke ClipDescription ClipData di papan klip sebelum memanggil ClipboardManager#setPrimaryClip(). Menambahkan flag ini akan mencegah konten sensitif muncul dalam pratinjau konten.

Pratinjau teks yang disalin tanpa menambahkan flag pada konten sensitif
Gambar 5: Pratinjau teks yang disalin tanpa menambahkan flag pada konten sensitif.
Pratinjau teks yang disalin dengan menambahkan flag pada konten sensitif.
Gambar 6: Pratinjau teks yang disalin dengan menambahkan flag pada konten sensitif.

Untuk menambahkan flag pada konten sensitif, sertakan tambahan boolean ke ClipDescription. Semua aplikasi harus melakukan ini, apa pun API level yang ditargetkan.


// 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)
    }
}