Почему элементы, которые я помещаю в буфер обмена, не отображаются в истории буфера обмена SwiftKey?

Я использую этот код для помещения элементов в буфер обмена, и он отлично работает, приложения могут вставлять то, что я туда поместил, очень хорошо, но 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:

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")
        }
    }
}
Другие вопросы по тегам