Android 为什么我放在剪贴板上的项目不';“快捷键剪贴板历史记录”上没有显示?

Android 为什么我放在剪贴板上的项目不';“快捷键剪贴板历史记录”上没有显示?,android,android-clipboardmanager,Android,Android Clipboardmanager,我正在使用这段代码将项目放在剪贴板上,它工作正常,应用程序可以粘贴我放在那里的内容,但SwiftKey从未在其历史记录中显示我放在剪贴板上的内容。我做错了什么 ClipboardManager clipboard = (ClipboardManager) context. getSystemService(Context.CLIPBOARD_SERVICE); if (clipboard != null) { ClipDat

我正在使用这段代码将项目放在剪贴板上,它工作正常,应用程序可以粘贴我放在那里的内容,但SwiftKey从未在其历史记录中显示我放在剪贴板上的内容。我做错了什么

ClipboardManager clipboard = (ClipboardManager) context.
                getSystemService(Context.CLIPBOARD_SERVICE);
        if (clipboard != null) {
            ClipData clip = ClipData.newRawUri("URL", Uri.parse(url));
            if (clip != null) {
                clipboard.setPrimaryClip(clip);
            } else {
                Log.w(TAG, "Failed to copy to clipboard");
            }
        } else {
            Log.w(TAG, "Unexpected error because clipboard is null");
        }
编辑:创建一个示例项目只是为了测试它,但仍然失败:

class MainActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        val clipboard: ClipboardManager =
            getSystemService(Context.CLIPBOARD_SERVICE) as ClipboardManager
        if (clipboard != null) {
            val clip = ClipData.newRawUri("URL", Uri.parse("http://google.com"))
            if (clip != null) {
                clipboard.setPrimaryClip(clip)
            } else {
                Log.w("MainActivity", "Failed to copy to clipboard")
            }
        } else {
            Log.w("MainActivity", "Unexpected error because clipboard is null")
        }
    }
}
我可以很好地粘贴,但以下是快捷键显示的内容:


使用
ClipData.newPlainText()
方法代替
ClipData.newRawUri()
方法。因此,您的代码可以如下所示:

class MainActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        val clipboard: ClipboardManager =
            getSystemService(Context.CLIPBOARD_SERVICE) as ClipboardManager
        if (clipboard != null) {
            val clip = ClipData.newPlainText("URL", "http://google.com")
            if (clip != null) {
                clipboard.setPrimaryClip(clip)
            } else {
                Log.w("MainActivity", "Failed to copy to clipboard")
            }
        } else {
            Log.w("MainActivity", "Unexpected error because clipboard is null")
        }
    }
}

我遵守了API 29,并在安卓9上用SwiftKey 7.4.6.6版进行了测试。它工作得很好。你能分享更多细节吗?谢谢你这么做,但这就是代码的全部内容。你用url试过了吗?也许你可以分享你的代码。我正在编辑这篇文章来展示我刚刚做的一个示例项目,但仍然存在这个问题。我很抱歉。我检查了我的代码,发现我尝试了
newPlainText
方法。不知道url是否不起作用,也许我需要切换到纯文本。看不出有什么害处,它只是一个剪贴板。我刚刚测试过,
newPlainText()
显示得很好,所以我可以使用它。如果你想回答这个问题,我可以把它标记为正确的。