Использование буфера обмена при копировании - PullRequest
0 голосов
/ 27 апреля 2020

Необходимо поместить HTML текст в буфер обмена с меткой (чтобы определить, что копирование пришло из нашего приложения). На большинстве устройств приведенный ниже код работает правильно. Однако в LG-V490 встроенный буфер обмена игнорирует как тег, так и тот факт, что для копирования используется HTML, а не обычный текст. Есть ли способы получить доступ к этому встроенному буферу? На устройствах Samsung все работает правильно. При копировании:

ClipboardManager clipboardManager;
clipboardManager = (ClipboardManager) getContext().getSystemService(Context.CLIPBOARD_SERVICE);
if (item.getItemId() == android.R.id.copy) {

    ...

    ClipData myClip = ClipData.newHtmlText("RTText", rtText.getText(selectedText),rtHtml.getText());
    clipboardManager.setPrimaryClip(myClip);
    mode.finish();
    return true;
}

При вставке:

if (item.getItemId() == android.R.id.paste) {
    String clipLabel = "default";
    if (clipboardManager.getPrimaryClip().getDescription().getLabel() != null) {
        clipLabel = clipboardManager.getPrimaryClip().getDescription().getLabel().toString();
    }
    ClipData abc = clipboardManager.getPrimaryClip();
    ClipData.Item clipDataItem = abc.getItemAt(0);
    ...

    String content;
    if (clipLabel.equals("RTText")) {
        content = rtHtml1.getText() + clipDataItem.getHtmlText() + rtHtml2.getText();
    } else {
        // on problem devices only the code of this branch is executed               
    }

    ...

    mode.finish();
    return true;
}

Дополнительная проверка clipDataItem.getHtmlText ()! = Null на проблемных устройствах дает false

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...