示例参考如下:import { asset } from '@kit.AssetStoreKit'; import util from '@ohos.util'; function stringToArray(str: string): Uint8Array { let textEncoder = new util.TextEncoder(); return textEncoder.encodeInto(str); } function setAttr() { let attr: asset.AssetMap = new Map(); attr.set(asset.Tag.SECRET, stringToArray('demo_pwd')); attr.set(asset.Tag.ALIAS, stringToArray('demo_alias')); attr.set(asset.Tag.ACCESSIBILITY, asset.Accessibility.DEVICE_FIRST_UNLOCKED); attr.set(asset.Tag.DATA_LABEL_NORMAL_1, stringToArray('demo_label')); //attr.set(asset.Tag.DATA_LABEL_CRITICAL_1,stringToArray('value1')) try { asset.add(attr).then(() => { console.info(`Asset added successfully.`); }).catch(() => { console.error(`Failed to add Asset.`); }) } catch (error) { console.error(`Failed to add Asset.`); } } function arrayToString(arr: Uint8Array): string { let textDecoder = util.TextDecoder.create("utf-8", { ignoreBOM: true }); let str = textDecoder.decodeWithStream(arr, { stream: false }) return str; } function getAttr() { let query: asset.AssetMap = new Map(); query.set(asset.Tag.ALIAS, stringToArray('demo_alias')); // 指定了关键资产别名,最多查询到一条满足条件的关键资产 query.set(asset.Tag.RETURN_TYPE, asset.ReturnType.ALL); // 此处表示需要返回关键资产的所有信息,即属性+明文 //query.set(asset.Tag.RETURN_TYPE, asset.ReturnType.ATTRIBUTES); // 此处表示需要返回关键资产的所有信息,即属性 try { asset.query(query).then((res: Array<asset.AssetMap>) => { console.info('获取的资产长度为:' + res.length) for (let i = 0; i < res.length; i++) { // 解析密钥 let secret: Uint8Array = res[i].get(asset.Tag.SECRET) as Uint8Array; // 将 uint8array 解析为字符串 let secretStr: string = arrayToString(secret); console.info('资产信息为:' + secretStr) } }).catch(() => { console.error(`Failed to query Asset.`); }); } catch (error) { console.error(`Failed to query Asset.`); } } @Entry @Component struct AttrTest { build() { Column() { Button('设置资产').onClick((event: ClickEvent) => { setAttr() }) .height(100) .width('100%') Button('获取资产').onClick((event: ClickEvent) => { getAttr() }) .height(100) .width('100%') } } }
示例参考如下: