粘貼版是一個常用的功能,用戶通過系統剪貼板服務,可實現應用之間的簡單數據傳遞。例如:在應用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文章
1980瀏覽量
30287 -
OpenHarmony
+關注
關注
25文章
3728瀏覽量
16405
發布評論請先 登錄
相關推薦
鴻蒙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
評論