【问题标题】:How come items I put on the clipboard don't show up on the SwiftKey clipboard history?为什么我放在剪贴板上的项目没有显示在 SwiftKey 剪贴板历史记录中?
【发布时间】:2019-12-05 04:06:52
【问题描述】:

我正在使用此代码将项目放在剪贴板上,它工作正常,应用程序可以很好地粘贴我放在那里的内容,但 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")
        }
    }
}

我可以很好地粘贴,但这是 SwiftKey 显示的内容:

【问题讨论】:

  • 我遵守API 29 并在Android 9SwiftKey version 7.4.6.6 上对其进行了测试。它工作得很好。你能分享更多细节吗?
  • 感谢您这样做,但这就是代码的全部内容。你试过用网址吗?也许你可以分享你的代码。我正在编辑帖子以显示我刚刚制作的示例项目,但仍然存在问题。
  • 对不起。我检查了我的代码,发现我尝试了newPlainText 方法。
  • 想知道如果 url 不起作用,也许我需要切换到纯文本。看不出有什么坏处,它只是一个剪贴板。
  • 我刚刚测试过,newPlainText() 显示良好,所以我可以使用它。如果您想让它成为答案,我可以将其标记为正确。

标签: android android-clipboardmanager


【解决方案1】:

使用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")
        }
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-04-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-18
    相关资源
    最近更新 更多