java - 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();
}
}
该按钮工作正常,除非当它到达检查主剪辑中是否有项目的行时,它给了我一个空指针异常。我在文档上读到这是因为您只能从主线程获取用户的剪贴板数据。有什么方法可以在后台获取用户的剪贴板数据而不需要他们进入应用程序?
解决方案
推荐阅读
- c++ - C++ 预处理生成变量成员、setter 和 map
- elasticsearch - 在 ElasticSearch 的范围查询中,“from”和“gte”/“gt”是否等效?
- regex - 如何获取捕获组的计数,然后用特定字符替换字符?
- reactjs - Azure 存储静态站点环境变量
- reactjs - 是否有可能在 chartjs 图表上获得 X 轴和 Y 轴的显示最小值和最大值?
- php - Yii2:如何更改系统消息翻译文件
- qt - Qt Quick - 在组件状态更改时动画图像转换的最佳方法是什么?
- python - 返回特定日期的工作日数(Python)
- android - RecyclerView.ViewHolder中的Android ScrollView:防止ItemTouchHelper获取触摸事件?
- amazon-web-services - 在 Amazon QuickSight 中使用来自不同数据源的数据绘制趋势图