今天,在使用我的应用程序时,我发现了ClipData标签的一个用例。 一些应用程序将其设置为null,而另一些应用程序则使用它很多。
就我的应用而言,我正在收听ClipManager的addPrimaryClipChangedListener
我正在几乎始终在后台运行的服务类中执行此操作。 我想处理从我的应用程序添加到primaryClip的数据与在另一个应用程序中添加的数据不同(比如说在Web浏览器中复制的文本)。
这是我的代码以及我如何使用ClipData标签的摘录:
mClipBoardManager.addPrimaryClipChangedListener(new ClipboardManager.OnPrimaryClipChangedListener() {
@Override
public void onPrimaryClipChanged() {
String clipLabel = "default";
if (mClipBoardManager.getPrimaryClip().getDescription().getLabel() != null) {
clipLabel = mClipBoardManager.getPrimaryClip().getDescription().getLabel().toString();
}
if (clipLabel.equals("auto_copy_text")) {
//TODO: Text from my app do stuffs you will do with text from my app
} else {
//TODO: Text from some other app
}
}
});
在将数据添加到primaryClip的应用程序中,我包括如下标签:
private void addToClipboard(String text) {
mClipboardManager = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE);
mClipboardManager.setPrimaryClip(ClipData.newPlainText("auto_copy_text", text));
}
我希望这有帮助