清除所有剪贴板条目

时间:2014-05-01 23:43:42

标签: android clipboard

在运行Android 4.1.2的Samsung Tab 3上,多个副本到剪贴板会生成一个包含每个副本的剪贴板。通过上滑键盘底部的按钮可以看到这一点。

我想以编程方式删除所有这些副本,但是,ClipboardManager似乎没有提供执行此操作的方法。如何删除已复制到剪贴板的所有内容?

谢谢,

克里斯

4 个答案:

答案 0 :(得分:12)

ClipboardManager clipService = (ClipboardManager)activity.getSystemService(Context.CLIPBOARD_SERVICE);
ClipData clipData = ClipData.newPlainText("", "");
clipService.setPrimaryClip(clipData);

答案 1 :(得分:1)

我认为你不能。听起来三星已经编写了一个剪贴板扩展器,可以监控剪贴板事件并保留所有内容的副本。

如果没有(用户)通过UI与历史列表进行交互,则无法访问历史记录。

一种可能的解决方法:如果历史列表属于限制/回收品种(即限制为10项,新项目会覆盖旧项目),那么您可以通过重复发送空白字符串(或无害的)来有效地擦除它非重复字符串,例如' empty1',' empty2'等。) 无论你做什么,你最终都会覆盖用户认为重要的东西,用户会恨你

答案 2 :(得分:0)

使用您提到的管理器,您可以使用setText为其设置一个空字符串以清除剪贴板。

ClipboardManager mClipboardManager = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE); 
mClipboardManager.setText("");

答案 3 :(得分:0)

来自API 28

ClipboardManager mCbm = (ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE);
mCbm.clearPrimaryClip()