粘贴版是一个常用的功能,用户通过系统剪贴板服务,可实现应用之间的简单数据传递。例如:在应用A中复制的数据,可以在应用B中粘贴,反之亦可。
效果如图:
关键代码如下:
public class PasteboardUtils {
private static final HiLogLabel TAG = new HiLogLabel(HiLog.LOG_APP,0x0,"蛟龙腾飞--粘贴版");
private SystemPasteboard pasteboard;
public PasteboardUtils(Context context) {
initPasteboard(context);
}
// 复制到粘贴板
public void copyText(String text) {
pasteboard.setPasteData(PasteData.creatPlainTextData(text));
}
// 粘贴
public String pasteText() {
String result = "";
PasteData pasteData = pasteboard.getPasteData();
if (pasteData == null) {
return result;
}
PasteData.DataProperty dataProperty = pasteData.getProperty();
boolean hasHtml = dataProperty.hasMimeType(PasteData.MIMETYPE_TEXT_HTML);
boolean hasText = dataProperty.hasMimeType(PasteData.MIMETYPE_TEXT_PLAIN);
if (hasHtml || hasText) {
for (int i = 0; i < pasteData.getRecordCount(); i++) {
PasteData.Record record = pasteData.getRecordAt(i);
String mimeType = record.getMimeType();
if (mimeType.equals(PasteData.MIMETYPE_TEXT_HTML)) {
result = record.getHtmlText();
} else if (mimeType.equals(PasteData.MIMETYPE_TEXT_PLAIN)) {
result = record.getPlainText().toString();
} else {
HiLog.info(TAG, "%{public}s", "getPasteData mimeType :" + mimeType);
}
}
}
return result;
}
// 监听粘贴版内容
private final IPasteDataChangedListener listener = new IPasteDataChangedListener() {
@Override
public void onChanged() {
PasteData pasteData = pasteboard.getPasteData();
if (pasteData != null) {
HiLog.info(TAG,"粘贴版内容改变:"+pasteData);
}
}
};
// 清空粘贴板
public void clearPasteboard(Component component) {
if (pasteboard != null) {
pasteboard.clear();
}
}
//初始化
private void initPasteboard(Context context) {
pasteboard = SystemPasteboard.getSystemPasteboard(context);
pasteboard.addPasteDataChangedListener(listener);
}
}
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
HarmonyOS
+关注
关注
79文章
1965浏览量
29953 -
OpenHarmony
+关注
关注
25文章
3629浏览量
16030
发布评论请先 登录
相关推荐
鸿蒙OS 剪贴板开发指导
场景介绍 同一设备的应用程序 A、B 之间可以借助系统剪贴板服务完成简单数据的传递,即应用程序 A 向剪贴板服务写入数据后,应用程序 B 可以从中读取出数据。在满足分布式剪贴板服务的使用条件
求助labview实现“选择性粘贴”的方法
目前手上有个应用程序,生成的数据可以复制到剪贴板中,在Excel中选择“选择性粘贴”-》“粘贴链接”功能后,excel中显示的数据是前面那个软件的实时数据。现在我想把这个功能在labview里
发表于 01-12 11:43
十万火急,为何生成exe后方法节点没有数据输出,求大神相助
大神们好,请教一下为什么这个程序在vi中运行可以读取到剪贴板的数据,但生成exe后读取不到剪贴板的数据,数据显示为空白的。
发表于 09-02 15:15
HarmonyOS应用开发-剪贴板功能实现
粘贴版是一个常用的功能,用户通过系统剪贴板服务,可实现应用之间的简单数据传递。例如:在应用A中复制的数据,可以在应用B中粘贴,反之亦可。效果如图: 关键代码如下:public class
发表于 03-30 10:48
OpenHarmony 3.1 Release最全资料免费获取
对静态壁纸管理能力的支持 - 新增对下载服务管理能力的支持 主要涉及如下需求: I4U2WR 新增特性:时间时区同步管理 I4ZTTE【新增特性】剪贴板数据项-支持将剪贴板数据项强制转换为文本
发表于 03-31 14:23
小米手机和PC的共享剪贴板上线,PC端装云服务客户端就OK
刘鸣称:“看到有用户在要共享剪贴板,其实我们已经支持了,只需要电脑端装小米云服务客户端就可以了。”
苹果iOS应用程序不经过用户同意读取剪贴板数据
据Macrumors报道,最新研究显示数十种流行的iOS应用程序,在未经用户同意的情况下,读取剪贴板的内容,其中可能包含敏感信息。
iOS 14的隐私功能显示了复制到剪贴板的TikTok阅读文本
开发人员开始下载并使用iOS 14 beta版,他们发现流行的视频共享平台TikTok是读取用户复制到剪贴板的文本的应用程序之一。从下面的视频中可以看到,在TikTok应用程序打开时,苹果的新隐私警告继续出现在屏幕上。
ADP1074: 带有活性剪贴板和 <span class="analog-coupler" >i </span> Cloupler数据表的孤立、同步前向控制器 ADI
电子发烧友网为你提供ADI(ADI)ADP1074: 带有活性剪贴板和 i
发表于 10-08 16:41
怎么将剪贴板数据导入到labview数组
将剪贴板数据导入到LabVIEW数组可以通过以下步骤完成。首先,需要使用LabVIEW自带的函数库VIs来实现剪贴板数据的获取和处理。 第一步是获取剪贴板数据。LabVIEW提供了Cl
评论