有没有可能将剪贴板的内容粘贴到Android 10的主屏幕小部件中?

问题描述 投票:0回答:1

我正在尝试创建一个小部件,需要用户输入序列号。我还添加了一个粘贴按钮以方便用户,因为序列号是14位数的。下面的代码在安卓10之前的设备上运行良好。

ClipboardManager clipboard = (ClipboardManager) context.getSystemService(Context.CLIPBOARD_SERVICE);
ClipData.Item item = clipboard.getPrimaryClip().getItemAt(0);
String serial = item.getText();

然后我把序列号和我们的序列号比较。问题是,当前的snippet对android 10返回null值。

下面的限制,我发现在 公文.

对剪贴板数据的访问受限。

除非你的应用是默认的输入法编辑器(IME)或者是当前有焦点的应用,否则你的应用在Android 10或更高版本上无法访问剪贴板数据。

有什么方法可以让我在小组件上的按钮被按下时启用焦点吗?先谢谢了。

android android-widget home-screen-widget android-clipboardmanager
1个回答
0
投票

当访问剪贴板时,你的窗口应该被聚焦。

override fun onWindowFocusChanged(hasFocus: Boolean) {
    super.onWindowFocusChanged(hasFocus)
    if(hasFocus){
        val clipboard =
            getSystemService(Context.CLIPBOARD_SERVICE) as ClipboardManager
        val item: ClipData.Item = clipboard.primaryClip.getItemAt(0)
        val serial: String = item.text.toString()
    }
}

这应该在你的活动中工作。

© www.soinside.com 2019 - 2024. All rights reserved.