首页 > 解决方案 > getPrimaryClip() 正在返回空对象引用

问题描述

我正在尝试制作一个应用程序,该应用程序将通过按下通知上的按钮来获取用户的剪贴板。我在通知广播接收器中的代码在这里:

if (intent.getAction().equals(SEND_CLIPBOARD_ACTION)) {
            ClipboardManager clipboardManager =
                    (ClipboardManager) context.getSystemService(CLIPBOARD_SERVICE);
            ClipData primaryClip = clipboardManager.getPrimaryClip();
            if (primaryClip.getItemCount() > 0) {
                CharSequence text = primaryClip.getItemAt(0).coerceToText(context);
                if (text != null) {
                    String clipboard = clipboardManager.getPrimaryClip().toString();
                    Utils utils = Utils.getInstance(context);
                    utils.getPairedPC(intent.getStringExtra(PC_ADDRESS_KEY))
                            .setClipboardCache(clipboard);
                    Toast.makeText(context, "Clipboard Sent!", Toast.LENGTH_SHORT).show();
                }
            } else {
                Toast.makeText(context, "Clipboard Empty!", Toast.LENGTH_SHORT).show();
            }
        }

该按钮工作正常,除非当它到达检查主剪辑中是否有项目的行时,它给了我一个空指针异常。我在文档上读到这是因为您只能从主线程获取用户的剪贴板数据。有什么方法可以在后台获取用户的剪贴板数据而不需要他们进入应用程序?

标签: javaandroidmobilemobile-development

解决方案


推荐阅读