提交 767aaff0 编写于 作者: X xsz233

Merge remote-tracking branch 'upstream/master'

Signed-off-by: Nxsz233 <xushizhe@huawei.com>
......@@ -237,6 +237,7 @@
- [@ohos.file.environment (Directory Environment Capability)](js-apis-file-environment.md)
- [@ohos.file.fileAccess (User File Access and Management)](js-apis-fileAccess.md)
- [@ohos.file.fileExtensionInfo (User File Extension Information)](js-apis-fileExtensionInfo.md)
- [@ohos.file.fileUri (File URI)](js-apis-file-fileUri.md)
- [@ohos.file.fs (File Management)](js-apis-file-fs.md)
- [@ohos.file.hash (File Hash Processing)](js-apis-file-hash.md)
- [@ohos.file.picker (Picker)](js-apis-file-picker.md)
......@@ -245,6 +246,7 @@
- [@ohos.file.storageStatistics (Application Storage Statistics)](js-apis-file-storage-statistics.md)
- [@ohos.file.volumeManager (Volume Management)](js-apis-file-volumemanager.md)
- [@ohos.filemanagement.userFileManager (User Data Management)](js-apis-userFileManager.md)
- [@ohos.fileShare (File Sharing)](js-apis-fileShare.md)
- Telephony Service
- [@ohos.contact (Contacts)](js-apis-contact.md)
......
# @ohos.file.fileUri (File URI)
The **fileUri** module allows the uniform resource identifier (URI) of a file to be obtained based on the file path. With the file URI, you can use the APIs provided by [@ohos.file.fs](js-apis-file-fs.md) to operate the file.
> **NOTE**
>
> The initial APIs of this module are supported since API version 9. Newly added APIs will be marked with a superscript to indicate their earliest API version.
## Modules to Import
```js
import fileUri from "@ohos.file.fileUri";
```
Before using this module, you need to obtain the path of the file in the application sandbox. The following is an example:
```js
import UIAbility from '@ohos.app.ability.UIAbility';
export default class EntryAbility extends UIAbility {
onWindowStageCreate(windowStage) {
let context = this.context;
let pathDir = context.filesDir;
}
}
```
## fileUri.getUriFromPath
getUriFromPath(path: string): string
Obtains the URI of a file in synchronous mode.
**System capability**: SystemCapability.FileManagement.AppFileService
**Parameters**
| Name| Type | Mandatory| Description |
| ------ | ------ | ---- | -------------------------- |
| path | string | Yes | Path of the file in the application sandbox.|
**Return value**
| Type | Description |
| ---------------------------- | ---------- |
| string | File URI obtained.|
**Error codes**
For details about the error codes, see [File Management Error Codes](../errorcodes/errorcode-filemanagement.md).
| ID | Error Message |
| ---------------------------- | ---------- |
| 401 | The input parameter is invalid |
**Example**
```js
let filePath = pathDir + "test.txt";
let uri = fileUri.getUriFromPath(filePath);
```
# @ohos.fileShare (File Sharing)
The **fileShare** module provides APIs for granting the access permissions on a user file to another application by the Uniform Resource Identifier (URI). Then, the authorized application can access the file by using the APIs provided by [@ohos.file.fs](js-apis-file-fs.md).
> **NOTE**
>
> The initial APIs of this module are supported since API version 9. Newly added APIs will be marked with a superscript to indicate their earliest API version.
## Modules to Import
```js
import fileShare from '@ohos.fileShare';
```
## fileShare.grantUriPermission
grantUriPermission(uri: string, bundleName: string, mode: number, callback: AsyncCallback&lt;void&gt;): void
Grants permissions on a user file by the URI to an application. This API uses an asynchronous callback to return the result.
**Required permissions**: ohos.permission.WRITE_MEDIA
**System API**: This is a system API.
**System capability**: SystemCapability.FileManagement.AppFileService
**Parameters**
| Name| Type | Mandatory| Description |
| ------ | ------ | ---- | -------------------------- |
| uri | string | Yes | URI of a user file.|
| bundleName | string | Yes | Bundle name of the application to be grated with the permissions.|
| mode | number | Yes | Permissions to grant. For details, see [wantConstant.Flags](js-apis-app-ability-wantConstant.md#wantconstantflags).<br>**wantConstant.Flags.FLAG_AUTH_READ_URI_PERMISSION**: permission to read the file. <br>**wantConstant.Flags.FLAG_AUTH_WRITE_URI_PERMISSION**: permission to write the file.|
| callback | AsyncCallback&lt;void&gt; | Yes | Callback invoked to return the result. |
**Error codes**
For details about the error codes, see [File Management Error Codes](../errorcodes/errorcode-filemanagement.md).
| ID | Error Message |
| ---------------------------- | ---------- |
| 201 | Permission verification failed |
| 202 | The caller is not a system application |
| 401 | The input parameter is invalid |
| 143000001 | IPC error |
**Example**
```js
import wantConstant from '@ohos.app.ability.wantConstant';
let uri = 'datashare:///media/image/8';
let bundleName = 'com.demo.test';
try {
fileShare.grantUriPermission(uri, bundleName, wantConstant.Flags.FLAG_AUTH_READ_URI_PERMISSION | wantConstant.Flags.FLAG_AUTH_WRITE_URI_PERMISSION, (err) => {
if (err) {
console.error("grantUriPermission failed with error: " + err);
return;
}
console.info("grantUriPermission success!");
});
} catch (error) {
console.error("grantUriPermission failed with error:" + error);
}
```
## fileShare.grantUriPermission
grantUriPermission(uri: string, bundleName: string, mode: number): Promise&lt;void&gt;
Grants permissions on a user file by the URI to an application. This API uses a promise to return the result.
**Required permissions**: ohos.permission.WRITE_MEDIA
**System API**: This is a system API.
**System capability**: SystemCapability.FileManagement.AppFileService
**Parameters**
| Name| Type | Mandatory| Description |
| ------ | ------ | ---- | -------------------------- |
| uri | string | Yes | URI of a user file.|
| bundleName | string | Yes | Bundle name of the application to be grated with the permissions.|
| mode | number | Yes | Permissions to grant. For details, see [wantConstant.Flags](js-apis-app-ability-wantConstant.md#wantconstantflags).<br>**wantConstant.Flags.FLAG_AUTH_READ_URI_PERMISSION**: permission to read the file. <br>**wantConstant.Flags.FLAG_AUTH_WRITE_URI_PERMISSION**: permission to write the file.|
**Return value**
| Type | Description |
| ---------------------------- | ---------- |
| Promise&lt;void&gt; | Promise that returns no value.|
**Error codes**
For details about the error codes, see [File Management Error Codes](../errorcodes/errorcode-filemanagement.md).
| ID | Error Message |
| ---------------------------- | ---------- |
| 201 | Permission verification failed |
| 202 | The caller is not a system application |
| 401 | The input parameter is invalid |
| 143000001 | IPC error |
**Example**
```js
import wantConstant from '@ohos.app.ability.wantConstant';
let uri = 'datashare:///media/image/8';
let bundleName = 'com.demo.test';
try {
fileShare.grantUriPermission(uri, bundleName, wantConstant.Flags.FLAG_AUTH_READ_URI_PERMISSION |
wantConstant.Flags.FLAG_AUTH_WRITE_URI_PERMISSION).then(function () {
console.info("grantUriPermission success!");
}).catch(function (error) {
console.error("grantUriPermission failed with error:" + error);
});
} catch (error) {
console.error("grantUriPermission failed with error:" + error);
}
```
......@@ -158,9 +158,9 @@ OpenHarmony IDL容器数据类型与Ts数据类型、C++数据类型的对应关
> **注意**:请保证使用最新版的SDK,版本老旧可能导致部分语句报错。
若不存在,可对应版本前往[docs仓版本目录](https://gitee.com/openharmony/docs/tree/master/zh-cn/release-notes)下载SDK包,以[3.2Beta3版本](../../release-notes/OpenHarmony-v3.2-beta3.md#%E4%BB%8E%E9%95%9C%E5%83%8F%E7%AB%99%E7%82%B9%E8%8E%B7%E5%8F%96)为例,可通过镜像站点获取。
若不存在,可对应版本前往[docs仓版本目录](https://gitee.com/openharmony/docs/tree/master/zh-cn/release-notes)下载SDK包,以[3.2Beta3版本](https://gitee.com/openharmony/docs/blob/master/zh-cn/release-notes/OpenHarmony-v3.2-beta3.md)为例,可通过镜像站点获取。
关于如何替换DevEco Studio的SDK包具体操作,参考[full-SDK替换指南](../quick-start/full-sdk-switch-guide.md#full-sdk%E6%9B%BF%E6%8D%A2%E6%8C%87%E5%8D%97)中的替换方法。
关于如何替换DevEco Studio的SDK包具体操作,参考[full-SDK替换指南](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/quick-start/full-sdk-compile-guide.md)中的替换方法。
得到idl工具的可执行文件后,根据具体场景进行后续开发步骤。
......@@ -176,6 +176,8 @@ OpenHarmony IDL容器数据类型与Ts数据类型、C++数据类型的对应关
interface OHOS.IIdlTestService {
int TestIntTransaction([in] int data);
void TestStringTransaction([in] String data);
void TestMapTransaction([in] Map<int, int> data);
int TestArrayTransaction([in] String[] data);
}
```
......@@ -203,6 +205,8 @@ OpenHarmony IDL工具生成的Stub类是接口类的抽象实现,并且会声
```ts
import {testIntTransactionCallback} from "./i_idl_test_service";
import {testStringTransactionCallback} from "./i_idl_test_service";
import {testMapTransactionCallback} from "./i_idl_test_service";
import {testArrayTransactionCallback} from "./i_idl_test_service";
import IIdlTestService from "./i_idl_test_service";
import rpc from "@ohos.rpc";
......@@ -211,8 +215,8 @@ export default class IdlTestServiceStub extends rpc.RemoteObject implements IIdl
super(des);
}
async onRemoteRequestEx(code: number, data, reply, option): Promise<boolean> {
console.log("onRemoteRequestEx called, code = " + code);
async onRemoteMessageRequest(code: number, data, reply, option): Promise<boolean> {
console.log("onRemoteMessageRequest called, code = " + code);
switch(code) {
case IdlTestServiceStub.COMMAND_TEST_INT_TRANSACTION: {
let _data = data.readInt();
......@@ -231,6 +235,29 @@ export default class IdlTestServiceStub extends rpc.RemoteObject implements IIdl
});
return true;
}
case IdlTestServiceStub.COMMAND_TEST_MAP_TRANSACTION: {
let _data = new Map();
let _dataSize = data.readInt();
for (let i = 0; i < _dataSize; ++i) {
let key = data.readInt();
let value = data.readInt();
_data.set(key, value);
}
this.testMapTransaction(_data, (errCode) => {
reply.writeInt(errCode);
});
return true;
}
case IdlTestServiceStub.COMMAND_TEST_ARRAY_TRANSACTION: {
let _data = data.readStringArray();
this.testArrayTransaction(_data, (errCode, returnValue) => {
reply.writeInt(errCode);
if (errCode == 0) {
reply.writeInt(returnValue);
}
});
return true;
}
default: {
console.log("invalid request code" + code);
break;
......@@ -241,17 +268,23 @@ export default class IdlTestServiceStub extends rpc.RemoteObject implements IIdl
testIntTransaction(data: number, callback: testIntTransactionCallback): void{}
testStringTransaction(data: string, callback: testStringTransactionCallback): void{}
testMapTransaction(data: Map<number, number>, callback: testMapTransactionCallback): void{}
testArrayTransaction(data: string[], callback: testArrayTransactionCallback): void{}
static readonly COMMAND_TEST_INT_TRANSACTION = 1;
static readonly COMMAND_TEST_STRING_TRANSACTION = 2;
static readonly COMMAND_TEST_MAP_TRANSACTION = 3;
static readonly COMMAND_TEST_ARRAY_TRANSACTION = 4;
}
```
开发者需要继承.idl文件中定义的接口类并实现其中的方法。在本示例中,我们继承了IdlTestServiceStub接口类并实现了其中的testIntTransaction和testStringTransaction方法。具体的示例代码如下:
开发者需要继承.idl文件中定义的接口类并实现其中的方法。在本示例中,我们继承了IdlTestServiceStub接口类并实现了其中的testIntTransaction、testStringTransaction、testMapTransaction和testArrayTransaction方法。具体的示例代码如下:
```ts
import {testIntTransactionCallback} from "./i_idl_test_service"
import {testStringTransactionCallback} from "./i_idl_test_service"
import {testMapTransactionCallback} from "./i_idl_test_service";
import {testArrayTransactionCallback} from "./i_idl_test_service";
import IdlTestServiceStub from "./idl_test_service_stub"
......@@ -265,6 +298,14 @@ class IdlTestImp extends IdlTestServiceStub {
{
callback(0);
}
testMapTransaction(data: Map<number, number>, callback: testMapTransactionCallback): void
{
callback(0);
}
testArrayTransaction(data: string[], callback: testArrayTransactionCallback): void
{
callback(0, 1);
}
}
```
......@@ -320,11 +361,28 @@ function callbackTestStringTransaction(result: number): void {
}
}
function callbackTestMapTransaction(result: number): void {
if (result == 0) {
console.log('case 3 success');
}
}
function callbackTestArrayTransaction(result: number, ret: number): void {
if (result == 0 && ret == 124) {
console.log('case 4 success');
}
}
var onAbilityConnectDone = {
onConnect:function (elementName, proxy) {
let testProxy = new IdlTestServiceProxy(proxy);
let testMap = new Map();
testMap.set(1, 1);
testMap.set(1, 2);
testProxy.testIntTransaction(123, callbackTestIntTransaction);
testProxy.testStringTransaction('hello', callbackTestStringTransaction);
testProxy.testMapTransaction(testMap, callbackTestMapTransaction);
testProxy.testArrayTransaction(['1','2'], callbackTestMapTransaction);
},
onDisconnect:function (elementName) {
console.log('onDisconnectService onDisconnect');
......
......@@ -777,9 +777,11 @@ preloads标签示例:
**表14** **dependencies标签说明**
| 属性名称 | 含义 | 数据类型 | 是否可缺省 |
| -------- | -------- | -------- | -------- |
| moduleName | 标识当前模块依赖的共享库模块名 | 字符串 | 不可缺省。 |
| 属性名称 | 含义 | 数据类型 | 是否可缺省 |
| ----------- | ------------------------------ | -------- | ---------- |
| bundleName | 标识当前模块依赖的共享包包名。 | 字符串 | 可缺省。 |
| moduleName | 标识当前模块依赖的共享包模块名。| 字符串 | 不可缺省。 |
| versionCode | 标识当前共享包的版本号。 | 数值 | 可缺省。 |
dependencies标签示例:
......@@ -788,7 +790,9 @@ dependencies标签示例:
"module": {
"dependencies": [
{
"moduleName": "library"
"bundleName":"com.share.library",
"moduleName": "library",
"versionCode": 10001
}
]
}
......
......@@ -236,6 +236,7 @@
- [@ohos.file.environment (目录环境能力)](js-apis-file-environment.md)
- [@ohos.file.fileAccess (公共文件访问与管理)](js-apis-fileAccess.md)
- [@ohos.file.fileExtensionInfo (公共文件访问与管理属性信息)](js-apis-fileExtensionInfo.md)
- [@ohos.file.fileUri (文件URI)](js-apis-file-fileUri.md)
- [@ohos.file.fs (文件管理)](js-apis-file-fs.md)
- [@ohos.file.hash (文件哈希处理)](js-apis-file-hash.md)
- [@ohos.file.picker (选择器)](js-apis-file-picker.md)
......@@ -244,6 +245,7 @@
- [@ohos.file.storageStatistics (应用空间统计)](js-apis-file-storage-statistics.md)
- [@ohos.file.volumeManager (卷管理)](js-apis-file-volumemanager.md)
- [@ohos.filemanagement.userFileManager (用户数据管理)](js-apis-userFileManager.md)
- [@ohos.fileShare (文件分享)](js-apis-fileShare.md)
- 电话服务
- [@ohos.contact (联系人)](js-apis-contact.md)
......
......@@ -151,7 +151,7 @@ try {
getBtConnectionState(): ProfileConnectionState
获取蓝牙设备的Profile连接状态
获取蓝牙本端的Profile连接状态,例如:任意一个支持的Profile连接状态为已连接,则此接口返回状态为已连接
**需要权限**:ohos.permission.USE_BLUETOOTH
......@@ -263,7 +263,7 @@ try {
getProfileConnectionState(profileId: ProfileId): ProfileConnectionState
获取profile的连接状态。
依据ProfileId获取指定profile的连接状态。
**需要权限**:ohos.permission.USE_BLUETOOTH
......
......@@ -45,8 +45,8 @@ HAP信息,系统应用可以通过[bundleManager.getBundleInfo](js-apis-bundle
**系统能力:** 以下各项对应的系统能力均为SystemCapability.BundleManager.BundleFramework.Core。
| 名称 | 类型 | 可读 | 可写 | 说明 |
| --------- | -------------- | ---- | ---- | --------------------------- |
|moduleName | string | 是 | 否 | 依赖共享库的模块名称。 |
|bundleName | string | 是 | 否 | 依赖共享库的包名。 |
|versionCode| number | 是 | 否 | 依赖共享库的版本号。 |
\ No newline at end of file
| 名称 | 类型 | 可读 | 可写 | 说明 |
| ----------- | ------ | ---- | ---- | ---------------------- |
| bundleName | string | 是 | 否 | 标识当前模块依赖的共享包包名。 |
| moduleName | string | 是 | 否 | 标识当前模块依赖的共享包模块名。 |
| versionCode | number | 是 | 否 | 标识当前共享包的版本号。 |
\ No newline at end of file
......@@ -488,8 +488,6 @@ selectContact(callback: AsyncCallback&lt;Array&lt;Contact&gt;&gt;): void
选择联系人,使用callback方式作为异步方法。
**需要权限**:ohos.permission.READ_CONTACTS
**系统能力**:SystemCapability.Applications.Contacts
**参数:**
......@@ -517,8 +515,6 @@ selectContact(): Promise&lt;Array&lt;Contact&gt;&gt;
选择联系人,使用Promise方式作为异步方法。
**需要权限**:ohos.permission.READ_CONTACTS
**系统能力**:SystemCapability.Applications.Contacts
**返回值:**
......
......@@ -180,6 +180,93 @@ console.log('get main color =' + color);
```
![zh-ch_image_Main_Color.png](figures/zh-ch_image_Main_Color.png)
### getLargestProportionColor<sup>10+</sup>
getLargestProportionColor(): Color
读取图像占比最多的颜色值,结果写入[Color](#color)里,使用同步方式返回。
**系统能力:** SystemCapability.Multimedia.Image.Core
**返回值:**
| 类型 | 说明 |
| :------------- | :---------------------------------------------- |
| [Color](#color) | Color实例,即图像占比最多的颜色值,失败时返回null。 |
**示例:**
```js
let color = colorPicker.getLargestProportionColor();
console.log('get largest proportion color =' + color);
```
![zh-ch_image_Largest_Proportion_Color.png](figures/zh-ch_image_Largest_Proportion_Color.png)
### getHighestSaturationColor<sup>10+</sup>
getHighestSaturationColor(): Color
读取图像饱和度最高的颜色值,结果写入[Color](#color)里,使用同步方式返回。
**系统能力:** SystemCapability.Multimedia.Image.Core
**返回值:**
| 类型 | 说明 |
| :------------- | :---------------------------------------------- |
| [Color](#color) | Color实例,即图像饱和度最高的颜色值,失败时返回null。 |
**示例:**
```js
let color = colorPicker.getHighestSaturationColor();
console.log('get highest saturation color =' + color);
```
![zh-ch_image_Highest_Saturation_Color.png](figures/zh-ch_image_Highest_Saturation_Color.png)
### getAverageColor<sup>10+</sup>
getAverageColor(): Color
读取图像平均的颜色值,结果写入[Color](#color)里,使用同步方式返回。
**系统能力:** SystemCapability.Multimedia.Image.Core
**返回值:**
| 类型 | 说明 |
| :------------- | :---------------------------------------------- |
| [Color](#color) | Color实例,即图像平均的颜色值,失败时返回null。 |
**示例:**
```js
let color = colorPicker.getAverageColor();
console.log('get average color =' + color);
```
![zh-ch_image_Average_Color.png](figures/zh-ch_image_Average_Color.png)
### isBlackOrWhiteOrGrayColor<sup>10+</sup>
isBlackOrWhiteOrGrayColor(color: number): boolean
判断图像是否为黑白灰颜色,返回true或false。
**系统能力:** SystemCapability.Multimedia.Image.Core
**返回值:**
| 类型 | 说明 |
| :------------- | :---------------------------------------------- |
| boolean | 如果此图像为黑白灰颜色,则返回true;否则返回false。 |
**示例:**
```js
let bJudge = colorPicker.isBlackOrWhiteOrGrayColor(0xFFFFFFFF);
console.log('is black or white or gray color[bool](white) =' + bJudge);
```
## Filter
图像效果类,用于将指定的效果添加到输入图像中。在调用Filter的方法前,需要先通过[createEffect](#effectkitcreateeffect)创建一个Filter实例。
......
# @ohos.file.fileUri (文件URI)
该模块提供通过PATH获取文件统一资源标志符(Uniform Resource Identifier,URI),后续可通过使用[@ohos.file.fs](js-apis-file-fs.md)进行相关open、read、write等操作,实现文件分享。
> **说明:**
> - 本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
## 导入模块
```js
import fileUri from "@ohos.file.fileUri";
```
使用该功能模块前,需要先获取其应用沙箱路径,开发示例如下:
```js
import UIAbility from '@ohos.app.ability.UIAbility';
export default class EntryAbility extends UIAbility {
onWindowStageCreate(windowStage) {
let context = this.context;
let pathDir = context.filesDir;
}
}
```
## fileUri.getUriFromPath
getUriFromPath(path: string): string
以同步方法获取文件URI。
**系统能力**:SystemCapability.FileManagement.AppFileService
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ------ | ------ | ---- | -------------------------- |
| path | string | 是 | 文件的沙箱路径 |
**返回值:**
| 类型 | 说明 |
| ---------------------------- | ---------- |
| string | 返回文件URI |
**错误码:**
以下错误码的详细介绍请参见[文件管理子系统错误码](../errorcodes/errorcode-filemanagement.md#错误码适配指导)
| 错误码ID | 错误信息 |
| ---------------------------- | ---------- |
| 401 | The input parameter is invalid |
**示例:**
```js
let filePath = pathDir + "test.txt";
let uri = fileUri.getUriFromPath(filePath);
```
# @ohos.fileShare (文件分享)
该模块提供文件分享能力,提供系统应用将公共目录文件统一资源标志符(Uniform Resource Identifier,URI)以读写权限授权给其他应用的接口,授权后应用可通过[@ohos.file.fs](js-apis-file-fs.md)的相关接口进行相关open、read、write等操作,实现文件分享。
> **说明:**
> - 本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
## 导入模块
```js
import fileShare from '@ohos.fileShare';
```
## fileShare.grantUriPermission
grantUriPermission(uri: string, bundleName: string, mode: number, callback: AsyncCallback&lt;void&gt;): void
对公共目录文件URI进行授权操作,使用callback异步回调。
**需要权限**:ohos.permission.WRITE_MEDIA
**系统接口**:此接口为系统接口
**系统能力**:SystemCapability.FileManagement.AppFileService
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ------ | ------ | ---- | -------------------------- |
| uri | string | 是 | 公共目录文件URI |
| bundleName | string | 是 | 分享目标的包名 |
| mode | number | 是 | 授权的权限,参考[wantConstant.Flags](js-apis-app-ability-wantConstant.md#wantconstantflags)<br/>wantConstant.Flags.FLAG_AUTH_READ_URI_PERMISSION:读授权<br/>wantConstant.Flags.FLAG_AUTH_WRITE_URI_PERMISSION:写授权|
| callback | AsyncCallback&lt;void&gt; | 是 | 异步授权之后的回调 |
**错误码:**
以下错误码的详细介绍请参见[文件管理子系统错误码](../errorcodes/errorcode-filemanagement.md#错误码适配指导)
| 错误码ID | 错误信息 |
| ---------------------------- | ---------- |
| 201 | Permission verification failed |
| 202 | The caller is not a system application |
| 401 | The input parameter is invalid |
| 143000001 | IPC error |
**示例:**
```js
import wantConstant from '@ohos.app.ability.wantConstant';
let uri = 'datashare:///media/image/8';
let bundleName = 'com.demo.test';
try {
fileShare.grantUriPermission(uri, bundleName, wantConstant.Flags.FLAG_AUTH_READ_URI_PERMISSION | wantConstant.Flags.FLAG_AUTH_WRITE_URI_PERMISSION, (err) => {
if (err) {
console.error("grantUriPermission failed with error: " + err);
return;
}
console.info("grantUriPermission success!");
});
} catch (error) {
console.error("grantUriPermission failed with error:" + error);
}
```
## fileShare.grantUriPermission
grantUriPermission(uri: string, bundleName: string, mode: number): Promise&lt;void&gt;
将公共目录文件URI进行授权操作,使用Promise异步回调。
**需要权限**:ohos.permission.WRITE_MEDIA
**系统接口**:此接口为系统接口
**系统能力**:SystemCapability.FileManagement.AppFileService
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ------ | ------ | ---- | -------------------------- |
| uri | string | 是 | 公共目录文件URI |
| bundleName | string | 是 | 分享目标的包名 |
| mode | number | 是 | 授权的权限,参考[wantConstant.Flags](js-apis-app-ability-wantConstant.md#wantconstantflags)<br/>wantConstant.Flags.FLAG_AUTH_READ_URI_PERMISSION:读授权<br/>wantConstant.Flags.FLAG_AUTH_WRITE_URI_PERMISSION:写授权|
**返回值:**
| 类型 | 说明 |
| ---------------------------- | ---------- |
| Promise&lt;void&gt; | Promise对象,无返回值 |
**错误码:**
以下错误码的详细介绍请参见[文件管理子系统错误码](../errorcodes/errorcode-filemanagement.md#错误码适配指导)
| 错误码ID | 错误信息 |
| ---------------------------- | ---------- |
| 201 | Permission verification failed |
| 202 | The caller is not a system application |
| 401 | The input parameter is invalid |
| 143000001 | IPC error |
**示例:**
```js
import wantConstant from '@ohos.app.ability.wantConstant';
let uri = 'datashare:///media/image/8';
let bundleName = 'com.demo.test';
try {
fileShare.grantUriPermission(uri, bundleName, wantConstant.Flags.FLAG_AUTH_READ_URI_PERMISSION |
wantConstant.Flags.FLAG_AUTH_WRITE_URI_PERMISSION).then(function () {
console.info("grantUriPermission success!");
}).catch(function (error) {
console.error("grantUriPermission failed with error:" + error);
});
} catch (error) {
console.error("grantUriPermission failed with error:" + error);
}
```
\ No newline at end of file
......@@ -32,7 +32,16 @@ DatePicker(options?: {start?: Date, end?: Date, selected?: Date})
| 名称 | 参数类型 | 描述 |
| ------| -------------- | -------- |
| lunar | boolean | 日期是否显示农历。<br/>-&nbsp;true:展示农历。<br/>-&nbsp;false:不展示农历。<br/>默认值:false |
| disappearTextStyle<sup>10+</sup> | [PickerTextStyle](#pickertextstyle10类型说明) | 设置所有选项中最上和最下两个选项的文本颜色、字号、字体粗细。 |
| textStyle<sup>10+</sup> | [PickerTextStyle](#pickertextstyle10类型说明) | 设置所有选项中除了最上、最下及选中项以外的文本颜色、字号、字体粗细。 |
| selectedTextStyle<sup>10+</sup> | [PickerTextStyle](#pickertextstyle10类型说明) | 设置选中项的文本颜色、字号、字体粗细。 |
## PickerTextStyle<sup>10+</sup>类型说明
| 参数名 | 参数类型 | 必填 | 参数描述 |
| ------ | ------------------------------------------ | ---- | -------------------------------------------- |
| color | [ResourceColor](ts-types.md#resourcecolor) | 否 | 文本颜色。 |
| font | [Font](ts-types.md#font) | 否 | 文本样式,picker只支持字号、字体粗细的设置。 |
## 事件
......
......@@ -14,7 +14,7 @@
## 接口
TextPicker(options?: {range: string[]|Resource, selected?: number, value?: string})
TextPicker(options?: {range: string[]|Resource|TextPickerRangeContent[], selected?: number, value?: string})
根据range指定的选择范围创建文本选择器。
......@@ -22,15 +22,25 @@ TextPicker(options?: {range: string[]|Resource, selected?: number, value?: strin
| 参数名 | 参数类型 | 必填 | 参数描述 |
| -------- | -------- | -------- | -------- |
| range | string[]&nbsp;\|&nbsp;[Resource](ts-types.md#resource类型) | 是 | 选择器的数据选择列表。 |
| range | string[]&nbsp;\|&nbsp;[Resource](ts-types.md#resource类型)\|[TextPickerRangeContent](#textpickerrangecontent10类型说明)[]<sup>10+</sup> | 是 | 选择器的数据选择列表。不可设置为空数组,若设置为空数组,则不显示;若动态变化为空数组,则保持当前正常值显示。 |
| selected | number | 否 | 设置默认选中项在数组中的索引值。<br/>默认值:0 |
| value | string | 否 | 设置默认选中项的值,优先级低于selected。<br/>默认值:第一个元素值 |
| value | string | 否 | 设置默认选中项的值,优先级低于selected。<br/>默认值:第一个元素值<br/>**说明**:只有显示文本列表时该值有效。显示图片或图片加文本的列表时,该值无效。 |
## TextPickerRangeContent<sup>10+</sup>类型说明
| 参数名 | 参数类型 | 必填 | 参数描述 |
| ------ | -------------------------------------------------------- | ---- | ---------- |
| icon | string&nbsp;\|&nbsp;[Resource](ts-types.md#resource) | 是 | 图片资源。 |
| text | string&nbsp;\|&nbsp;[Resource](ts-types.md#resource) | 否 | 文本信息。 |
## 属性
| 名称 | 参数类型 | 描述 |
| -------- | -------- | -------- |
| defaultPickerItemHeight | number \| string | 设置Picker各选择项的高度。 |
| disappearTextStyle<sup>10+</sup> | [PickerTextStyle](ts-basic-components-datepicker.md#pickertextstyle10类型说明) | 设置所有选项中最上和最下两个选项的文本颜色、字号、字体粗细。 |
| textStyle<sup>10+</sup> | [PickerTextStyle](ts-basic-components-datepicker.md#pickertextstyle10类型说明) | 设置所有选项中除了最上、最下及选中项以外的文本颜色、字号、字体粗细。 |
| selectedTextStyle<sup>10+</sup> | [PickerTextStyle](ts-basic-components-datepicker.md#pickertextstyle10类型说明) | 设置选中项的文本颜色、字号、字体粗细。 |
## 事件
......@@ -38,7 +48,7 @@ TextPicker(options?: {range: string[]|Resource, selected?: number, value?: strin
| 名称 | 描述 |
| -------- | -------- |
| onChange(callback:&nbsp;(value:&nbsp;string,&nbsp;index:&nbsp;number)&nbsp;=&gt;&nbsp;void) | 滑动选中TextPicker文本内容后,触发该回调。<br/>-&nbsp;value:&nbsp;当前选中项的文本。<br/>-&nbsp;index:&nbsp;当前选中项的索引值。 |
| onChange(callback:&nbsp;(value:&nbsp;string,&nbsp;index:&nbsp;number)&nbsp;=&gt;&nbsp;void) | 滑动选中TextPicker文本内容后,触发该回调。<br/>-&nbsp;value:&nbsp;当前选中项的文本。<br/>**说明**:当显示文本或图片加文本列表时,value值为选中项中的文本值,当显示图片列表时,value值为空。<br/>-&nbsp;index:&nbsp;当前选中项的索引值。 |
## 示例
......
......@@ -30,6 +30,9 @@ TimePicker(options?: {selected?: Date})
| 名称 | 参数类型 | 描述 |
| -------- | -------- | -------- |
| useMilitaryTime | boolean | 展示时间是否为24小时制,不支持动态修改。<br/>默认值:false |
| disappearTextStyle<sup>10+</sup> | [PickerTextStyle](ts-basic-components-datepicker.md#pickertextstyle10类型说明) | 设置所有选项中最上和最下两个选项的文本颜色、字号、字体粗细。 |
| textStyle<sup>10+</sup> | [PickerTextStyle](ts-basic-components-datepicker.md#pickertextstyle10类型说明) | 设置所有选项中除了最上、最下及选中项以外的文本颜色、字号、字体粗细。 |
| selectedTextStyle<sup>10+</sup> | [PickerTextStyle](ts-basic-components-datepicker.md#pickertextstyle10类型说明) | 设置选中项的文本颜色、字号、字体粗细。 |
## 事件
......
......@@ -21,6 +21,11 @@ show(options?: DatePickerDialogOptions)
| end | Date | 否 | Date('2100-12-31') | 设置选择器的结束日期。 |
| selected | Date | 否 | 当前系统日期 | 设置当前选中的日期。 |
| lunar | boolean | 否 | false | 日期是否显示为农历。 |
| showTime<sup>10+</sup> | boolean | 否 | false | 是否展示时间项。 |
| useMilitaryTime<sup>10+</sup> | boolean | 否 | false | 展示时间是否为24小时制。 |
| disappearTextStyle<sup>10+</sup> | [PickerTextStyle](ts-basic-components-datepicker.md#pickertextstyle10类型说明) | 否 | - | 设置所有选项中最上和最下两个选项的文本颜色、字号、字体粗细。 |
| textStyle<sup>10+</sup> | [PickerTextStyle](ts-basic-components-datepicker.md#pickertextstyle10类型说明) | 否 | - | 设置所有选项中除了最上、最下及选中项以外的文本颜色、字号、字体粗细。 |
| selectedTextStyle<sup>10+</sup> | [PickerTextStyle](ts-basic-components-datepicker.md#pickertextstyle10类型说明) | 否 | - | 设置选中项的文本颜色、字号、字体粗细。 |
| onAccept | (value: [DatePickerResult](ts-basic-components-datepicker.md#DatePickerResult对象说明)) => void | 否 | - | 点击弹窗中的“确定”按钮时触发该回调。 |
| onCancel | () => void | 否 | - | 点击弹窗中的“取消”按钮时触发该回调。 |
| onChange | (value: [DatePickerResult](ts-basic-components-datepicker.md#DatePickerResult对象说明)) => void | 否 | - | 滑动弹窗中的滑动选择器使当前选中项改变时触发该回调。 |
......
......@@ -17,10 +17,13 @@ show(options?: TextPickerDialogOptions)
| 参数名 | 参数类型 | 必填 | 参数描述 |
| -------- | -------- | -------- | -------- |
| range | string[]&nbsp;\|&nbsp;[Resource](ts-types.md#resource) | 是 | 设置文本选择器的选择范围。 |
| range | string[]&nbsp;\|&nbsp;[Resource](ts-types.md#resource)\|[TextPickerRangeContent](ts-basic-components-textpicker.md#textpickerrangecontent10类型说明)[]<sup>10+</sup> | 是 | 设置文本选择器的选择范围。不可设置为空数组,若设置为空数组,则不弹出弹窗。 |
| selected | number | 否 | 设置选中项的索引值。<br>默认值:0 |
| value | string | 否 | 设置选中项的文本内容。当设置了selected参数时,该参数不生效。如果设置的value值不在range范围内,则默认取range第一个元素。|
| defaultPickerItemHeight | number \| string | 否 | 设置选择器中选项的高度。 |
| disappearTextStyle<sup>10+</sup> | [PickerTextStyle](ts-basic-components-datepicker.md#pickertextstyle10类型说明) | 否 | 设置所有选项中最上和最下两个选项的文本颜色、字号、字体粗细。 |
| textStyle<sup>10+</sup> | [PickerTextStyle](ts-basic-components-datepicker.md#pickertextstyle10类型说明) | 否 | 设置所有选项中除了最上、最下及选中项以外的文本颜色、字号、字体粗细。 |
| selectedTextStyle<sup>10+</sup> | [PickerTextStyle](ts-basic-components-datepicker.md#pickertextstyle10类型说明) | 否 | 设置选中项的文本颜色、字号、字体粗细。 |
| onAccept | (value: [TextPickerResult](#textpickerresult对象说明)) => void | 否 | 点击弹窗中的“确定”按钮时触发该回调。 |
| onCancel | () => void | 否 | 点击弹窗中的“取消”按钮时触发该回调。 |
| onChange | (value: [TextPickerResult](#textpickerresult对象说明)) => void | 否 | 滑动弹窗中的选择器使当前选中项改变时触发该回调。 |
......@@ -29,7 +32,7 @@ show(options?: TextPickerDialogOptions)
| 名称 | 类型 | 描述 |
| -------- | -------- | -------- |
| value | string | 选中项的文本内容。 |
| value | string | 选中项的文本内容。<br/>**说明**:当显示文本或图片加文本列表时,value值为选中项中的文本值,<br/>当显示图片列表时,value值为空。 |
| index | number | 选中项在选择范围数组中的索引值。 |
## 示例
......
......@@ -19,6 +19,9 @@ show(options?: TimePickerDialogOptions)
| -------- | -------- | -------- | -------- |
| selected | Date | 否 | 设置当前选中的时间。<br/>默认值:当前系统时间 |
| useMilitaryTime | boolean | 否 | 展示时间是否为24小时制,默认为12小时制。<br/>默认值:false |
| disappearTextStyle<sup>10+</sup> | [PickerTextStyle](ts-basic-components-datepicker.md#pickertextstyle10类型说明) | 否 | 设置所有选项中最上和最下两个选项的文本颜色、字号、字体粗细。 |
| textStyle<sup>10+</sup> | [PickerTextStyle](ts-basic-components-datepicker.md#pickertextstyle10类型说明) | 否 | 设置所有选项中除了最上、最下及选中项以外的文本颜色、字号、字体粗细。 |
| selectedTextStyle<sup>10+</sup> | [PickerTextStyle](ts-basic-components-datepicker.md#pickertextstyle10类型说明) | 否 | 设置选中项的文本颜色、字号、字体粗细。 |
| onAccept | (value: [TimePickerResult](ts-basic-components-timepicker.md#TimePickerResult对象说明)) => void | 否 | 点击弹窗中的“确定”按钮时触发该回调。 |
| onCancel | () => void | 否 | 点击弹窗中的“取消”按钮时触发该回调。 |
| onChange | (value: [TimePickerResult](ts-basic-components-timepicker.md#TimePickerResult对象说明)) => void | 否 | 滑动弹窗中的选择器使当前选中时间改变时触发该回调。 |
......
......@@ -14,7 +14,7 @@
| -------- | -------- | -------- |
| align | [Alignment](ts-appendix-enums.md#alignment) | 设置元素内容在元素绘制区域内的对齐方式。<br/>默认值:Alignment.Center<br/>从API version 9开始,该接口支持在ArkTS卡片中使用。 |
| direction | [Direction](ts-appendix-enums.md#direction) | 设置元素水平方向的布局。<br/>默认值:Direction.Auto<br/>从API version 9开始,该接口支持在ArkTS卡片中使用。 |
| position | [Position](ts-types.md#position8) | 绝对定位,设置元素左上角相对于父容器左上角偏移位置。在布局容器中,设置该属性不影响父容器布局,仅在绘制时进行位置调整。<br/>从API version 9开始,该接口支持在ArkTS卡片中使用。 |
| position | [Position](ts-types.md#position8) | 绝对定位,设置元素左上角相对于父容器左上角偏移位置。在布局容器中,设置该属性不影响父容器布局,仅在绘制时进行位置调整。<br/>适用于置顶显示、悬浮按钮等组件在父容器中位置固定的场景。<br/>从API version 9开始,该接口支持在ArkTS卡片中使用。 |
| markAnchor | [Position](ts-types.md#position8) | 设置元素在位置定位时的锚点,以元素左上角作为基准点进行偏移。通常配合position和offset属性使用,单独使用时,效果类似offset<br/>默认值:<br/>{<br/>x: 0,<br/>y: 0<br/>}<br/>从API version 9开始,该接口支持在ArkTS卡片中使用。 |
| offset | [Position](ts-types.md#position8) | 相对定位,设置元素相对于自身的偏移量。设置该属性,不影响父容器布局,仅在绘制时进行位置调整。<br/>默认值:<br/>{<br/>x: 0,<br/>y: 0<br/>}<br/>从API version 9开始,该接口支持在ArkTS卡片中使用。 |
| alignRules<sup>9+</sup> | {<br/>left?: { anchor: string, align: [HorizontalAlign](ts-appendix-enums.md#horizontalalign) };<br/>right?: { anchor: string, align: [HorizontalAlign](ts-appendix-enums.md#horizontalalign) };<br/>middle?: { anchor: string, align: [HorizontalAlign](ts-appendix-enums.md#horizontalalign) };<br/>top?: { anchor: string, align: [VerticalAlign](ts-appendix-enums.md#verticalalign) };<br/>bottom?: { anchor: string, align: [VerticalAlign](ts-appendix-enums.md#verticalalign) };<br/>center?: { anchor: string, align: [VerticalAlign](ts-appendix-enums.md#verticalalign) }<br/>} | 指定相对容器的对齐规则,仅当父容器为[RelativeContainer](ts-container-relativecontainer.md)时生效。<br/>-&nbsp;left:设置左对齐参数。<br/>-&nbsp;right:设置右对齐参数。<br/>-&nbsp;middle:设置中间对齐的参数。<br/>-&nbsp;top:设置顶部对齐的参数。<br/>-&nbsp;bottom:设置底部对齐的参数。<br/>-&nbsp;center:设置中心对齐的参数。<br/>该接口支持在ArkTS卡片中使用。<br/>**说明:**<br/>-&nbsp;anchor:设置作为锚点的组件的id值。<br>-&nbsp;align:设置相对于锚点组件的对齐方式。 |
......
# MDNS错误码
> **说明:**
>
> 以下仅介绍本模块特有错误码,通用错误码请参考[通用错误码说明文档](errorcode-universal.md)。
## 2100002 连接服务失败
**错误信息**
Operation failed. Cannot connect to service.
**错误描述**
操作失败,连接系统服务发生异常。
**可能原因**
服务发生异常。
**处理步骤**
检查系统服务运行状态是否正常。
## 2100003 系统内部错误
**错误信息**
System internal error.
**错误描述**
系统内部错误。
**可能原因**
1.内存异常。
2.空指针。
**处理步骤**
1.检查内存空间是否充足,清理内存后重试。
2.系统异常,请稍后重试或重启设备。
## 2204003 重复注册
**错误信息**
Callback duplicated.
**错误描述**
callback 已经存在。
**可能原因**
重复注册相同名称和类型的mDNS服务。
**处理步骤**
检查mDNS服务是否存在。
## 2204008 删除服务失败
**错误信息**
Service instance duplicated.
**错误描述**
想要移除的服务不存在。
**可能原因**
之前已经把服务删除,二次删除相同服务。
**处理步骤**
检查mDNS服务是否存在。
## 2204010 发送消息失败
**错误信息**
Send packet failed.
**错误描述**
发送信息失败。
**可能原因**
局域网内不存在该mDNS服务。
**处理步骤**
检查局域网内目标mDNS服务是否存在。
## 2204006 解析服务超时
**错误信息**
Request timeout.
**错误描述**
解析服务超时。
**可能原因**
局域网内不存在该类型的mDNS服务。
**处理步骤**
检查局域网内目标类型的mDNS服务是否存在。
\ No newline at end of file
......@@ -97,7 +97,6 @@
- [HiSysEvent订阅指导](subsys-dfx-hisysevent-listening.md)
- [HiSysEvent查询指导](subsys-dfx-hisysevent-query.md)
- [HiSysEvent工具使用指导](subsys-dfx-hisysevent-tool.md)
- [HiDumper开发指导](subsys-dfx-hidumper.md)
- [HiChecker开发指导](subsys-dfx-hichecker.md)
- [Faultlogger开发指导](subsys-dfx-faultlogger.md)
- [Hiview开发指导](subsys-dfx-hiview.md)
......@@ -105,6 +104,7 @@
- [bytrace使用指导](subsys-toolchain-bytrace-guide.md)
- [hdc使用指导](subsys-toolchain-hdc-guide.md)
- [hiperf使用指导](subsys-toolchain-hiperf.md)
- [HiDumper使用指导](subsys-dfx-hidumper.md)
- 电源管理
- 显示管理
- [系统亮度范围定制开发指导](subsys-power-brightness-customization.md)
# HiDumper开发指导
# HiDumper概述
## 概述
### 功能简介
## 功能简介
HiDumper是OpenHarmony为开发、测试人员、IDE工具提供的系统信息获取工具,帮助开发者分析、定位问题。本章节内容适用于标准系统。
### 源码目录说明
## 源码目录说明
```
......@@ -34,10 +31,10 @@ HiDumper是OpenHarmony为开发、测试人员、IDE工具提供的系统信息
```
## 使用指导
# HiDumper使用指导
### 命令参数说明
## 命令参数说明
**表1** HiDumper命令参数说明
......@@ -63,7 +60,7 @@ HiDumper是OpenHarmony为开发、测试人员、IDE工具提供的系统信息
| --zip | 将导出信息压缩到固定文件夹下。 |
### 使用实例
## 使用实例
HiDumper可以为开发者导出系统当前基本信息,通过这些基本信息可以定位分析问题。给子服务和元能力传递复杂参数时,参数需要加双引号。
......
......@@ -230,4 +230,10 @@ module.json配置文件中的ability的[name](../../../application-dev/quick-sta
删除配置文件module.json[distroFilter](../../../application-dev/quick-start/module-configuration-file.md)标签,IDE中不再支持配置该标签,使用该标签会导致IDE编译报错
**适配指导**<br>
删除module.json中[distroFilter](../../../application-dev/quick-start/module-configuration-file.md)标签,使用distributionFilter替代
\ No newline at end of file
删除module.json中[distroFilter](../../../application-dev/quick-start/module-configuration-file.md)标签,使用distributionFilter替代
## cl.bundlemanager.20 module.json配置文件中launchTypede标签standard模式修改为multiton
删除module.json中[launchType](../../../application-dev/quick-start/module-configuration-file.md)标签的standard模式修改为multiton
**适配指导**<br>
删除module.json中[launchType](../../../application-dev/quick-start/module-configuration-file.md)标签的standard模式,使用multiton替代
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册