前言
最近在做App启动自动获取粘贴板的功能时发现,10以上的高版本无法获取剪切板的内容
Android Q对剪切板做了改动
当应用没有获取到焦点的时候,无法获取剪贴板内容
思路
既然应用未获取到焦点,所以无法获取到剪切板内容是正常的,但是当App启动时,此时App已经获取到焦点,但还是无法获取剪切板内容,原因只有一个:在获取焦点的同时获取剪切板内容是有时差间隔的。所以在获取剪切板时延迟一秒左右再去获取剪切板内容,这样就能获取到了。
代码
Handler handler = new Handler()
handle.postDelayed(new Runnable(){
@Override
public void run() {
//此处可放 调用获取剪切板内容的代码
getClipboardContent()
}
},1000)
/**
* 系统剪贴板-获取:
*/
public static String getClipboardContent () {
// 获取系统剪贴板
ClipboardManager clipboard = (ClipboardManager) context.getSystemService(Context.CLIPBOARD_SERVICE);
// 返回数据
ClipData clipData = clipboard.getPrimaryClip();
if (clipData != null && clipData.getItemCount() > 0) {
// 从数据集中获取(粘贴)第一条文本数据
return clipData.getItemAt(0).getText().toString();
}
return null;
}
网友评论