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