java - 如何在 Android 中访问剪贴板数据?

标签 java android clipboard

我如何从剪贴板获取数据。我想获取数据并在 toast 中显示。意味着在我的 android 手机中的任何编辑文本中.. 什么时候长按并复制一些字符串值.. 那应该是 toast。我怎样才能做到这一点?在我得到的每个教程中,他们都从指定的 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);

我还是不明白..请帮忙!!!

最佳答案

Java

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
    }
});

Kotlin

val clipBoardManager = context.getSystemService(CLIPBOARD_SERVICE) as ClipboardManager
clipBoardManager.addPrimaryClipChangedListener {
    val copiedString = clipBoardManager.primaryClip?.getItemAt(0)?.text?.toString()
    // Your code
}

希望对你有帮助

关于java - 如何在 Android 中访问剪贴板数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42806895/

相关文章:

java - 如何将数据按顺序写入Excel文件

android-maven-plugin - Google Play 服务抛出的 android.content.res.Resources$NotFoundException

android - 如何打开并检查 Play Protect 是否启用或禁用

javascript - Clipboard.js 将文本复制到最靠近 <pre> 的一侧

ios - 如何让标准的 iPhone Copy 气泡出现在 UIImage 上?

java - 在 Java 中更新 BigQuery 架构/添加新列

java - 将项目插入列表,对其进行排序并在插入后检索项目的索引

java - 为什么 Eclipse 忽略了 .project 文件?

Android Jetpack 导航 A ->B->C->A

python - 使用 PySide 从 KDE 剪贴板获取 HTML 源代码或 Markdown 文本