在运行Android 4.1.2的Samsung Tab 3上,多个副本到剪贴板会生成一个包含每个副本的剪贴板。通过上滑键盘底部的按钮可以看到这一点。
我想以编程方式删除所有这些副本,但是,ClipboardManager似乎没有提供执行此操作的方法。如何删除已复制到剪贴板的所有内容?
谢谢,
克里斯
答案 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()