Как получить доступ к данным буфера обмена в 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()
}