鸿蒙开发接口Ability框架:【DataAbilityHelper模块(JS端SDK接口)】

news2024/11/17 23:39:51

 DataAbilityHelper模块(JS端SDK接口)

说明:

本模块首批接口从API version 7开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
本模块接口仅可在FA模型下使用。

使用说明

使用前根据具体情况引入如下模块

import featureAbility from '@ohos.ability.featureAbility'
import ohos_data_ability from '@ohos.data.dataAbility'
import ohos_data_rdb from '@ohos.data.rdb'

开发前请熟悉鸿蒙开发指导文档:gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md点击或者复制转到。

DataAbilityHelper.openFile

openFile(uri: string, mode: string, callback: AsyncCallback<number>): void

在指定的远程路径中打开文件(callback形式)。

系统能力:SystemCapability.Ability.AbilityRuntime.FAModel

参数:

名称类型必填描述
uristring指示要打开的文件的路径。
modestring指示文件打开模式‘rwt’。
callbackAsyncCallback<number>被指定的回调方法,返回文件描述符。

示例:

import featureAbility from '@ohos.ability.featureAbility'
var DAHelper = featureAbility.acquireDataAbilityHelper(
    "dataability:///com.example.DataAbility"
);
var mode = "rwt";
DAHelper.openFile(
    "dataability:///com.example.DataAbility",
    mode,
    (err) => {
        console.info("==========================>Called=======================>");
});

DataAbilityHelper.openFile

openFile(uri: string, mode: string): Promise<number>

在指定的远程路径中打开文件(promise形式)。

系统能力:SystemCapability.Ability.AbilityRuntime.FAModel

参数:

名称类型必填描述
uristring指示要打开的文件的路径。
modestring指示文件打开模式‘rwt’。

返回值:

类型说明
Promise<number>返回文件描述符。

示例:

import featureAbility from '@ohos.ability.featureAbility'
var DAHelper = featureAbility.acquireDataAbilityHelper(
    "dataability:///com.example.DataAbility"
);
var mode = "rwt";
DAHelper.openFile(
    "dataability:///com.example.DataAbility",
    mode).then((data) => {
        console.info("==========================>openFileCallback=======================>");
});

DataAbilityHelper.on

on(type: 'dataChange', uri: string, callback: AsyncCallback<void>): void

注册观察者以观察给定uri指定的数据callback通知。

系统能力:SystemCapability.Ability.AbilityRuntime.FAModel

参数:

名称类型必填描述
typestring数据更改。
uristring指示要操作的数据的路径。
callbackAsyncCallback<void>指示数据更改时的回调。

示例:

import featureAbility from '@ohos.ability.featureAbility'
var helper = featureAbility.acquireDataAbilityHelper(
    "dataability:///com.example.DataAbility"
);
function onChangeNotify() {
    console.info("==========================>onChangeNotify=======================>");
};
helper.on(
    "dataChange",
    "dataability:///com.example.DataAbility",
    onChangeNotify
)

DataAbilityHelper.off

off(type: 'dataChange', uri: string, callback?: AsyncCallback<void>): void

注消观察者以停止观察给定uri指定的数据callback通知。

系统能力:SystemCapability.Ability.AbilityRuntime.FAModel

参数:

名称类型必填描述
typestring数据更改。
uristring指示要操作的数据的路径。
callbackAsyncCallback<void>指示已注册的回调。

示例:

import featureAbility from '@ohos.ability.featureAbility'
var helper = featureAbility.acquireDataAbilityHelper(
    "dataability:///com.example.DataAbility"
);
function onChangeNotify() {
    console.info("==========================>onChangeNotify=======================>");
};
helper.off(
    "dataChange",
    "dataability:///com.example.DataAbility",
)
helper.off(
    "dataChange",
    "dataability:///com.example.DataAbility",
    onChangeNotify
)

DataAbilityHelper.getType

getType(uri: string, callback: AsyncCallback<string>): void

获取给定URI指定数据的MIME类型(callback形式)。

系统能力:SystemCapability.Ability.AbilityRuntime.FAModel

参数:

名称类型必填描述
uristring指示要操作的数据的路径。
callbackAsyncCallback<string>回调方法,返回与uri指定的数据匹配的MIME类型。

示例:

import featureAbility from '@ohos.ability.featureAbility'
var DAHelper = featureAbility.acquireDataAbilityHelper(
    "dataability:///com.example.DataAbility"
);
DAHelper.getType(
    "dataability:///com.example.DataAbility",
    (err, data) => {
        console.info("==========================>Called=======================>");
});

DataAbilityHelper.getType

getType(uri: string): Promise<string>

获取给定URI指定数据的MIME类型(Promise形式)。

系统能力:SystemCapability.Ability.AbilityRuntime.FAModel

参数:

名称类型必填描述
uristring指示要操作的数据的路径。

返回值:

类型说明
Promise<string>返回与uri指定的数据匹配的MIME类型。

示例:

import featureAbility from '@ohos.ability.featureAbility'
var DAHelper = featureAbility.acquireDataAbilityHelper(
    "dataability:///com.example.DataAbility"
);
DAHelper.getType(
    "dataability:///com.example.DataAbility"
    ).then((data) => {
        console.info("==========================>getTypeCallback=======================>");
});

DataAbilityHelper.getFileTypes

getFileTypes(uri: string, mimeTypeFilter: string, callback: AsyncCallback<Array<string>>): void

获取支持的文件的MIME类型(callback形式)。

系统能力:SystemCapability.Ability.AbilityRuntime.FAModel

参数:

名称类型必填描述
uristring指示要获取的文件的路径。
mimeTypeFilterstring指示要获取的文件的MIME类型。
callbackAsyncCallback<Array<string>>回调方法,返回匹配的MIME类型数组。

示例:

import featureAbility from '@ohos.ability.featureAbility'
var DAHelper = featureAbility.acquireDataAbilityHelper(
    "dataability:///com.example.DataAbility"
);
DAHelper.getFileTypes(
    "dataability:///com.example.DataAbility",
    "image/*",
    (err, data) => {
        console.info("==========================>Called=======================>");
});

DataAbilityHelper.getFileTypes

getFileTypes(uri: string, mimeTypeFilter: string): Promise<Array<string>>

获取支持的文件的MIME类型(Promise形式)。

系统能力:SystemCapability.Ability.AbilityRuntime.FAModel

参数:

名称类型必填描述
uristring指示要获取的文件的路径。
mimeTypeFilterstring指示要获取的文件的MIME类型。

返回值:

类型说明
Promise<Array<string>>返回匹配的MIME类型数组。

示例:

import featureAbility from '@ohos.ability.featureAbility'
var DAHelper = featureAbility.acquireDataAbilityHelper(
    "dataability:///com.example.DataAbility"
);
DAHelper.getFileTypes(
    "dataability:///com.example.DataAbility",
    "image/*"
    ).then((data) => {
        console.info("==========================>getFileTypesCallback=======================>");
});

DataAbilityHelper.normalizeUri

normalizeUri(uri: string, callback: AsyncCallback<string>): void

将引用数据功能的给定uri转换为规范化uri(callback形式)。

系统能力:SystemCapability.Ability.AbilityRuntime.FAModel

参数:

名称类型必填描述
uristring指示要规范化的uri对象。
callbackAsyncCallback<string>回调方法。如果数据功能支持uri规范化,则返回规范化uri对象;否则返回null。

示例:

import featureAbility from '@ohos.ability.featureAbility'
var DAHelper = featureAbility.acquireDataAbilityHelper(
    "dataability:///com.example.DataAbility"
);
DAHelper.normalizeUri(
    "dataability:///com.example.DataAbility",
    (err, data) => {
        console.info("==========================>Called=======================>");
});

DataAbilityHelper.normalizeUri

normalizeUri(uri: string): Promise<string>

将引用数据功能的给定uri转换为规范化uri(Promise形式)。

系统能力:SystemCapability.Ability.AbilityRuntime.FAModel

参数:

名称类型必填描述
uristring指示要规范化的uri对象。

返回值:

类型说明
Promise<string>如果数据功能支持uri规范化,则返回规范化uri对象;否则返回null。

示例:

import featureAbility from '@ohos.ability.featureAbility'
var DAHelper = featureAbility.acquireDataAbilityHelper(
    "dataability:///com.example.DataAbility"
);
DAHelper.normalizeUri(
    "dataability:///com.example.DataAbility",
    ).then((data) => {
        console.info("==========================>normalizeUriCallback=======================>");
});

DataAbilityHelper.denormalizeUri

denormalizeUri(uri: string, callback: AsyncCallback<string>): void

将由normalizeUri(uri)生成的给定规范化uri转换为非规范化uri(callback形式)。

系统能力:SystemCapability.Ability.AbilityRuntime.FAModel

参数:

名称类型必填描述
uristring指示要规范化的uri对象。
callbackAsyncCallback<string>回调方法。如果反规范化成功,则返回反规范化uri对象。

示例:

import featureAbility from '@ohos.ability.featureAbility'
var DAHelper = featureAbility.acquireDataAbilityHelper(
    "dataability:///com.example.DataAbility"
);
DAHelper.denormalizeUri(
    "dataability:///com.example.DataAbility",
    (err, data) => {
        console.info("==========================>Called=======================>");
});

DataAbilityHelper.denormalizeUri

denormalizeUri(uri: string): Promise<string>

将由normalizeUri(uri)生成的给定规范化uri转换为非规范化uri(Promise形式)。

系统能力:SystemCapability.Ability.AbilityRuntime.FAModel

参数:

名称类型必填描述
uristring指示要规范化的uri对象。

返回值:

类型说明
Promise<string>如果反规范化成功,则返回反规范化uri对象。

示例:

import featureAbility from '@ohos.ability.featureAbility'
var DAHelper = featureAbility.acquireDataAbilityHelper(
    "dataability:///com.example.DataAbility"
);
DAHelper.denormalizeUri(
    "dataability:///com.example.DataAbility",
    ).then((data) => {
        console.info("==========================>denormalizeUriCallback=======================>");
});

DataAbilityHelper.notifyChange

notifyChange(uri: string, callback: AsyncCallback<void>): void

通知已注册的观察者uri指定的数据资源的更改(callback形式)。

系统能力:SystemCapability.Ability.AbilityRuntime.FAModel

参数:

名称类型必填描述
uristring指示要操作的数据的路径。
callbackAsyncCallback<void>回调方法。

示例:

import featureAbility from '@ohos.ability.featureAbility'
var helper = featureAbility.acquireDataAbilityHelper(
    "dataability:///com.example.DataAbility"
);
helper.notifyChange(
    "dataability:///com.example.DataAbility",
    (err) => {
        console.info("==========================>Called=======================>");
});

DataAbilityHelper.notifyChange

notifyChange(uri: string): Promise<void>

通知已注册的观察者uri指定的数据资源的更改(Promise形式)。

系统能力:SystemCapability.Ability.AbilityRuntime.FAModel

参数:

名称类型必填描述
uristring指示要操作的数据的路径。

返回值:

类型说明
Promise<void>返回值为Promise对象。

示例:

import featureAbility from '@ohos.ability.featureAbility'
var DAHelper = featureAbility.acquireDataAbilityHelper(
    "dataability:///com.example.DataAbility"
);
DAHelper.notifyChange(
    "dataability:///com.example.DataAbility",
    ).then(() => {
        console.info("==========================>notifyChangeCallback=======================>");
});

DataAbilityHelper.insert

insert(uri: string, valuesBucket: rdb.ValuesBucket, callback: AsyncCallback<number>): void

将单个数据记录插入数据库(callback形式)。

系统能力:SystemCapability.Ability.AbilityRuntime.FAModel

参数:

名称类型必填描述
uristring指示要插入的数据的路径。
valuesBucketrdb.ValuesBucket指示要插入的数据记录。如果此参数为空,将插入一个空行。
callbackAsyncCallback<number>回调方法,返回插入数据记录的索引。

示例:

import featureAbility from '@ohos.ability.featureAbility'
var DAHelper = featureAbility.acquireDataAbilityHelper(
    "dataability:///com.example.DataAbility"
);
const valueBucket = {
    "name": "rose",
    "age": 22,
    "salary": 200.5,
    "blobType": "u8",
}
DAHelper.insert(
    "dataability:///com.example.DataAbility",
    valueBucket,
    (err, data) => {
        console.info("==========================>Called=======================>");
});

DataAbilityHelper.insert

insert(uri: string, valuesBucket: rdb.ValuesBucket): Promise<number>

将单个数据记录插入数据库(Promise形式)。

系统能力:SystemCapability.Ability.AbilityRuntime.FAModel

参数:

名称类型必填描述
uristring指示要插入的数据的路径。
valuesBucketrdb.ValuesBucket指示要插入的数据记录。如果此参数为空,将插入一个空行。

返回值:

类型说明
Promise<number>返回插入数据记录的索引。

示例:

import featureAbility from '@ohos.ability.featureAbility'
var DAHelper = featureAbility.acquireDataAbilityHelper(
    "dataability:///com.example.DataAbility"
);
const valueBucket = {
    "name": "rose1",
    "age": 221,
    "salary": 20.5,
    "blobType": "u8",
}
DAHelper.insert(
    "dataability:///com.example.DataAbility",
    valueBucket
    ).then((data) => {
        console.info("==========================>insertCallback=======================>");
});

DataAbilityHelper.batchInsert

batchInsert(uri: string, valuesBuckets: Array<rdb.ValuesBucket>, callback: AsyncCallback<number>): void

插入数据库(callback形式)。

系统能力:SystemCapability.Ability.AbilityRuntime.FAModel

参数:

名称类型必填描述
uristring指示要插入的数据的路径。
valuesBucketArray<rdb.ValuesBucket>指示要插入的数据记录。
callbackAsyncCallback<number>回调方法。返回插入的数据记录数。

示例:

import featureAbility from '@ohos.ability.featureAbility'
var DAHelper = featureAbility.acquireDataAbilityHelper(
    "dataability:///com.example.DataAbility"
);
var cars = new Array({"name": "roe11", "age": 21, "salary": 20.5, "blobType": "u8",},
                     {"name": "roe12", "age": 21, "salary": 20.5, "blobType": "u8",},
                     {"name": "roe13", "age": 21, "salary": 20.5, "blobType": "u8",})
DAHelper.batchInsert(
    "dataability:///com.example.DataAbility",
    cars,
    (err, data) => {
        console.info("==========================>Called=======================>");
});

DataAbilityHelper.batchInsert

batchInsert(uri: string, valuesBuckets: Array<rdb.ValuesBucket>): Promise<number>

将多个数据记录插入数据库(Promise形式)。

系统能力:SystemCapability.Ability.AbilityRuntime.FAModel

参数:

名称类型必填描述
uristring指示要插入的数据的路径。
valuesBucketArray<rdb.ValuesBucket>指示要插入的数据记录。

返回值:

类型说明
Promise<number>返回插入的数据记录数。

示例:

import featureAbility from '@ohos.ability.featureAbility'
var DAHelper = featureAbility.acquireDataAbilityHelper(
    "dataability:///com.example.DataAbility"
);
var cars = new Array({"name": "roe11", "age": 21, "salary": 20.5, "blobType": "u8",},
                     {"name": "roe12", "age": 21, "salary": 20.5, "blobType": "u8",},
                     {"name": "roe13", "age": 21, "salary": 20.5, "blobType": "u8",})
DAHelper.batchInsert(
    "dataability:///com.example.DataAbility",
    cars
    ).then((data) => {
        console.info("==========================>batchInsertCallback=======================>");
});

DataAbilityHelper.delete

delete(uri: string, predicates: dataAbility.DataAbilityPredicates, callback: AsyncCallback<number>): void

从数据库中删除一个或多个数据记录(callback形式)。

系统能力:SystemCapability.Ability.AbilityRuntime.FAModel

参数:

名称类型必填描述
uristring指示要删除的数据的路径。
valuesBucketdataAbility.DataAbilityPredicates指示筛选条件。当此参数为null时,应定义处理逻辑。
callbackAsyncCallback<number>回调方法。返回已删除的数据记录数。

示例:

import featureAbility from '@ohos.ability.featureAbility'
import ohos_data_ability from '@ohos.data.dataability'
var DAHelper = featureAbility.acquireDataAbilityHelper(
    "dataability:///com.example.DataAbility"
);
let da = new ohos_data_ability.DataAbilityPredicates()
DAHelper.delete(
    "dataability:///com.example.DataAbility",
    da,
    (err, data) => {
        console.info("==========================>Called=======================>");
});

DataAbilityHelper.delete

delete(uri: string, predicates: dataAbility.DataAbilityPredicates): Promise<number>

从数据库中删除一个或多个数据记录(Promise形式)。

系统能力:SystemCapability.Ability.AbilityRuntime.FAModel

参数:

名称类型必填描述
uristring指示要删除的数据的路径。
valuesBucketdataAbility.DataAbilityPredicates指示筛选条件。当此参数为null时,应定义处理逻辑。

返回值:

类型说明
Promise<number>返回已删除的数据记录数。

示例:

import featureAbility from '@ohos.ability.featureAbility'
import ohos_data_ability from '@ohos.data.dataability'
var DAHelper = featureAbility.acquireDataAbilityHelper(
    "dataability:///com.example.DataAbility"
);
let da = new ohos_data_ability.DataAbilityPredicates()
DAHelper.delete(
    "dataability:///com.example.DataAbility",
    da
    ).then((data) => {
        console.info("==========================>deleteCallback=======================>");
});

DataAbilityHelper.update

update(uri: string, valuesBucket: rdb.ValuesBucket, predicates: dataAbility.DataAbilityPredicates, callback: AsyncCallback<number>): void

更新数据库中的数据记录(callback形式)。

系统能力:SystemCapability.Ability.AbilityRuntime.FAModel

参数:

名称类型必填描述
uristring指示要更新的数据的路径。
valuesBucketrdb.ValuesBucket指示要更新的数据。
predicatesdataAbility.DataAbilityPredicates指示筛选条件。当此参数为null时,应定义处理逻辑。
callbackAsyncCallback<number>回调方法,返回更新的数据记录数。

示例:

import featureAbility from '@ohos.ability.featureAbility'
import ohos_data_ability from '@ohos.data.dataability'
var DAHelper = featureAbility.acquireDataAbilityHelper(
    "dataability:///com.example.DataAbility"
);
const va = {
    "name": "roe1",
    "age": 21,
    "salary": 20.5,
    "blobType": "u8",
}
let da = new ohos_data_ability.DataAbilityPredicates()
DAHelper.update(
    "dataability:///com.example.DataAbility",
    va,
    da,
    (err, data) => {
        console.info("==========================>Called=======================>");
});

DataAbilityHelper.update

update(uri: string, valuesBucket: rdb.ValuesBucket, predicates: dataAbility.DataAbilityPredicates): Promise<number>

更新数据库中的数据记录(Promise形式)。

系统能力:SystemCapability.Ability.AbilityRuntime.FAModel

参数:

名称类型必填描述
uristring指示要更新的数据的路径。
valuesBucketrdb.ValuesBucket指示要更新的数据。
predicatesdataAbility.DataAbilityPredicates指示筛选条件。当此参数为null时,应定义处理逻辑。

返回值:

类型说明
Promise<number>Promise中包含更新的数据记录数。 。

示例:

import featureAbility from '@ohos.ability.featureAbility'
import ohos_data_ability from '@ohos.data.dataability'
var DAHelper = featureAbility.acquireDataAbilityHelper(
    "dataability:///com.example.DataAbility"
);
const va = {
    "name": "roe1",
    "age": 21,
    "salary": 20.5,
    "blobType": "u8",
}
let da = new ohos_data_ability.DataAbilityPredicates()
DAHelper.update(
    "dataability:///com.example.DataAbility",
    va,
    da
    ).then((data) => {
        console.info("==========================>updateCallback=======================>");
});

DataAbilityHelper.query

query(uri: string, columns: Array<string>, predicates: dataAbility.DataAbilityPredicates, callback: AsyncCallback<ResultSet>): void

查询数据库中的数据(callback形式)。

系统能力:SystemCapability.Ability.AbilityRuntime.FAModel

参数:

名称类型必填描述
uristring指示要查询的数据的路径。
columnsrdb.ValuesBucket指示要查询的列。如果此参数为空,则查询所有列。
predicatesdataAbility.DataAbilityPredicates指示筛选条件。当此参数为null时,应定义处理逻辑。
callbackAsyncCallback<ResultSet>回调方法,返回查询结果。

示例:

import featureAbility from '@ohos.ability.featureAbility'
import ohos_data_ability from '@ohos.data.dataability'
var DAHelper = featureAbility.acquireDataAbilityHelper(
    "dataability:///com.example.DataAbility"
);
var cars=new Array("value1", "value2", "value3", "value4");
let da = new ohos_data_ability.DataAbilityPredicates()
DAHelper.query(
    "dataability:///com.example.DataAbility",
    cars,
    da,
    (err, data) => {
        console.info("==========================>Called=======================>");
});

DataAbilityHelper.query

query(uri: string, columns: Array<string>, predicates: dataAbility.DataAbilityPredicates): Promise<ResultSet>

查询数据库中的数据(Promise形式)。

系统能力:SystemCapability.Ability.AbilityRuntime.FAModel

参数:

名称类型必填描述
uristring指示要查询的数据的路径。
columnsrdb.ValuesBucket指示要查询的列。如果此参数为空,则查询所有列。
predicatesdataAbility.DataAbilityPredicates指示筛选条件。当此参数为null时,应定义处理逻辑。

返回值:

类型说明
Promise<ResultSet>返回查询结果。

示例:

import featureAbility from '@ohos.ability.featureAbility'
import ohos_data_ability from '@ohos.data.dataability'
var DAHelper = featureAbility.acquireDataAbilityHelper(
    "dataability:///com.example.DataAbility"
);
var cars=new Array("value1", "value2", "value3", "value4");
let da = new ohos_data_ability.DataAbilityPredicates()
DAHelper.query(
    "dataability:///com.example.DataAbility",
    cars,
    da
    ).then((data) => {
        console.info("==========================>queryCallback=======================>");
});

DataAbilityHelper.call

call(uri: string, method: string, arg: string, extras: PacMap): Promise

调用DataAbility的扩展接口,使用Promise方式作为异步方法。

系统能力:SystemCapability.Ability.AbilityRuntime.FAModel

参数:

名称类型必填描述
uristring指定待处理的DataAbility。例:"dataability:///com.example.xxx.xxxx"
methodstring被调用的方法名。
argstring需传入的参数。
extrasPacMap键值对参数。

返回值:

类型说明
Promise<PacMap>调用的返回值。

示例:

import featureAbility from '@ohos.ability.featureAbility';

let dataAbilityHelper = featureAbility.acquireDataAbilityHelper("dataability:///com.example.jsapidemo.UserDataAbility");
dataAbilityHelper.call("dataability:///com.example.jsapidemo.UserDataAbility", "method", "arg", {"key1":"value1"}).then((data) => {
    console.info('Operation succeeded: ' + data);
}).catch((error) => {
    console.error('Operation failed. Cause: ' + error);
});

DataAbilityHelper.call

call(uri: string, method: string, arg: string, extras: PacMap, callback: AsyncCallback): void

调用DataAbility的扩展接口,使用callback方式作为异步方法。

系统能力:SystemCapability.Ability.AbilityRuntime.FAModel

参数:

名称类型必填描述
uristring指定待处理的DataAbility。例:"dataability:///com.example.xxx.xxxx"
methodstring被调用的方法名。
argstring需传入的参数。
extrasPacMap键值对参数。
callbackAsyncCallback<PacMap>返回值。 HarmonyOS与OpenHarmony鸿蒙文档籽料:mau123789是v直接拿

搜狗高速浏览器截图20240326151344.png

示例:

import featureAbility from '@ohos.ability.featureAbility';

let dataAbilityHelper = featureAbility.acquireDataAbilityHelper("dataability:///com.example.jsapidemo.UserDataAbility");
dataAbilityHelper.call("dataability:///com.example.jsapidemo.UserDataAbility", "method", "arg", {"key1":"value1"}, (err, data) => {
    if (err) {
        console.error('Operation failed. Cause: ' + err);
        return;
    }
    console.info('Operation succeeded: ' + data);
});

PacMap

名称参数类型必填说明
[key: string]numberstringbooleanArray<stringnumberboolean>null数据存储在键值对中。

鸿蒙Next核心技术分享

1、鸿蒙基础知识←《鸿蒙NEXT星河版开发学习文档》

2、鸿蒙ArkUI←《鸿蒙NEXT星河版开发学习文档》

3、鸿蒙进阶技术←《鸿蒙NEXT星河版开发学习文档》

 4、鸿蒙就业高级技能←《鸿蒙NEXT星河版开发学习文档》 

 5、鸿蒙多媒体技术←《鸿蒙NEXT星河版开发学习文档》 

6、鸿蒙南向驱动开发←《鸿蒙NEXT星河版开发学习文档》  

7、鸿蒙南向内核设备开发←《鸿蒙NEXT星河版开发学习文档》  

 8、鸿蒙系统裁剪与移植←《鸿蒙NEXT星河版开发学习文档》  

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1665101.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

i春秋-Backdoor

题目 考点 git源码泄露 Linux文件恢复 代码审计 http 解题 参考wp https://blog.csdn.net/cbhjerry/article/details/105791056https://www.pianshen.com/article/19461342501/扫描 题目给出提示&#xff1a;敏感文件泄漏 于是使用dirsearch扫一下 python dirsearch.py -…

ASP.NET一个简单的媒体播放器的设计与实现

摘 要 本论文所描述的播放器是在Microsoft Visual Studio .NET 2003平台下利用Visual Basic.NET语言完成的。使用Visual Basic.NET提供的Windows Media Player控件以及文件处理&#xff0c;最终实现一款别致的&#xff0c;贴近用户操作习惯的媒体播放器。 该播放器实现了对WAV…

原子学习笔记4——GPIO 应用编程

一、应用层如何操控 GPIO 与 LED 设备一样&#xff0c;GPIO 同样也是通过 sysfs 方式进行操控&#xff0c;进入到/sys/class/gpio 目录下&#xff0c;如下所示&#xff1a; gpiochipX&#xff1a;当前 SoC 所包含的 GPIO 控制器&#xff0c;我们知道 I.MX6UL/I.MX6ULL 一共包…

设计模式——行为型模式——策略模式(含实际业务使用示例、可拷贝直接运行)

目录 策略模式 定义 组成和UML图 代码示例 实际业务场景下策略模式的使用 策略模式优缺点 使用场景 JDK中使用策略模式示例 参考文档 策略模式 定义 策略模式定义了一系列算法&#xff0c;并将每个算法封装起来&#xff0c;使它们可以相互替换&#xff0c;且算法的变化…

PC端与bluetooth蓝牙虚拟串口通信

应该采用RFCOMM虚拟串口方式来进行通信&#xff0c;原理跟socket通信类似&#xff0c;不同的是使用的通信协议不同&#xff0c;本人结合相关的API&#xff0c;做了以下最简单的封装。 1、获取本地蓝牙设备与附近蓝牙设备信息 2、通信类 /* 通信类&#xff1a;只是对于客户端通…

Live800:企业营销利用利用社区建设培养忠诚粉丝

社区建设是一种与顾客建立长期关系的活动&#xff0c;在社区中顾客可以在有限的时间和空间里&#xff0c;与企业的营销人员进行互动。通过企业提供的各种资源&#xff0c;例如产品、服务、促销活动、信息等&#xff0c;吸引顾客参与社区建设。与顾客建立长期关系&#xff0c;从…

【碳化硅】陷阱(traps)对SiC MOSFET阈值电压漂移的影响

这篇文章是关于硅碳化物(SiC)金属氧化物半导体场效应晶体管(MOSFET)的阈值电压漂移问题的研究。文章的主要目的是通过研究不同的陷阱(traps)对阈值电压漂移的影响,来解决SiC MOSFET的可靠性问题。 摘要(Abstract) 文章提出了一种研究方法,用于分析影响SiC MOSFET阈值…

【练习4】

1.两数之和 暴力&#xff1a; class Solution { public:vector<int> twoSum(vector<int>& nums, int target) {int n nums.size();vector<int> res(2, -1); // 初始化结果为-1for (int i 0; i < n; i) {int temp nums[i];for (int j i 1; j <…

vivado Spartan-7 配置存储器器件

下表所示闪存器件支持通过 Vivado 软件对 Spartan -7 器件执行擦除、空白检查、编程和验证等配置操作。 本附录中的表格所列赛灵思系列非易失性存储器将不断保持更新 &#xff0c; 并支持通过 Vivado 软件对其中所列非易失性存储器 进行擦除、空白检查、编程和验证。赛灵…

用python写个控制MicroSIP自动拨号和定时呼叫功能(可用在小型酒店叫醒服务)MicroSIP定时拨号

首先直接上结果吧&#xff0c;MicroSIP 助手&#xff0c;控制MicroSIP自动拨号&#xff0c;定时呼叫的非常实用小工具&#xff01; 在使用MicroSIP 助手之前&#xff0c;我们需要了解MicroSIP是什么&#xff0c;MicroSIP是一个SIP拨号软件&#xff0c;支持注册任意SIP平台实现拨…

独家原创 | BiTCN-BiGRU-CrossAttention融合时空特征的高创新预测模型

往期精彩内容&#xff1a; 时序预测&#xff1a;LSTM、ARIMA、Holt-Winters、SARIMA模型的分析与比较-CSDN博客 风速预测&#xff08;一&#xff09;数据集介绍和预处理-CSDN博客 风速预测&#xff08;二&#xff09;基于Pytorch的EMD-LSTM模型-CSDN博客 风速预测&#xff…

NSS题目练习2

[LitCTF 2023]我Flag呢&#xff1f; 打开题目后查看源码即可发现flag [第五空间 2021]WebFTP 看到提示&#xff0c;首先想到用dirsearch扫描链接&#xff0c;看是否存在git泄露 发现存在git泄露&#xff0c;用githack解决 克隆提示目录为空&#xff0c;说明不正确&#xff0c…

探讨 vs2019 c++ 里函数指针与函数类型在使用上的语法区别

&#xff08;1&#xff09;咱们可以用 decltype &#xff08;&#xff09; 来判断函数的类型。但以这个类型定义有用的可指向已存在函数的变量&#xff0c;却行不通。测试如下&#xff1a; 如果把上面的注释去掉会报错&#xff1a; 所以函数类型只有语法意义。但在使用上没有函…

PermissionError: [Errno 13] Permission denied: ‘xx.xlsx‘的解决办法

我在转换文件的时候遇到这个报错&#xff0c;原因是文件名与已有文件名重复了 解决办法很简单&#xff0c;如下图把" " 里的名字换成不重复的&#xff0c;再次允许代码&#xff0c;会恢复正常

实验室一块GPU都没有?这个云平台直接送4090免费无门槛代金券!

你有没有一些年代久远的老照片&#xff0c;或是网络下载的图片和视频&#xff0c;低分辨率、模糊还有噪点&#xff0c;如果能一键修复成高清就好了&#xff01;现在在AI算法工程师圈子里很火的GpuMall智算云&#xff0c;上面的镜像可以一键帮你修复照片&#xff01;比如我们用R…

到东莞樟木头“中国作家第一村”来!这里大有文“樟”

樟木头&#xff0c;古称泰安&#xff0c;一直是康泰平安、物阜民丰之地。作为东莞唯一纯客家镇&#xff0c;传自中原先民的烂漫因子让这座城市崇文重礼&#xff0c;绿水青山更氤氲出古镇芳华。这个文章锦绣地&#xff0c;以其敢为人先、勇立潮头的姿态&#xff0c;成为了各种文…

【深度学习】--slowfast视频理解数据集处理pipeline

官网指引&#xff1a; facebookresearch SlowFast &#xff1a;https://github.com/facebookresearch/SlowFast 进入dataset&#xff1a;https://github.com/facebookresearch/SlowFast/blob/main/slowfast/datasets/DATASET.md 这里面的东西需要通读&#xff0c;但是不要过于…

vulnhub靶场之FunBox-5

一.环境搭建 1.靶场描述 Lets separate the script-kids from script-teenies.Hint: The first impression is not always the right one!If you need hints, call me on twitter: 0815R2d2 Have fun...This works better with VirtualBox rather than VMwareThis works bett…

git 推送github 选https遇到登录 openSSH问题

使用https需要使用github令牌token作为密码&#xff0c; 使用SSH不需要登录。 还有一个问题&#xff1a; 创建github仓库后没有quick setup页面解决办法 千万不要点击任何多的操作&#xff01;&#xff01;&#xff01;输入仓库名&#xff0c;直接create&#xff01;&#x…

基于CCS5.5的双音多频(DTMF)信号检测仿真实验(①检测型音频文件②输入生成音频并检测)

DTMF的优点 我们知道,DTMF根本上仍然是频谱分析,基础还是DFT,但DFT通常需要对一整段数据做变换,而DTMF不同,每输入一个采样点就计算一次,更有利于硬件实现。 基于CCS的双音多频(DTMF)信号检测原理 公式详细推导 详细的公式推导在下面这篇博客中已经进行了详细的描述,…