日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

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

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷(xiāo)解決方案
創(chuàng)新互聯(lián)鴻蒙OS教程:鴻蒙OS訪(fǎng)問(wèn)Data

開(kāi)發(fā)者可以通過(guò) DataAbilityHelper 類(lèi)來(lái)訪(fǎng)問(wèn)當(dāng)前應(yīng)用或其他應(yīng)用提供的共享數(shù)據(jù)。 DataAbilityHelper 作為客戶(hù)端,與提供方的 Data 進(jìn)行通信。Data 接收到請(qǐng)求后,執(zhí)行相應(yīng)的處理,并返回結(jié)果。DataAbilityHelper 提供了一系列與 Data Ability 對(duì)應(yīng)的方法。

創(chuàng)新互聯(lián)建站專(zhuān)注于彭州企業(yè)網(wǎng)站建設(shè),成都響應(yīng)式網(wǎng)站建設(shè)公司,成都商城網(wǎng)站開(kāi)發(fā)。彭州網(wǎng)站建設(shè)公司,為彭州等地區(qū)提供建站服務(wù)。全流程按需定制,專(zhuān)業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,創(chuàng)新互聯(lián)建站專(zhuān)業(yè)和態(tài)度為您提供的服務(wù)

下面介紹 DataAbilityHelper 具體的使用步驟。

聲明使用權(quán)限

如果待訪(fǎng)問(wèn)的 Data 聲明了訪(fǎng)問(wèn)需要權(quán)限,則訪(fǎng)問(wèn)此 Data 需要在配置文件中聲明需要此權(quán)限。聲明請(qǐng)參考權(quán)限申請(qǐng)字段說(shuō)明。

"reqPermissions": [
    {
        "name": "com.example.myapplication5.DataAbility.DATA"
    }
]

創(chuàng)建 DataAbilityHelper

DataAbilityHelper為開(kāi)發(fā)者提供了creator()方法來(lái)創(chuàng)建DataAbilityHelper實(shí)例。該方法為靜態(tài)方法,有多個(gè)重載。最常見(jiàn)的方法是通過(guò)傳入一個(gè)context對(duì)象來(lái)創(chuàng)建DataAbilityHelper對(duì)象。

獲取helper對(duì)象示例:

DataAbilityHelper helper = DataAbilityHelper.creator(this);

訪(fǎng)問(wèn)Data Ability

DataAbilityHelper 為開(kāi)發(fā)者提供了一系列的接口來(lái)訪(fǎng)問(wèn)不同類(lèi)型的數(shù)據(jù)(文件、數(shù)據(jù)庫(kù)等)。

  • 訪(fǎng)問(wèn)文件

DataAbilityHelper 為開(kāi)發(fā)者提供了 FileDescriptor openFile (Uri uri, String mode)方法來(lái)操作文件。此方法需要傳入兩個(gè)參數(shù),其中 uri 用來(lái)確定目標(biāo)資源路徑,mode 用來(lái)指定打開(kāi)文件的方式,可選方式包含“r”(讀), “w”(寫(xiě)), “rw”(讀寫(xiě)),“wt”(覆蓋寫(xiě)),“wa”(追加寫(xiě)),“rwt”(覆蓋寫(xiě)且可讀)。

該方法返回一個(gè)目標(biāo)文件的 FD(文件描述符),把文件描述符封裝成流,開(kāi)發(fā)者就可以對(duì)文件流進(jìn)行自定義處理。

訪(fǎng)問(wèn)文件示例:

  // 讀取文件描述符
  FileDescriptor fd = helper.openFile(uri, "r");
  FileInputStream fis = new FileInputStream(fd);

  • 訪(fǎng)問(wèn)數(shù)據(jù)庫(kù)

DataAbilityHelper 為開(kāi)發(fā)者提供了增、刪、改、查以及批量處理等方法來(lái)操作數(shù)據(jù)庫(kù)。

方法 描述
ResultSet query(Uri uri, String[] columns, DataAbilityPredicates predicates) 查詢(xún)數(shù)據(jù)庫(kù)
int insert(Uri uri, ValuesBucket value) 向數(shù)據(jù)庫(kù)中插入單條數(shù)據(jù)
int batchInsert(Uri uri, ValuesBucket[] values) 向數(shù)據(jù)庫(kù)中插入多條數(shù)據(jù)
int delete(Uri uri, DataAbilityPredicates predicates) 刪除一條或多條數(shù)據(jù)
int update(Uri uri, ValuesBucket value, DataAbilityPredicates predicates) 更新數(shù)據(jù)庫(kù)
DataAbilityResult[] executeBatch(ArrayList operations) 批量操作數(shù)據(jù)庫(kù)

這些方法的使用說(shuō)明如下:

  • query()

查詢(xún)方法,其中 uri 為目標(biāo)資源路徑,columns 為想要查詢(xún)的字段。開(kāi)發(fā)者的查詢(xún)條件可以通過(guò) DataAbilityPredicates 來(lái)構(gòu)建。查詢(xún)用戶(hù)表中 id 在 101-103 之間的用戶(hù),并把結(jié)果打印出來(lái),代碼示例如下:

    DataAbilityHelper helper = DataAbilityHelper.creator(this);

     
    // 構(gòu)造查詢(xún)條件
    DataAbilityPredicates predicates = new DataAbilityPredicates();
    predicates.between("userId", 101, 103);

     
    // 進(jìn)行查詢(xún)
    ResultSet resultSet = helper.query(uri,columns,predicates);

     
    // 處理結(jié)果
    resultSet.goToFirstRow();
    do{
        // 在此處理ResultSet中的記錄;
    }while(resultSet.goToNextRow());

  • insert()

新增方法,其中 uri 為目標(biāo)資源路徑,ValuesBucket 為要新增的對(duì)象。插入一條用戶(hù)信息的代碼示例如下:

    DataAbilityHelper helper = DataAbilityHelper.creator(this);

     
    // 構(gòu)造插入數(shù)據(jù)
    ValuesBucket valuesBucket = new ValuesBucket();
    valuesBucket.putString("name", "Tom");
    valuesBucket.putInteger("age", 12);
    helper.insert(uri, valuesBucket);

  • batchInsert()

批量插入方法,和 insert() 類(lèi)似。批量插入用戶(hù)信息的代碼示例如下:

    DataAbilityHelper helper = DataAbilityHelper.creator(this);

     
    // 構(gòu)造插入數(shù)據(jù)
    ValuesBucket[] values = new ValuesBucket[2];
    value[0] = new ValuesBucket();
    value[0].putString("name", "Tom");
    value[0].putInteger("age", 12);
    value[1] = new ValuesBucket();
    value[1].putString("name", "Tom1");
    value[1].putInteger("age", 16);
    helper.batchInsert(uri, values);

  • delete()

刪除方法,其中刪除條件可以通過(guò) DataAbilityPredicates 來(lái)構(gòu)建。刪除用戶(hù)表中 id 在 101-103 之間的用戶(hù),代碼示例如下:

    DataAbilityHelper helper = DataAbilityHelper.creator(this);

     
    // 構(gòu)造刪除條件
    DataAbilityPredicates predicates = new DataAbilityPredicates();
    predicates.between("userId", 101,103);
    helper.delete(uri,predicates);

  • update()

更新方法,更新數(shù)據(jù)由 ValuesBucket 傳入,更新條件由 DataAbilityPredicates 來(lái)構(gòu)建。更新 id 為 102 的用戶(hù),代碼示例如下:

    DataAbilityHelper helper = DataAbilityHelper.creator(this);

     
    // 構(gòu)造更新條件
    DataAbilityPredicates predicates = new DataAbilityPredicates();
    predicates.equalTo("userId",102);

     
    // 構(gòu)造更新數(shù)據(jù)
    ValuesBucket valuesBucket = new ValuesBucket();
    valuesBucket.putString("name", "Tom");
    valuesBucket.putInteger("age", 12);
    helper.update(uri, valuesBucket, predicates);

  • executeBatch()

此方法用來(lái)執(zhí)行批量操作。DataAbilityOperation 中提供了設(shè)置操作類(lèi)型、數(shù)據(jù)和操作條件的方法,開(kāi)發(fā)者可自行設(shè)置自己要執(zhí)行的數(shù)據(jù)庫(kù)操作。插入多條數(shù)據(jù)的代碼示例如下:

    DataAbilityHelper helper = DataAbilityHelper.creator(abilityObj, insertUri);

     
    // 構(gòu)造批量操作
    ValuesBucket value1 = initSingleValue();
    DataAbilityOperation opt1 = DataAbilityOperation.newInsertBuilder(insertUri).withValuesBucket(value1).build();
    ValuesBucket value2 = initSingleValue2();
    DataAbilityOperation opt2 = DataAbilityOperation.newInsertBuilder(insertUri).withValuesBucket(value2).build();
    ArrayList operations = new ArrayList();
    operations.add(opt1);
    operations.add(opt2);
    DataAbilityResult[] result = helper.executeBatch(insertUri, operations);

網(wǎng)站名稱(chēng):創(chuàng)新互聯(lián)鴻蒙OS教程:鴻蒙OS訪(fǎng)問(wèn)Data
網(wǎng)頁(yè)鏈接:http://www.dlmjj.cn/article/dpphphe.html