日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關咨詢
選擇下列產(chǎn)品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
創(chuàng)新互聯(lián)鴻蒙OS教程:鴻蒙OS剪貼板開發(fā)指導

場景介紹

讓客戶滿意是我們工作的目標,不斷超越客戶的期望值來自于我們對這個行業(yè)的熱愛。我們立志把好的技術通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領域值得信任、有價值的長期合作伙伴,公司提供的服務項目有:域名注冊、虛擬主機、營銷軟件、網(wǎng)站建設、金山網(wǎng)站維護、網(wǎng)站推廣。

同一設備的應用程序 A、B 之間可以借助系統(tǒng)剪貼板服務完成簡單數(shù)據(jù)的傳遞,即應用程序 A 向剪貼板服務寫入數(shù)據(jù)后,應用程序 B 可以從中讀取出數(shù)據(jù)。在滿足分布式剪貼板服務的使用條件時,應用程序 A、B 也可以來自組網(wǎng)內(nèi)的不同設備。

圖1剪貼板服務示意圖

在使用剪貼板服務時,需要注意以下幾點:

  • 只有在前臺獲取到焦點的應用才有讀取系統(tǒng)剪貼板的權限(系統(tǒng)默認輸入法應用除外)。
  • 寫入到剪貼板服務中的剪貼板數(shù)據(jù)不會隨應用程序結束而銷毀。
  • 對同一用戶而言,寫入剪貼板服務的數(shù)據(jù)會被下一次寫入的剪貼板數(shù)據(jù)所覆蓋。
  • 如果設備滿足分布式組網(wǎng)條件,且進行復制操作的設備打開了剪貼板分布式開關,未配置“僅在本地”標志位的剪貼板數(shù)據(jù)里的 MIME 類型為純文本和 HTML 的內(nèi)容可以被組網(wǎng)內(nèi)其他打開了剪貼板分布式開關的設備粘貼出來。
  • 在同一設備內(nèi),剪貼板單次傳遞內(nèi)容不應超過 800KB。在分布式場景下多設備間傳遞時,每次傳遞內(nèi)容不應超過 64KB。

接口說明

SystemPasteboard 提供系統(tǒng)剪貼板操作的相關接口,比如復制、粘貼、配置回調(diào)等。PasteData 是剪貼板服務操作的數(shù)據(jù)對象,一個 PasteData 由若干個內(nèi)容節(jié)點(PasteData.Record)和一個屬性集合對象(PasteData.DataProperty)組成。Record 是存放剪貼板數(shù)據(jù)內(nèi)容信息的最小單位,每個 Record 都有其特定的 MIME 類型,如純文本、HTML、URI、Intent。剪貼板數(shù)據(jù)的屬性信息存在放 DataProperty 中,包括標簽、時間戳、“僅在本地”標記位等。

SystemPasteboard

SystemPasteboard 提供系統(tǒng)剪貼板服務的操作接口,比如復制、粘貼、配置回調(diào)等。

接口名 描述
getSystemPasteboard(Context context) 獲取系統(tǒng)剪切板服務的對象實例。
getPasteData() 讀取當前系統(tǒng)剪貼板中的數(shù)據(jù)。
hasPasteData() 判斷當前系統(tǒng)剪貼板中是否有內(nèi)容。
setPasteData(PasteData data) 將剪貼板數(shù)據(jù)寫入到系統(tǒng)剪貼板。
clear() 清空系統(tǒng)剪貼板數(shù)據(jù)。
addPasteDataChangedListener(IPasteDataChangedListener listener) 用戶程序添加系統(tǒng)剪貼板數(shù)據(jù)變化的回調(diào),當系統(tǒng)剪貼板數(shù)據(jù)發(fā)生變化時,會觸發(fā)用戶程序的回調(diào)實現(xiàn)。
removePasteDataChangedListener(IPasteDataChangedListener listener) 用戶程序移除系統(tǒng)剪貼板數(shù)據(jù)變化的回調(diào)。

PasteData

PasteData 是剪貼板服務操作的數(shù)據(jù)對象,其中內(nèi)容節(jié)點定義為 PasteData.Record,屬性集合定義為 PasteData.DataProperty。

接口名 描述
PasteData() 構造器,創(chuàng)建一個空內(nèi)容數(shù)據(jù)對象。
createPlainTextData(CharSequence text) 構建一個包含純文本內(nèi)容節(jié)點的數(shù)據(jù)對象。
creatHtmlData(String htmlText) 構建一個包含 HTML 內(nèi)容節(jié)點的數(shù)據(jù)對象。
creatUriData(Uri uri) 構建一個包含 URI 內(nèi)容節(jié)點的數(shù)據(jù)對象。
creatIntentData(Intent intent) 構建一個包含 Intent 內(nèi)容節(jié)點的數(shù)據(jù)對象。
getPrimaryMimeType() 獲取數(shù)據(jù)對象中首個內(nèi)容節(jié)點的 MIME 類型,如果沒有查詢到內(nèi)容,將返回一個空字符串。
getPrimaryText() 獲取數(shù)據(jù)對象中首個內(nèi)容節(jié)點的純文本內(nèi)容,如果沒有查詢到內(nèi)容,將返回一個空對象。
addTextRecord(CharSequence text) 向數(shù)據(jù)對象中添加一個純文本內(nèi)容節(jié)點,該方法會自動更新數(shù)據(jù)屬性中的MIME類型集合,最多只能添加 128 個內(nèi)容節(jié)點。
addRecord(Record record) 向數(shù)據(jù)對象中添加一個內(nèi)容節(jié)點,該方法會自動更新數(shù)據(jù)屬性中的 MIME 類型集合,最多只能添加 128 個內(nèi)容節(jié)點。
getRecordCount() 獲取數(shù)據(jù)對象中內(nèi)容節(jié)點的數(shù)量。
getRecordAt(int index) 獲取數(shù)據(jù)對象在指定下標處的內(nèi)容節(jié)點,如果操作失敗會返回空對象。
removeRecordAt(int index) 移除數(shù)據(jù)對象在指定下標處的內(nèi)容節(jié)點,如果操作成功會返回 true,操作失敗會返回 false。
getMimeTypes() 獲取數(shù)據(jù)對象中上所有內(nèi)容節(jié)點的MIME類型列表,當內(nèi)容節(jié)點為空時,返回列表為空對象。
getProperty() 獲取該數(shù)據(jù)對象的屬性集合成員。
常量名 描述
MIMETYPE_TEXT_PLAIN= "text/plain" 純文本的 MIME 類型定義。
MIMETYPE_TEXT_HTML= "text/html" HTML的 MIM E類型定義。
MIMETYPE_TEXT_URI= "text/uri" URI的 MIME 類型定義。
MIMETYPE_TEXT_INTENT= "text/ohos.intent" Intent的 MIME 類型定義。
MAX_RECORD_NUM=128 單個 PasteData 中所能包含的 Record 的數(shù)量上限。

PasteData.Record

一個 PasteData 中包含若干個特定MIME類型的 PasteData.Record,每個 Record 是存放剪貼板數(shù)據(jù)內(nèi)容信息的最小單位。

接口名 描述
createPlainTextRecord(CharSequence text) 構造一個 MIME 類型為純文本的內(nèi)容節(jié)點。
createHtmlTextRecord(String htmlText) 構造一個 MIME 類型為HTML的內(nèi)容節(jié)點。
createUriRecord(Uri uri) 構造一個 MIME 類型為URI的內(nèi)容節(jié)點。
createIntentRecord(Intent intent) 構造一個 MIME 類型為Intent的內(nèi)容節(jié)點。
getPlainText() 獲取該內(nèi)容節(jié)點中的文本內(nèi)容,如果沒有內(nèi)容將返回空對象。
getHtmlText() 獲取該內(nèi)容節(jié)點中的 HTML 內(nèi)容,如果沒有內(nèi)容將返回空對象。
getUri() 獲取該內(nèi)容節(jié)點中的 URI 內(nèi)容,如果沒有內(nèi)容將返回空對象。
getIntent() 獲取該內(nèi)容節(jié)點中的 Intent 內(nèi)容,如果沒有內(nèi)容將返回空對象。
getMimeType() 獲取該內(nèi)容節(jié)點的 MIME 類型。
convertToText(Context context) 將該內(nèi)容節(jié)點的內(nèi)容轉為文本形式。

PasteData.DataProperty

每個 PasteData 中都有一個 PasteData.DataProperty 成員,其中存放著該數(shù)據(jù)對象的屬性集合,例如自定義標簽、MIME 類型集合列表,“僅在本地”標記位等。

接口名 描述
getMimeTypes() 獲取所屬數(shù)據(jù)對象的 MIME 類型集合列表,當內(nèi)容節(jié)點為空時,返回列表為空對象。
hasMimeType(String mimeType) 判斷所屬數(shù)據(jù)對象中是否包含特定 MIME類型的內(nèi)容。
getTimestamp() 獲取所屬數(shù)據(jù)對象被寫入系統(tǒng)剪貼板時的時間戳,如果該數(shù)據(jù)對象尚未被寫入,則返回0。
setTag(CharSequence tag) 設置自定義標簽。
getTag() 獲取自定義標簽。
setAdditions(PacMap extraProps) 設置一些附加鍵值對信息。
getAdditions() 獲取附加鍵值對信息。
setLocalOnly(boolean isLocalonly) 配置“僅在本地”標志位,默認配置為false,表示此數(shù)據(jù)對象能在分布式剪貼板場景下跨設備傳遞,否則只在本地設備使用。
isLocalOnly() 查詢“僅在本地”標志位。

IPasteDataChangedListener

IPasteDataChangedListener 是定義剪貼板數(shù)據(jù)變化回調(diào)的接口類,開發(fā)者需要實現(xiàn)此接口來編碼觸發(fā)回調(diào)時的處理邏輯。

接口名 描述
onChanged() 當系統(tǒng)剪貼板數(shù)據(jù)發(fā)生變化時的回調(diào)接口。

開發(fā)步驟

  1. 應用A獲取系統(tǒng)剪貼板服務。
   SystemPasteboard pasteboard = SystemPasteboard.getSystemPasteboard(appContext);

  1. 應用A向系統(tǒng)剪貼板中寫入一條純文本數(shù)據(jù)。
   if (pasteboard != null) {
       pasteboard.setPasteData(PasteData.creatPlainTextData("Hello, world!"));
   }

  1. 應用 B 從系統(tǒng)剪貼板讀取數(shù)據(jù),將數(shù)據(jù)對象中的首個文本類型(純文本/HTML)內(nèi)容信息在控件中顯示,忽略其他類型內(nèi)容。
   PasteData pasteData = pasteboard.getPasteData();
   if (pasteData == null) {
       return;
   }
   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++) {
           Record record = pasteData.getRecordAt(i);
           String mimeType = record.getMimeType();
           if (mimeType.equals(PasteData.MIMETYPE_TEXT_HTML)) {
               text.setText(record.getHtmlText());
               break;
           } else if (mimeType.equals(PasteData.MIMETYPE_TEXT_PLAIN)) {
               text.setText(record.getPlainText().toString());
               break;
           }
       }
   }

  1. 應用 C 注冊添加系統(tǒng)剪貼板數(shù)據(jù)變化回調(diào),當系統(tǒng)剪貼板數(shù)據(jù)發(fā)生變化時觸發(fā)處理邏輯。
   IPasteDataChangedListener listener = new IPasteDataChangedListener() {
       @Override
       public void onChanged() {
           PasteData pasteData = pasteboard.getPasteData();
           if (pasteData == null) {
               return;
           }
           // Operations to handle data change on the system pasteboard
       }
   };
   pasteboard.addPasteDataChangedListener(listener);

標題名稱:創(chuàng)新互聯(lián)鴻蒙OS教程:鴻蒙OS剪貼板開發(fā)指導
URL標題:http://www.5511xx.com/article/ccoeesj.html