ฉันได้ใช้คุณลักษณะคัดลอกจากคลิปบอร์ดแล้ว ดังนั้นเมื่อใดก็ตามที่ผู้ใช้คัดลอกบางสิ่งและแอปของฉันกลับมาทำงานต่อหลังจากนั้น ฉันจะแสดงแถบข้อมูลเพื่อดำเนินการบางอย่าง มันทำงานได้ดีใน Android 9 แต่ใน Android 10 ตามการเปลี่ยนแปลงนโยบาย จะไม่สังเกตการเปลี่ยนแปลงของคลิปบอร์ดในพื้นหลัง ไม่เป็นไร แต่เมื่อฉันเรียกใช้เมธอดต่อไปนี้ใน onResume มันไม่ได้รับข้อความใด ๆ เนื่องจาก hasPrimaryClip เป็นเท็จ แต่บนหน้าจอเดียวกันถ้าฉันใช้วิธีเดียวกันในการคลิกปุ่มใด ๆ มันก็ทำงานได้ดีและส่งกลับข้อความที่คัดลอกมา อาจเป็นคลิปบอร์ดไม่ให้สิทธิ์การเข้าถึงทันทีหลังจาก onResume และด้วยความล่าช้าเล็กน้อยเมื่อคลิกปุ่มใด ๆ ก็จะทำให้สามารถเข้าถึงได้ อะไรอาจเป็นปัญหา? ความคิดใด ๆ ที่จะได้รับการชื่นชมอย่างมาก
ขอบคุณ
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;
}