我正在构建ClipboardManager应用程序,用于复制文本和粘贴到应用程序。我使用OnPrimaryClipChangedListener来监听复制到剪贴板的文本,并在app服务上运行OnPrimaryClipChangedListener,并将文本自动粘贴到我的应用程序。但问题是,当我打开ClipboardManager应用程序并从自己的应用程序复制文本时,它再次触发OnPrimaryClipChangedListener并再次粘贴数据。如何过滤从ClipboardManager应用程序或任何其他应用程序复制的文本?如果从我们自己的应用程序复制然后丢弃,则将数据保存到ClipboardManager数据库。
答案 0 :(得分:2)
private OnPrimaryClipChangedListener listener = new OnPrimaryClipChangedListener() {
public void onPrimaryClipChanged() {
performClipboardCheck();
}
};
private void performClipboardCheck {
ClipboardManager cb = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE);
if (cb.hasPrimaryClip()) {
ClipData cd = cb.getPrimaryClip();
cd.getItemAt(0).getText()
}
};
来自Permanently listen to Clipboard changes
这可能就是你想要的,这也意味着这是重复......