Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/343.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在Android中侦听副本_Java_Android - Fatal编程技术网

Java 如何在Android中侦听副本

Java 如何在Android中侦听副本,java,android,Java,Android,为了让自己更熟悉Android中的内容提供商,我正在制作一个小的剪贴板管理器应用程序。它的核心功能是简单地将复制的内容添加到数据库中以显示。我对Android的剪贴板框架有点熟悉,但我不确定该怎么做,就是监听复制“事件”,知道需要将新项目添加到剪贴板 为了澄清这一点,我需要能够在用户复制内容时向数据库添加记录。我如何做到这一点?您有什么API?这个答案:不幸的是,似乎暗示了android 3.0和更高版本有办法,但不是更低版本 我唯一能想到的另一件事就是制作一个服务,每隔一段时间查询一下剪贴板,

为了让自己更熟悉Android中的内容提供商,我正在制作一个小的剪贴板管理器应用程序。它的核心功能是简单地将复制的内容添加到数据库中以显示。我对Android的剪贴板框架有点熟悉,但我不确定该怎么做,就是监听复制“事件”,知道需要将新项目添加到剪贴板


为了澄清这一点,我需要能够在用户复制内容时向数据库添加记录。我如何做到这一点?

您有什么API?这个答案:不幸的是,似乎暗示了android 3.0和更高版本有办法,但不是更低版本


我唯一能想到的另一件事就是制作一个服务,每隔一段时间查询一下剪贴板,看看它是否已更改或有新的文本。使用ClipBoardManager可以很容易地做到这一点。

如果您使用的是API 11级(3.0)或更高版本,那么您可以使用
addPrimaryClipChangedListener
,这是有文档记录的,并且有一些示例用法。

放在类中:

ClipboardManager.OnPrimaryClipChangedListener mPrimaryChangeListener = new ClipboardManager.OnPrimaryClipChangedListener() {
        public void onPrimaryClipChanged() {

            // this will be called whenever you copy something to the clipboard
        }
    };
将其放入onCreate方法中:

ClipboardManager clipboard = (ClipboardManager) this.getSystemService(Context.CLIPBOARD_SERVICE);
clipboard.addPrimaryClipChangedListener(mPrimaryChangeListener);

就这些。希望我能帮助你。

你是不是想提出一个不同的问题@Jack?你当前的链接似乎又回到了这个问题。哈哈,是的,我的意思是指向Otra发布的链接:)谢谢。没有针对旧api的解决方案真是糟糕透了。是的,但是如果你真的非常想要它,你可以尝试下面的建议,只是偶尔检查一下剪贴板(使用服务)。这个答案对针对Android 10(api 29)的应用仍然有效吗?我有一个应用程序在过去几年中一直使用这种方法来收听剪辑事件。一旦我升级到api 29,它就停止工作了,这似乎与Androids最近对前台服务的限制有关。想知道你对此有什么见解吗?@jwenz723当剪贴簿管理器的主应用程序没有焦点时,服务无法从中获取任何信息。这就是Android Q(10)的工作原理。没有解决办法,因为这被谷歌视为一种安全风险。澄清一下:当你的主应用程序失去焦点时,你甚至无法获取剪贴板中当前的内容。