Как получить доступ к данным буфера обмена в Android?

Как я могу получить данные из буфера обмена. Я хочу, чтобы получить данные и показать в тосте. Средства В моем телефоне Android в любой текст редактирования.. Когда будет долго нажимать и копировать некоторые строковые значения.. Это должно быть тост. Как я могу достичь этого?? В каждом уроке, который я получаю, они копируют с указанного editText. Я хочу, чтобы где-нибудь в моем телефоне я скопировал текст... Мне просто нужно оценить эту конкретную строку... И clipboard.getText();тоже не работает.

Я старался

public class ClipBoardDataManager extends BroadcastReceiver {

        public ClipBoardDataManager() {
        }

        @Override
        public void onReceive(Context context, Intent intent) {

            String callNumber = intent.getStringExtra(Intent.EXTRA_PHONE_NUMBER);

            ClipboardManager clipboard = (ClipboardManager) ctx.getSystemService(Context.CLIPBOARD_SERVICE);

            ClipData myClip = ClipData.newPlainText("text", clipboard.getText());
            clipboard.setPrimaryClip(myClip);


            ClipData abc = clipboard.getPrimaryClip();
            ClipData.Item item = abc.getItemAt(0);

            Toast.makeText(ctx,item.toString(),Toast.LENGTH_SHORT).show();


        }
    }

и зарегистрируйтесь.

IntentFilter intentFilter1 = new IntentFilter(String.valueOf(Intent.FILL_IN_CLIP_DATA));

ctx.registerReceiver(clipBoardDataManager,intentFilter1);

Тем не менее я не понимаю.. Пожалуйста, помогите!!!

2 ответа

ClipboardManager clipBoard = (ClipboardManager)getSystemService(CLIPBOARD_SERVICE);
clipBoard.addPrimaryClipChangedListener(new OnPrimaryClipChangedListener() {

    @Override
    public void onPrimaryClipChanged() {
        ClipData clipData = clipBoard.getPrimaryClip();
        ClipData.Item item = clipData.getItemAt(0);
        String text = item.getText().toString();

        // Access your context here using YourActivityName.this
    }
});

Надеюсь это поможет

Котлин

Чистое, многоразовое и простое рабочее решение с использованием функции расширения -

      fun Context.getFromClipBoard() : String? {
    val clipBoardManager = getSystemService(CLIPBOARD_SERVICE) as ClipboardManager
    return clipBoardManager.primaryClip?.getItemAt(0)?.text?.toString()
}
Другие вопросы по тегам