@Override
protected void onResume() {
super.onResume();
//因无法立即获取到粘贴板内容所以需要通过handler来延迟一秒后再获取
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
//此处可放 调用获取剪切板内容的代码
//get_copy();
getCopy(MainActivity.this);
}
}, 1000);//1秒后执行Runnable中的run方法
}
public void getCopy(Context context) {
ClipboardManager clipboard = (ClipboardManager) context.getSystemService(CLIPBOARD_SERVICE);
//无数据时直接返回
if (clipboard == null || !clipboard.hasPrimaryClip()) {
return;
}
//如果是文本信息
if (clipboard.getPrimaryClipDescription().hasMimeType(ClipDescription.MIMETYPE_TEXT_PLAIN)) {
ClipData cdText = clipboard.getPrimaryClip();
ClipData.Item item = cdText.getItemAt(0);
//此处是TEXT文本信息
if (item.getText() != null) {
//item为剪贴板的内容,你可以取到这个字符串,然后再根据规则去进行剪贴拼接
String content = item.getText().toString();
if (!TextUtils.isEmpty(content)) {
System.out.println("粘贴板内容" + content);
//进行数据处理后需要清空粘贴板
clearClipboard();
}
}
}
}
/**
* 清空剪贴板内容
*/
public static void clearClipboard() {
ClipboardManager manager = (ClipboardManager) MyApplication.getContext().getSystemService(Context.CLIPBOARD_SERVICE);
if (manager != null) {
try {
manager.setPrimaryClip(manager.getPrimaryClip());
manager.setText(null);
} catch (Exception e) {
e.printStackTrace();
}
}
}
|