提交 2542e327 编写于 作者: L liuziwei

Merge gitee.com:openharmony/docs into liuziwei

Change-Id: I6d24deca837397ba5aec299e19e5ae27007c4c82
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
HAR(Harmony Archive)是静态共享包,可以包含代码、C++库、资源和配置文件。通过HAR可以实现多个模块或多个工程共享ArkUI组件、资源等相关代码。HAR不同于HAP,不能独立安装运行在设备上,只能作为应用模块的依赖项被引用。 HAR(Harmony Archive)是静态共享包,可以包含代码、C++库、资源和配置文件。通过HAR可以实现多个模块或多个工程共享ArkUI组件、资源等相关代码。HAR不同于HAP,不能独立安装运行在设备上,只能作为应用模块的依赖项被引用。
## 创建HAR模块 ## 创建HAR模块
HAR对应DevEco Studio工程中的“Library”类型的[Module](https://developer.harmonyos.com/cn/docs/documentation/doc-guides-V3/add_new_module-0000001053223741-V3),可以通过DevEco Studio创建一个HAR模块。HAR模块默认不开启混淆能力,开启混淆能力,需要把HAR模块的build-profile.json5文件中的artifactType字段设置为obfuscation,配置如下所示: 通过DevEco Studio创建一个HAR模块,创建方式可[参考](https://developer.harmonyos.com/cn/docs/documentation/doc-guides-V3/creating_har_api9-0000001518082393-V3#section143510369612)。HAR模块默认不开启混淆能力,开启混淆能力,需要把HAR模块的build-profile.json5文件中的artifactType字段设置为obfuscation,配置如下所示:
```json ```json
{ {
...@@ -90,7 +90,7 @@ HAR模块编译打包时会把资源打包到HAR中。在编译构建HAP时,De ...@@ -90,7 +90,7 @@ HAR模块编译打包时会把资源打包到HAR中。在编译构建HAP时,De
- 依赖的HAR模块,如果依赖的多个HAR之间有资源冲突,会按照依赖顺序进行覆盖(依赖顺序在前的优先级较高)。 - 依赖的HAR模块,如果依赖的多个HAR之间有资源冲突,会按照依赖顺序进行覆盖(依赖顺序在前的优先级较高)。
## 引用HAR的ArkUI组件、接口、资源 ## 引用HAR的ArkUI组件、接口、资源
引用HAR前,需要先配置对HAR的依赖,配置方式可[参考](https://developer.harmonyos.com/cn/docs/documentation/doc-guides/ohos-development-npm-package-0000001222578434#section89674298391) 引用HAR前,需要先配置对HAR的依赖,配置方式可[参考](https://developer.harmonyos.com/cn/docs/documentation/doc-guides-V3/creating_har_api9-0000001518082393-V3#section611662614153)
### 引用HAR的ArkUI组件 ### 引用HAR的ArkUI组件
...@@ -167,3 +167,7 @@ struct Index { ...@@ -167,3 +167,7 @@ struct Index {
} }
} }
``` ```
## 发布HAR
发布HAR可[参考](https://developer.harmonyos.com/cn/docs/documentation/doc-guides-V3/creating_har_api9-0000001518082393-V3#section1213451811512)
...@@ -5,7 +5,7 @@ ...@@ -5,7 +5,7 @@
## 开发应用内HSP ## 开发应用内HSP
`HSP`模块可以在`DevEco Studio`中由指定模板创建,我们以创建一个名为`library``HSP`模块为例。基本的工程目录结构大致如下: 通过DevEco Studio创建一个HSP模块,创建方式可[参考](https://developer.harmonyos.com/cn/docs/documentation/doc-guides-V3/hsp-0000001521396322-V3#section7717162312546),我们以创建一个名为`library``HSP`模块为例。基本的工程目录结构大致如下:
``` ```
library library
├── src ├── src
...@@ -88,7 +88,7 @@ export { MyTitleBar } from './components/MyTitleBar' ...@@ -88,7 +88,7 @@ export { MyTitleBar } from './components/MyTitleBar'
### 导出native方法 ### 导出native方法
`HSP`中也可以包含`C++`编写的`so`。对于`so`中的`native`方法,`HSP`通过间接的方式导出,以导出`libnative.so`的乘法接口`multi`为例: `HSP`中也可以包含`C++`编写的`so`。对于`so`中的`native`方法,`HSP`通过间接的方式导出,以导出`libnative.so`的乘法接口`multi`为例:
```ts ```ts
// ibrary/src/main/ets/utils/nativeTest.ts // library/src/main/ets/utils/nativeTest.ts
import native from "libnative.so" import native from "libnative.so"
export function nativeMulti(a: number, b: number) { export function nativeMulti(a: number, b: number) {
...@@ -103,15 +103,9 @@ export { nativeMulti } from './utils/nativeTest' ...@@ -103,15 +103,9 @@ export { nativeMulti } from './utils/nativeTest'
``` ```
## 使用应用内HSP ## 使用应用内HSP
要使用`HSP`中的接口,首先需要在使用方的`oh-package.json5`中配置对它的依赖。如果应用内`HSP`和使用方在同一工程下,可以直接本地引用,例如: 要使用HSP中的接口,首先需要在使用方的oh-package.json5中配置对它的依赖,配置方式可[参考](https://developer.harmonyos.com/cn/docs/documentation/doc-guides-V3/hsp-0000001521396322-V3#section6161154819195)
```json 依赖配置成功后,就可以像使用HAR一样调用HSP的对外接口了。 例如,上面的library已经导出了下面这些接口:
// entry/oh-package.json5
"dependencies": {
"library": "file:../library"
}
```
然后就可以像使用`HAR`一样调用`HSP`的对外接口了。
例如,上面的`library`已经导出了下面这些接口:
```ts ```ts
// library/src/main/ets/index.ets // library/src/main/ets/index.ets
export { Log, add, minus } from './utils/test' export { Log, add, minus } from './utils/test'
......
...@@ -224,6 +224,89 @@ try { ...@@ -224,6 +224,89 @@ try {
}; };
``` ```
## screen.stopExpand<sup>10+</sup>
stopExpand(expandScreen:Array&lt;number&gt;, callback: AsyncCallback&lt;void&gt;): void
停止屏幕的扩展模式,使用callback异步回调。
**系统能力:** SystemCapability.WindowManager.WindowManager.Core
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ------------ | --------------------------- | --- | -------------------------------------------------------------- |
| expandScreen | Array&lt;number&gt; | 是 | 扩展屏幕id集合。 |
| callback | AsyncCallback&lt;void&gt; | 是 | 回调函数。当停止屏幕扩展模式成功,err为undefined,否则为错误对象。 |
**错误码:**
以下错误码的详细介绍请参见[屏幕错误码](../errorcodes/errorcode-display.md)
| 错误码ID | 错误信息 |
| ------- | ----------------------- |
| 1400001 | Invalid display or screen. |
**示例:**
```js
try {
let expandScreenIds = [1, 2, 3];
screen.stopExpand(expandScreenIds, (err) => {
if (err.code) {
console.error('Failed to stop expand screens. Code:' + JSON.stringify(err));
return;
}
console.info('Succeeded in stopping expand screens.');
});
} catch (exception) {
console.error('Failed to stop expand screens. Code: ' + JSON.stringify(exception));
};
```
## screen.stopExpand<sup>10+</sup>
stopExpand(expandScreen:Array&lt;number&gt;): Promise&lt;void&gt;
停止屏幕的扩展模式,使用Promise异步回调。
**系统能力:** SystemCapability.WindowManager.WindowManager.Core
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ------------ | ------------------- | --- | --------------- |
| expandScreen | Array&lt;number&gt; | 是 | 扩展屏幕id集合。 |
**返回值:**
| 类型 | 说明 |
| --------------------- | ----------------------- |
| Promise&lt;void&gt; | 无返回结果的Promise对象。 |
**错误码:**
以下错误码的详细介绍请参见[屏幕错误码](../errorcodes/errorcode-display.md)
| 错误码ID | 错误信息 |
| ------- | ----------------------- |
| 1400001 | Invalid display or screen. |
**示例:**
```js
try {
let expandScreenIds = [1, 2, 3];
screen.stopExpand(expandScreenIds).then(() => {
console.info('Succeeded in stopping expand screens.');
}).catch((err) => {
console.error('Failed to stop expand screens. Code:' + JSON.stringify(err));
});
} catch (exception) {
console.error('Failed to stop expand screens. Code:' + JSON.stringify(exception));
};
```
## screen.makeMirror ## screen.makeMirror
makeMirror(mainScreen:number, mirrorScreen:Array&lt;number&gt;, callback: AsyncCallback&lt;number&gt;): void makeMirror(mainScreen:number, mirrorScreen:Array&lt;number&gt;, callback: AsyncCallback&lt;number&gt;): void
...@@ -311,6 +394,89 @@ try { ...@@ -311,6 +394,89 @@ try {
}; };
``` ```
## screen.stopMirror<sup>10+</sup>
stopMirror(mirrorScreen:Array&lt;number&gt;, callback: AsyncCallback&lt;void&gt;): void
停止屏幕的镜像模式,使用callback异步回调。
**系统能力:** SystemCapability.WindowManager.WindowManager.Core
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ------------ | --------------------------- | --- | -------------------------------------------------------------- |
| mirrorScreen | Array&lt;number&gt; | 是 | 镜像屏幕id集合。 |
| callback | AsyncCallback&lt;void&gt; | 是 | 回调函数。当停止屏幕镜像模式成功,err为undefined,否则为错误对象。 |
**错误码:**
以下错误码的详细介绍请参见[屏幕错误码](../errorcodes/errorcode-display.md)
| 错误码ID | 错误信息 |
| ------- | ----------------------- |
| 1400001 | Invalid display or screen. |
**示例:**
```js
try {
let mirrorScreenIds = [1, 2, 3];
screen.stopMirror(mirrorScreenIds, (err) => {
if (err.code) {
console.error('Failed to stop mirror screens. Code:' + JSON.stringify(err));
return;
}
console.info('Succeeded in stopping mirror screens.');
});
} catch (exception) {
console.error('Failed to stop mirror screens. Code: ' + JSON.stringify(exception));
};
```
## screen.stopMirror<sup>10+</sup>
stopMirror(mirrorScreen:Array&lt;number&gt;): Promise&lt;void&gt;
停止屏幕的镜像模式,使用Promise异步回调。
**系统能力:** SystemCapability.WindowManager.WindowManager.Core
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ------------ | ------------------- | --- | --------------- |
| mirrorScreen | Array&lt;number&gt; | 是 | 镜像屏幕id集合。 |
**返回值:**
| 类型 | 说明 |
| --------------------- | ----------------------- |
| Promise&lt;void&gt; | 无返回结果的Promise对象。 |
**错误码:**
以下错误码的详细介绍请参见[屏幕错误码](../errorcodes/errorcode-display.md)
| 错误码ID | 错误信息 |
| ------- | ----------------------- |
| 1400001 | Invalid display or screen. |
**示例:**
```js
try {
let mirrorScreenIds = [1, 2, 3];
screen.stopMirror(mirrorScreenIds).then(() => {
console.info('Succeeded in stopping mirror screens.');
}).catch((err) => {
console.error('Failed to stop mirror screens. Code:' + JSON.stringify(err));
});
} catch (exception) {
console.error('Failed to stop mirror screens. Code:' + JSON.stringify(exception));
};
```
## screen.createVirtualScreen ## screen.createVirtualScreen
createVirtualScreen(options:VirtualScreenOption, callback: AsyncCallback&lt;Screen&gt;): void createVirtualScreen(options:VirtualScreenOption, callback: AsyncCallback&lt;Screen&gt;): void
......
...@@ -23,7 +23,7 @@ URLParams的构造函数。 ...@@ -23,7 +23,7 @@ URLParams的构造函数。
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
| init | string[][] \| Record&lt;string, string&gt; \| string \| URLSearchParams | 否 | 入参对象。<br/>- string[][]:字符串二维数组<br/>- Record&lt;string, string&gt;:对象列表<br/>- string:字符串<br/>- URLSearchParams:对象 | | init | string[][] \| Record&lt;string, string&gt; \| string \| URLSearchParams | 否 | 入参对象。<br/>- string[][]:字符串二维数组<br/>- Record&lt;string, string&gt;:对象列表<br/>- string:字符串<br/>- URLSearchParams:对象<br/>- 默认值:null。 |
**示例:** **示例:**
...@@ -150,7 +150,7 @@ forEach(callbackFn: (value: string, key: string, searchParams: this) => void, th ...@@ -150,7 +150,7 @@ forEach(callbackFn: (value: string, key: string, searchParams: this) => void, th
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
| callbackFn | function | 是 | 回调函数。 | | callbackFn | function | 是 | 回调函数。 |
| thisArg | Object | 否 | callbackFn被调用时用作this值 | | thisArg | Object | 否 | callbackFn被调用时用作this值,默认值是本对象。 |
**表1** callbackFn的参数说明 **表1** callbackFn的参数说明
...@@ -404,7 +404,7 @@ URL的构造函数。 ...@@ -404,7 +404,7 @@ URL的构造函数。
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
| url | string | 是 | 入参对象。 | | url | string | 是 | 入参对象。 |
| base | string \| URL | 否 | 入参字符串或者对象。<br/>- string:字符串<br/>- URL:字符串或对象 | | base | string \| URL | 否 | 入参字符串或者对象。<br/>- string:字符串<br/>- URL:字符串或对象<br/>- 默认值是空字符串或空对象。 |
**示例:** **示例:**
...@@ -444,7 +444,7 @@ URL静态成员函数。 ...@@ -444,7 +444,7 @@ URL静态成员函数。
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
| url | string | 是 | 入参对象。 | | url | string | 是 | 入参对象。 |
| base | string \| URL | 否 | 入参字符串或者对象。<br/>- string:字符串<br/>- URL:字符串或对象 | | base | string \| URL | 否 | 入参字符串或者对象。<br/>- string:字符串<br/>- URL:字符串或对象<br/>- 默认值是空字符串或空对象。 |
**错误码:** **错误码:**
...@@ -522,7 +522,7 @@ URLSearchParams的构造函数。 ...@@ -522,7 +522,7 @@ URLSearchParams的构造函数。
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
| init | string[][] \| Record&lt;string, string&gt; \| string \| URLSearchParams | 否 | 入参对象。<br/>- string[][]:字符串二维数组<br/>- Record&lt;string, string&gt;:对象列表<br/>- string:字符串<br/>- URLSearchParams:对象 | | init | string[][] \| Record&lt;string, string&gt; \| string \| URLSearchParams | 否 | 入参对象。<br/>- string[][]:字符串二维数组<br/>- Record&lt;string, string&gt;:对象列表<br/>- string:字符串<br/>- URLSearchParams:对象<br/>- 默认值:null。 |
**示例:** **示例:**
...@@ -665,7 +665,7 @@ forEach(callbackFn: (value: string, key: string, searchParams: this) => void, th ...@@ -665,7 +665,7 @@ forEach(callbackFn: (value: string, key: string, searchParams: this) => void, th
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
| callbackFn | function | 是 | 回调函数。 | | callbackFn | function | 是 | 回调函数。 |
| thisArg | Object | 否 | callbackFn被调用时用作this值 | | thisArg | Object | 否 | callbackFn被调用时用作this值,默认值是本对象。 |
**表1** callbackFn的参数说明 **表1** callbackFn的参数说明
......
...@@ -547,7 +547,7 @@ TextEncoder的构造函数。 ...@@ -547,7 +547,7 @@ TextEncoder的构造函数。
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| ----- | ---- | ---- | ---- | | ----- | ---- | ---- | ---- |
| encoding | string | 否 | 编码格式 | | encoding | string | 否 | 编码格式,默认值为'utf-8'。 |
**示例:** **示例:**
...@@ -567,7 +567,7 @@ encodeInto(input?: string): Uint8Array ...@@ -567,7 +567,7 @@ encodeInto(input?: string): Uint8Array
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| ------ | ------ | ---- | ------------------ | | ------ | ------ | ---- | ------------------ |
| input | string | 否 | 需要编码的字符串。 | | input | string | 否 | 需要编码的字符串,默认值是空字符串。 |
**返回值:** **返回值:**
...@@ -665,7 +665,7 @@ encode(input?: string): Uint8Array ...@@ -665,7 +665,7 @@ encode(input?: string): Uint8Array
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
| input | string | 否 | 需要编码的字符串。 | | input | string | 否 | 需要编码的字符串,默认值是空字符串。 |
**返回值:** **返回值:**
......
...@@ -162,9 +162,9 @@ getScanResults(callback: AsyncCallback&lt;Array&lt;WifiScanInfo&gt;&gt;): void ...@@ -162,9 +162,9 @@ getScanResults(callback: AsyncCallback&lt;Array&lt;WifiScanInfo&gt;&gt;): void
**示例:** **示例:**
```js ```js
import wifi from '@ohos.wifi'; import wifi from '@ohos.wifiManager';
wifi.getScanInfos((err, result) => { wifi.getScanResults((err, result) => {
if (err) { if (err) {
console.error("get scan info error"); console.error("get scan info error");
return; return;
...@@ -185,7 +185,7 @@ getScanResults(callback: AsyncCallback&lt;Array&lt;WifiScanInfo&gt;&gt;): void ...@@ -185,7 +185,7 @@ getScanResults(callback: AsyncCallback&lt;Array&lt;WifiScanInfo&gt;&gt;): void
} }
}); });
wifi.getScanInfos().then(result => { wifi.getScanResults().then(result => {
var len = Object.keys(result).length; var len = Object.keys(result).length;
console.log("wifi received scan info: " + len); console.log("wifi received scan info: " + len);
for (var i = 0; i < len; ++i) { for (var i = 0; i < len; ++i) {
...@@ -247,6 +247,37 @@ WLAN热点信息。 ...@@ -247,6 +247,37 @@ WLAN热点信息。
| WIFI_SEC_TYPE_WAPI_PSK<sup>9+</sup> | 9 | WAPI-PSK加密类型。 | | WIFI_SEC_TYPE_WAPI_PSK<sup>9+</sup> | 9 | WAPI-PSK加密类型。 |
## WifiBandType<sup>10+</sup>
表示WIFI频段类型的枚举。
**系统能力:** SystemCapability.Communication.WiFi.STA
| **名称** | **值** | **说明** |
| -------- | -------- | -------- |
| WIFI_BAND_NONE | 0 | 无效频段类型。 |
| WIFI_BAND_2G | 1 | 2.4G频段类型。 |
| WIFI_BAND_5G | 2 | 5G频段类型。 |
| WIFI_BAND_6G | 3 | 6G频段类型。 |
| WIFI_BAND_60G | 4 | 60G频段类型。 |
## WifiStandard<sup>10+</sup>
表示WIFI标准的枚举。
**系统能力:** SystemCapability.Communication.WiFi.STA
| **名称** | **值** | **说明** |
| -------- | -------- | -------- |
| WIFI_STANDARD_UNDEFINED | 0 | 无效WIFI标准类型。 |
| WIFI_STANDARD_11A | 1 | 802.11a WiFi标准类型。 |
| WIFI_STANDARD_11B | 2 | 802.11b WiFi标准类型。 |
| WIFI_STANDARD_11G | 3 | 802.11g WiFi标准类型。 |
| WIFI_STANDARD_11N | 4 | 802.11n WiFi标准类型。 |
| WIFI_STANDARD_11AC | 5 | 802.11ac WiFi标准类型。 |
| WIFI_STANDARD_11AX | 6 | 802.11ax WiFi标准类型。 |
| WIFI_STANDARD_11AD | 7 | 802.11ad WiFi标准类型。 |
## WifiInfoElem<sup>9+</sup> ## WifiInfoElem<sup>9+</sup>
WLAN热点信息。 WLAN热点信息。
...@@ -623,7 +654,7 @@ getCandidateConfigs(): &nbsp;Array&lt;[WifiDeviceConfig](#wifideviceconfig)&gt; ...@@ -623,7 +654,7 @@ getCandidateConfigs(): &nbsp;Array&lt;[WifiDeviceConfig](#wifideviceconfig)&gt;
connectToCandidateConfig(networkId: number): void connectToCandidateConfig(networkId: number): void
连接到候选网络 应用使用该接口连接到自己添加的候选网络(如果当前已经连接到热点,需要先断开连接)
**需要权限:** ohos.permission.SET_WIFI_INFO **需要权限:** ohos.permission.SET_WIFI_INFO
...@@ -648,7 +679,7 @@ connectToCandidateConfig(networkId: number): void ...@@ -648,7 +679,7 @@ connectToCandidateConfig(networkId: number): void
connectToNetwork(networkId: number): void connectToNetwork(networkId: number): void
连接到指定网络。 连接到指定网络(如果当前已经连接到热点,请先使用disconnet()接口断开连接)
**系统接口:** 此接口为系统接口。 **系统接口:** 此接口为系统接口。
...@@ -675,7 +706,7 @@ connectToNetwork(networkId: number): void ...@@ -675,7 +706,7 @@ connectToNetwork(networkId: number): void
connectToDevice(config: WifiDeviceConfig): void connectToDevice(config: WifiDeviceConfig): void
连接到指定网络。 连接到指定网络(如果当前已经连接到热点,请先使用disconnet()接口断开连接)
**系统接口:** 此接口为系统接口。 **系统接口:** 此接口为系统接口。
...@@ -803,7 +834,7 @@ getLinkedInfo(callback: AsyncCallback&lt;WifiLinkedInfo&gt;): void ...@@ -803,7 +834,7 @@ getLinkedInfo(callback: AsyncCallback&lt;WifiLinkedInfo&gt;): void
**示例:** **示例:**
```js ```js
import wifi from '@ohos.wifi'; import wifi from '@ohos.wifiManager';
wifi.getLinkedInfo((err, data) => { wifi.getLinkedInfo((err, data) => {
if (err) { if (err) {
...@@ -834,18 +865,22 @@ getLinkedInfo(callback: AsyncCallback&lt;WifiLinkedInfo&gt;): void ...@@ -834,18 +865,22 @@ getLinkedInfo(callback: AsyncCallback&lt;WifiLinkedInfo&gt;): void
| networkId | number | 是 | 否 | 网络配置ID。 <br /> **系统接口:** 此接口为系统接口。 | | networkId | number | 是 | 否 | 网络配置ID。 <br /> **系统接口:** 此接口为系统接口。 |
| rssi | number | 是 | 否 | 热点的信号强度(dBm)。 | | rssi | number | 是 | 否 | 热点的信号强度(dBm)。 |
| band | number | 是 | 否 | WLAN接入点的频段。 | | band | number | 是 | 否 | WLAN接入点的频段。 |
| linkSpeed | number | 是 | 否 | WLAN接入点的速度。 | | linkSpeed | number | 是 | 否 | WLAN接入点的上行速度。 |
| rxLinkSpeed<sup>10+</sup> | number | 是 | 否 | WLAN接入点的下行速度。 |
| maxSupportedTxLinkSpeed<sup>10+</sup> | number | 是 | 否 | 当前支持的最大上行速率。 |
| maxSupportedRxLinkSpeed<sup>10+</sup> | number | 是 | 否 | 当前支持的最大下行速率。 |
| frequency | number | 是 | 否 | WLAN接入点的频率。 | | frequency | number | 是 | 否 | WLAN接入点的频率。 |
| isHidden | boolean | 是 | 否 | WLAN接入点是否是隐藏网络。 | | isHidden | boolean | 是 | 否 | WLAN接入点是否是隐藏网络。 |
| isRestricted | boolean | 是 | 否 | WLAN接入点是否限制数据量。 | | isRestricted | boolean | 是 | 否 | WLAN接入点是否限制数据量。 |
| chload | number | 是 | 否 | 连接负载,值越大表示负载约高。 <br /> **系统接口:** 此接口为系统接口。 | | chload | number | 是 | 否 | 连接负载,值越大表示负载约高。 <br /> **系统接口:** 此接口为系统接口。 |
| snr | number | 是 | 否 | 信噪比。 <br /> **系统接口:** 此接口为系统接口。 | | snr | number | 是 | 否 | 信噪比。 <br /> **系统接口:** 此接口为系统接口。 |
| macType<sup>9+</sup> | number | 是 | 否 | MAC地址类型。 | | macType | number | 是 | 否 | MAC地址类型。 |
| macAddress | string | 是 | 否 | 设备的MAC地址。 | | macAddress | string | 是 | 否 | 设备的MAC地址。 |
| ipAddress | number | 是 | 否 | WLAN连接的IP地址。 | | ipAddress | number | 是 | 否 | WLAN连接的IP地址。 |
| suppState | [SuppState](#suppstate) | 是 | 否 | 请求状态。 <br /> **系统接口:** 此接口为系统接口。 | | suppState | [SuppState](#suppstate) | 是 | 否 | 请求状态。 <br /> **系统接口:** 此接口为系统接口。 |
| connState | [ConnState](#connstate) | 是 | 否 | WLAN连接状态。 | | connState | [ConnState](#connstate) | 是 | 否 | WLAN连接状态。 |
| channelWidth<sup>10+</sup> | [WifiChannelWidth](#wifichannelwidth) | 是 | 否 | 当前连接热点的信道带宽。 |
| wifiStandard<sup>10+</sup> | [WifiStandard](#wifistandard) | 是 | 否 | 当前连接热点的WiFi标准。 |
## ConnState<sup>9+</sup> ## ConnState<sup>9+</sup>
...@@ -1248,6 +1283,44 @@ removeDevice(id: number): void ...@@ -1248,6 +1283,44 @@ removeDevice(id: number): void
| -------- | -------- | | -------- | -------- |
| 2501000 | Operation failed.| | 2501000 | Operation failed.|
## wifi.isBandTypeSupported<sup>10+</sup>
isBandTypeSupported(bandType: WifiBandType): boolean
判断当前频段是否支持。
**需要权限:** ohos.permission.GET_WIFI_INFO。
**系统能力:** SystemCapability.Communication.WiFi.STA
**错误码:**
以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)
| **类型** | **说明** |
| -------- | -------- |
| 2501000 | Operation failed.|
## wifi.get5GChannelList<sup>10+</sup>
get5GChannelList(): Array<number>
获取当前设备支持的5G信道列表。
**系统接口:** 此接口为系统接口。
**需要权限:** ohos.permission.GET_WIFI_INFO 和 ohos.permission.GET_WIFI_CONFIG。
**系统能力:** SystemCapability.Communication.WiFi.STA
**错误码:**
以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)
| **类型** | **说明** |
| -------- | -------- |
| 2501000 | Operation failed.|
## wifi.enableHotspot<sup>9+</sup> ## wifi.enableHotspot<sup>9+</sup>
enableHotspot(): void enableHotspot(): void
...@@ -1376,12 +1449,12 @@ setHotspotConfig(config: HotspotConfig): void ...@@ -1376,12 +1449,12 @@ setHotspotConfig(config: HotspotConfig): void
| **名称** | **类型** | **可读** | **可写** | **说明** | | **名称** | **类型** | **可读** | **可写** | **说明** |
| -------- | -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- | -------- |
| ssid | string | 是 | | 热点的SSID,编码格式为UTF-8。 | | ssid | string | 是 | | 热点的SSID,编码格式为UTF-8。 |
| securityType | [WifiSecurityType](#wifisecuritytype) | 是 | | 加密类型。 | | securityType | [WifiSecurityType](#wifisecuritytype) | 是 | | 加密类型。 |
| band | number | 是 | | 热点的带宽。1: 2.4G, 2: 5G, 3: 双模频段 | | band | number | 是 | | 热点的带宽。1: 2.4G, 2: 5G, 3: 双模频段 |
| preSharedKey | string | 是 | 否 | 热点的密钥。 | | channel<sup>10+</sup> | number | 是 | 是 | 热点的信道(2.4G:1~14,5G:7~196,双模频段:暂不支持)。 |
| maxConn | number | 是 | 否 | 最大设备连接数。 | | preSharedKey | string | 是 | 是 | 热点的密钥。 |
| maxConn | number | 是 | 是 | 最大设备连接数。 |
## wifi.getHotspotConfig<sup>9+</sup> ## wifi.getHotspotConfig<sup>9+</sup>
...@@ -1780,7 +1853,7 @@ p2pConnect(config: WifiP2PConfig): void ...@@ -1780,7 +1853,7 @@ p2pConnect(config: WifiP2PConfig): void
**示例:** **示例:**
```js ```js
import wifi from '@ohos.wifi'; import wifi from '@ohos.wifiManager';
var recvP2pConnectionChangeFunc = result => { var recvP2pConnectionChangeFunc = result => {
console.info("p2p connection change receive event: " + JSON.stringify(result)); console.info("p2p connection change receive event: " + JSON.stringify(result));
...@@ -2085,7 +2158,7 @@ off(type: "wifiStateChange", callback?: Callback&lt;number&gt;): void ...@@ -2085,7 +2158,7 @@ off(type: "wifiStateChange", callback?: Callback&lt;number&gt;): void
**示例:** **示例:**
```js ```js
import wifi from '@ohos.wifi'; import wifi from '@ohos.wifiManager';
var recvPowerNotifyFunc = result => { var recvPowerNotifyFunc = result => {
console.info("Receive power state change event: " + result); console.info("Receive power state change event: " + result);
......
...@@ -32,7 +32,7 @@ XmlSerializer的构造函数。 ...@@ -32,7 +32,7 @@ XmlSerializer的构造函数。
```js ```js
let arrayBuffer = new ArrayBuffer(2048); let arrayBuffer = new ArrayBuffer(2048);
let thatSer = new xml.XmlSerializer(arrayBuffer,"utf-8"); let thatSer = new xml.XmlSerializer(arrayBuffer, "utf-8");
thatSer.setDeclaration(); thatSer.setDeclaration();
let result = '<?xml version="1.0" encoding="utf-8"?>'; let result = '<?xml version="1.0" encoding="utf-8"?>';
let view = new Uint8Array(arrayBuffer); let view = new Uint8Array(arrayBuffer);
...@@ -400,13 +400,9 @@ let strXml = ...@@ -400,13 +400,9 @@ let strXml =
' </h:tr>' + ' </h:tr>' +
' </h:table>' + ' </h:table>' +
'</note>'; '</note>';
let arrayBuffer = new ArrayBuffer(strXml.length); let textEncoder = new util.TextEncoder();
let bufView = new Uint8Array(arrayBuffer); let arrbuffer = textEncoder.encodeInto(strXml);
let strLen = strXml.length; let that = new xml.XmlPullParser(arrbuffer.buffer, 'UTF-8');
for (let i = 0; i < strLen; ++i) {
bufView[i] = strXml.charCodeAt(i);
}
let that = new xml.XmlPullParser(arrayBuffer, 'UTF-8');
let str1 = ''; let str1 = '';
function func1(name, value){ function func1(name, value){
str1 += name+':'+value; str1 += name+':'+value;
...@@ -442,13 +438,9 @@ let strXml = ...@@ -442,13 +438,9 @@ let strXml =
' <todo>Work</todo>' + ' <todo>Work</todo>' +
' <todo>Play</todo>' + ' <todo>Play</todo>' +
'</note>'; '</note>';
let arrayBuffer = new ArrayBuffer(strXml.length); let textEncoder = new util.TextEncoder();
let bufView = new Uint8Array(arrayBuffer); let arrbuffer = textEncoder.encodeInto(strXml);
let strLen = strXml.length; let that = new xml.XmlPullParser(arrbuffer.buffer);
for (let tmp = 0; tmp < strLen; ++tmp) {
bufView[tmp] = strXml.charCodeAt(tmp);
}
let that = new xml.XmlPullParser(arrayBuffer);
let arrTag = {}; let arrTag = {};
let str = ""; let str = "";
let i = 0; let i = 0;
...@@ -513,13 +505,9 @@ let strXml = ...@@ -513,13 +505,9 @@ let strXml =
' <todo>Work</todo>' + ' <todo>Work</todo>' +
' <todo>Play</todo>' + ' <todo>Play</todo>' +
'</note>'; '</note>';
let arrayBuffer = new ArrayBuffer(strXml.length); let textEncoder = new util.TextEncoder();
let bufView = new Uint8Array(arrayBuffer); let arrbuffer = textEncoder.encodeInto(strXml);
let strLen = strXml.length; let that = new xml.XmlPullParser(arrbuffer.buffer);
for (let tmp = 0; tmp < strLen; ++tmp) {
bufView[tmp] = strXml.charCodeAt(tmp);
}
let that = new xml.XmlPullParser(arrayBuffer);
let arrTag = {}; let arrTag = {};
let str = ""; let str = "";
let i = 0; let i = 0;
...@@ -560,13 +548,9 @@ let strXml = ...@@ -560,13 +548,9 @@ let strXml =
' <todo>Work</todo>' + ' <todo>Work</todo>' +
' <todo>Play</todo>' + ' <todo>Play</todo>' +
'</note>'; '</note>';
let arrayBuffer = new ArrayBuffer(strXml.length); let textEncoder = new util.TextEncoder();
let bufView = new Uint8Array(arrayBuffer); let arrbuffer = textEncoder.encodeInto(strXml);
let strLen = strXml.length; let that = new xml.XmlPullParser(arrbuffer.buffer);
for (let tmp = 0; tmp < strLen; ++tmp) {
bufView[tmp] = strXml.charCodeAt(tmp);
}
let that = new xml.XmlPullParser(arrayBuffer);
let arrTag = {}; let arrTag = {};
let str = ""; let str = "";
let i = 0; let i = 0;
...@@ -610,13 +594,9 @@ let strXml = ...@@ -610,13 +594,9 @@ let strXml =
' <todo>Work</todo>' + ' <todo>Work</todo>' +
' <todo>Play</todo>' + ' <todo>Play</todo>' +
'</note>'; '</note>';
let arrayBuffer = new ArrayBuffer(strXml.length); let textEncoder = new util.TextEncoder();
let bufView = new Uint8Array(arrayBuffer); let arrbuffer = textEncoder.encodeInto(strXml);
let strLen = strXml.length; let that = new xml.XmlPullParser(arrbuffer.buffer);
for (let tmp = 0; tmp < strLen; ++tmp) {
bufView[tmp] = strXml.charCodeAt(tmp);
}
let that = new xml.XmlPullParser(arrayBuffer);
let arrTag = {}; let arrTag = {};
let str = ""; let str = "";
let i = 0; let i = 0;
...@@ -657,13 +637,9 @@ let strXml = ...@@ -657,13 +637,9 @@ let strXml =
' <todo>Work</todo>' + ' <todo>Work</todo>' +
' <todo>Play</todo>' + ' <todo>Play</todo>' +
'</note>'; '</note>';
let arrayBuffer = new ArrayBuffer(strXml.length); let textEncoder = new util.TextEncoder();
let bufView = new Uint8Array(arrayBuffer); let arrbuffer = textEncoder.encodeInto(strXml);
let strLen = strXml.length; let that = new xml.XmlPullParser(arrbuffer.buffer);
for (let tmp = 0; tmp < strLen; ++tmp) {
bufView[tmp] = strXml.charCodeAt(tmp);
}
let that = new xml.XmlPullParser(arrayBuffer);
let arrTag = {}; let arrTag = {};
let str = ""; let str = "";
let i = 0; let i = 0;
...@@ -703,13 +679,9 @@ let strXml = ...@@ -703,13 +679,9 @@ let strXml =
' <todo>Work</todo>' + ' <todo>Work</todo>' +
' <todo>Play</todo>' + ' <todo>Play</todo>' +
'</note>'; '</note>';
let arrayBuffer = new ArrayBuffer(strXml.length); let textEncoder = new util.TextEncoder();
let bufView = new Uint8Array(arrayBuffer); let arrbuffer = textEncoder.encodeInto(strXml);
let strLen = strXml.length; let that = new xml.XmlPullParser(arrbuffer.buffer);
for (let tmp = 0; tmp < strLen; ++tmp) {
bufView[tmp] = strXml.charCodeAt(tmp);
}
let that = new xml.XmlPullParser(arrayBuffer);
let arrTag = {}; let arrTag = {};
let str = ""; let str = "";
let i = 0; let i = 0;
...@@ -749,13 +721,9 @@ let strXml = ...@@ -749,13 +721,9 @@ let strXml =
' <todo>Work</todo>' + ' <todo>Work</todo>' +
' <todo>Play</todo>' + ' <todo>Play</todo>' +
'</note>'; '</note>';
let arrayBuffer = new ArrayBuffer(strXml.length); let textEncoder = new util.TextEncoder();
let bufView = new Uint8Array(arrayBuffer); let arrbuffer = textEncoder.encodeInto(strXml);
let strLen = strXml.length; let that = new xml.XmlPullParser(arrbuffer.buffer);
for (let tmp = 0; tmp < strLen; ++tmp) {
bufView[tmp] = strXml.charCodeAt(tmp);
}
let that = new xml.XmlPullParser(arrayBuffer);
let arrTag = {}; let arrTag = {};
let str = ""; let str = "";
let i = 0; let i = 0;
...@@ -796,13 +764,9 @@ let strXml = ...@@ -796,13 +764,9 @@ let strXml =
' <todo>Work</todo>' + ' <todo>Work</todo>' +
' <todo>Play</todo>' + ' <todo>Play</todo>' +
'</note>'; '</note>';
let arrayBuffer = new ArrayBuffer(strXml.length); let textEncoder = new util.TextEncoder();
let bufView = new Uint8Array(arrayBuffer); let arrbuffer = textEncoder.encodeInto(strXml);
let strLen = strXml.length; let that = new xml.XmlPullParser(arrbuffer.buffer);
for (let tmp = 0; tmp < strLen; ++tmp) {
bufView[tmp] = strXml.charCodeAt(tmp);
}
let that = new xml.XmlPullParser(arrayBuffer);
let arrTag = {}; let arrTag = {};
let str = ""; let str = "";
let i = 0; let i = 0;
...@@ -842,13 +806,9 @@ let strXml = ...@@ -842,13 +806,9 @@ let strXml =
' <todo>Work</todo>' + ' <todo>Work</todo>' +
' <todo>Play</todo>' + ' <todo>Play</todo>' +
'</note>'; '</note>';
let arrayBuffer = new ArrayBuffer(strXml.length); let textEncoder = new util.TextEncoder();
let bufView = new Uint8Array(arrayBuffer); let arrbuffer = textEncoder.encodeInto(strXml);
let strLen = strXml.length; let that = new xml.XmlPullParser(arrbuffer.buffer);
for (let tmp = 0; tmp < strLen; ++tmp) {
bufView[tmp] = strXml.charCodeAt(tmp);
}
let that = new xml.XmlPullParser(arrayBuffer);
let arrTag = {}; let arrTag = {};
let str = ""; let str = "";
let i = 0; let i = 0;
...@@ -888,13 +848,9 @@ let strXml = ...@@ -888,13 +848,9 @@ let strXml =
' <todo>Work</todo>' + ' <todo>Work</todo>' +
' <todo>Play</todo>' + ' <todo>Play</todo>' +
'</note>'; '</note>';
let arrayBuffer = new ArrayBuffer(strXml.length); let textEncoder = new util.TextEncoder();
let bufView = new Uint8Array(arrayBuffer); let arrbuffer = textEncoder.encodeInto(strXml);
let strLen = strXml.length; let that = new xml.XmlPullParser(arrbuffer.buffer);
for (let tmp = 0; tmp < strLen; ++tmp) {
bufView[tmp] = strXml.charCodeAt(tmp);
}
let that = new xml.XmlPullParser(arrayBuffer);
let arrTag = {}; let arrTag = {};
let str = ""; let str = "";
let i = 0; let i = 0;
...@@ -933,13 +889,9 @@ let strXml = ...@@ -933,13 +889,9 @@ let strXml =
' <todo>Work</todo>' + ' <todo>Work</todo>' +
' <todo>Play</todo>' + ' <todo>Play</todo>' +
'</note>'; '</note>';
let arrayBuffer = new ArrayBuffer(strXml.length); let textEncoder = new util.TextEncoder();
let bufView = new Uint8Array(arrayBuffer); let arrbuffer = textEncoder.encodeInto(strXml);
let strLen = strXml.length; let that = new xml.XmlPullParser(arrbuffer.buffer);
for (let tmp = 0; tmp < strLen; ++tmp) {
bufView[tmp] = strXml.charCodeAt(tmp);
}
let that = new xml.XmlPullParser(arrayBuffer);
let arrTag = {}; let arrTag = {};
let str = ""; let str = "";
let i = 0; let i = 0;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册