Papan klip di Android 10 tidak berfungsi seperti yang diharapkan

Saya telah menerapkan fitur salinan dari clipboard. Jadi, setiap kali pengguna menyalin sesuatu dan aplikasi saya dilanjutkan setelah itu saya menampilkan Snackbar untuk melakukan beberapa tindakan. Ini berfungsi dengan baik di Android 9 tetapi di Android 10 sesuai perubahan kebijakan, ia tidak mengamati perubahan clipboard di latar belakang. Tidak apa-apa tetapi ketika saya memanggil metode berikut di onResume tidak ada teks apa pun karena hasPrimaryClip salah. Tetapi pada layar yang sama jika saya memanggil metode yang sama pada klik tombol apa pun maka itu berfungsi dengan baik dan mengembalikan teks yang disalin. Mungkin clipboard tidak memberikan akses segera setelah onResume dan dengan beberapa penundaan ketika tombol apa pun diklik memungkinkan akses. Apa masalahnya? Ide apa pun akan sangat dihargai.

Terima kasih

public String readFromClipboard() {
        ClipboardManager clipboard = (ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE);
        if (clipboard.hasPrimaryClip()) {
            android.content.ClipDescription description = clipboard.getPrimaryClipDescription();
            android.content.ClipData data = clipboard.getPrimaryClip();
            if (data != null && description != null && description.hasMimeType(ClipDescription.MIMETYPE_TEXT_PLAIN))
                return String.valueOf(data.getItemAt(0).getText());
        }
        return null;
    }

person Usman Rana    schedule 29.01.2021    source sumber


Jawaban (1)


Apa yang saya amati adalah kita dapat mengakses data clipboard dalam metode 'onWindowFocusChanged(boolean hasFocus)' jika hasFocus benar. Metode ini disebut kira-kira. ~100ms lebih lambat dari pada Lanjutkan. Jadi, menyalin dengan mengklik tombol berfungsi dengan baik karena aplikasi sudah memiliki fokus.

person Usman Rana    schedule 29.01.2021