提交 e9ae5d12 编写于 作者: 陈浩 提交者: Gitee

Merge branch 'master' of gitee.com:openharmony/docs into master

...@@ -28,6 +28,6 @@ This repository stores device and application development documents provided by ...@@ -28,6 +28,6 @@ This repository stores device and application development documents provided by
### Historical Stable Versions ### Historical Stable Versions
OpenHarmony_v1.x_release: OpenHarmony v1.1.2 LTS. [Learn more](en/release-notes/OpenHarmony-v1.1.2-LTS.md) OpenHarmony_v1.x_release: OpenHarmony v1.1.4 LTS. [Learn more](en/release-notes/OpenHarmony-v1-1-4-LTS.md)
[More versions](en/release-notes/) [More versions](en/release-notes/)
...@@ -16,7 +16,9 @@ None ...@@ -16,7 +16,9 @@ None
getAudioManager\(\): AudioManager<a name="section84581011418"></a> getAudioManager\(\): AudioManager<a name="section84581011418"></a>
Obtains an **AudioManager** instance. Obtains an **AudioManager** instance.
**System capabilities**: SystemCapability.Multimedia.Audio.Core
**Return value** **Return value**
...@@ -44,14 +46,16 @@ var audioManager = audio.getAudioManager(); ...@@ -44,14 +46,16 @@ var audioManager = audio.getAudioManager();
## audioRenderer ## audioRenderer
createAudioRenderer(volumeType: AudioVolumeType): AudioRenderer<a name="createaudioRenderer"></a> createAudioRenderer(options: AudioRendererOptions): AudioRenderer<a name="createaudioRenderer"></a>
Obtains an **AudioRenderer** instance. Obtains an **AudioRenderer** instance.
**System capabilities**: SystemCapability.Multimedia.Audio.Renderer
**Parameters** **Parameters**
| Name | Type | Mandatory | Description | | Name | Type | Mandatory | Description |
| :--------- | :-------------- | :-------- | :----------------- | | :--------- | :------------------- | :-------- | :---------------------- |
| volumeType | AudioVolumeType | Yes | Audio stream type. | | options | AudioRendererOptions | Yes | Renderer configurations |
**Return value** **Return value**
...@@ -125,28 +129,28 @@ Enumerates audio stream types. ...@@ -125,28 +129,28 @@ Enumerates audio stream types.
</td> </td>
<td class="cellrowborder" valign="top" width="9.950000000000001%" headers="mcps1.1.4.1.2 "><p id="p2282152962115"><a name="p2282152962115"></a><a name="p2282152962115"></a>0</p> <td class="cellrowborder" valign="top" width="9.950000000000001%" headers="mcps1.1.4.1.2 "><p id="p2282152962115"><a name="p2282152962115"></a><a name="p2282152962115"></a>0</p>
</td> </td>
<td class="cellrowborder" valign="top" width="59.67%" headers="mcps1.1.4.1.3 "><p id="p328012293211"><a name="p328012293211"></a><a name="p328012293211"></a>Audio stream for voice calls.</p> <td class="cellrowborder" valign="top" width="59.67%" headers="mcps1.1.4.1.3 "><p id="p328012293211"><a name="p328012293211"></a><a name="p328012293211"></a>Audio stream for voice calls. <br/> System capabilities: SystemCapability.Multimedia.Audio.Volume </p>
</td> </td>
</tr> </tr>
<tr id="row1389215612395"><td class="cellrowborder" valign="top" width="30.380000000000003%" headers="mcps1.1.4.1.1 "><p id="p52851329122117"><a name="p52851329122117"></a><a name="p52851329122117"></a>RINGTONE</p> <tr id="row1389215612395"><td class="cellrowborder" valign="top" width="30.380000000000003%" headers="mcps1.1.4.1.1 "><p id="p52851329122117"><a name="p52851329122117"></a><a name="p52851329122117"></a>RINGTONE</p>
</td> </td>
<td class="cellrowborder" valign="top" width="9.950000000000001%" headers="mcps1.1.4.1.2 "><p id="p2282152962115"><a name="p2282152962115"></a><a name="p2282152962115"></a>2</p> <td class="cellrowborder" valign="top" width="9.950000000000001%" headers="mcps1.1.4.1.2 "><p id="p2282152962115"><a name="p2282152962115"></a><a name="p2282152962115"></a>2</p>
</td> </td>
<td class="cellrowborder" valign="top" width="59.67%" headers="mcps1.1.4.1.3 "><p id="p328012293211"><a name="p328012293211"></a><a name="p328012293211"></a>Audio stream for ringtones.</p> <td class="cellrowborder" valign="top" width="59.67%" headers="mcps1.1.4.1.3 "><p id="p328012293211"><a name="p328012293211"></a><a name="p328012293211"></a>Audio stream for ringtones. <br/> System capabilities: SystemCapability.Multimedia.Audio.Volume</p>
</td> </td>
</tr> </tr>
<tr id="row6892145616397"><td class="cellrowborder" valign="top" width="30.380000000000003%" headers="mcps1.1.4.1.1 "><p id="p027662952110"><a name="p027662952110"></a><a name="p027662952110"></a>MEDIA</p> <tr id="row6892145616397"><td class="cellrowborder" valign="top" width="30.380000000000003%" headers="mcps1.1.4.1.1 "><p id="p027662952110"><a name="p027662952110"></a><a name="p027662952110"></a>MEDIA</p>
</td> </td>
<td class="cellrowborder" valign="top" width="9.950000000000001%" headers="mcps1.1.4.1.2 "><p id="p17273229192113"><a name="p17273229192113"></a><a name="p17273229192113"></a>3</p> <td class="cellrowborder" valign="top" width="9.950000000000001%" headers="mcps1.1.4.1.2 "><p id="p17273229192113"><a name="p17273229192113"></a><a name="p17273229192113"></a>3</p>
</td> </td>
<td class="cellrowborder" valign="top" width="59.67%" headers="mcps1.1.4.1.3 "><p id="p182452299212"><a name="p182452299212"></a><a name="p182452299212"></a>Audio stream for media purpose.</p> <td class="cellrowborder" valign="top" width="59.67%" headers="mcps1.1.4.1.3 "><p id="p182452299212"><a name="p182452299212"></a><a name="p182452299212"></a>Audio stream for media purpose. <br/> System capabilities: SystemCapability.Multimedia.Audio.Volume</p>
</td> </td>
</tr> </tr>
<tr id="row6892145616397"><td class="cellrowborder" valign="top" width="30.380000000000003%" headers="mcps1.1.4.1.1 "><p id="p027662952110"><a name="p027662952110"></a><a name="p027662952110"></a>VOICE_ASSISTANT</p> <tr id="row6892145616397"><td class="cellrowborder" valign="top" width="30.380000000000003%" headers="mcps1.1.4.1.1 "><p id="p027662952110"><a name="p027662952110"></a><a name="p027662952110"></a>VOICE_ASSISTANT</p>
</td> </td>
<td class="cellrowborder" valign="top" width="9.950000000000001%" headers="mcps1.1.4.1.2 "><p id="p17273229192113"><a name="p17273229192113"></a><a name="p17273229192113"></a>9</p> <td class="cellrowborder" valign="top" width="9.950000000000001%" headers="mcps1.1.4.1.2 "><p id="p17273229192113"><a name="p17273229192113"></a><a name="p17273229192113"></a>9</p>
</td> </td>
<td class="cellrowborder" valign="top" width="59.67%" headers="mcps1.1.4.1.3 "><p id="p182452299212"><a name="p182452299212"></a><a name="p182452299212"></a>Audio stream for voice assistant.</p> <td class="cellrowborder" valign="top" width="59.67%" headers="mcps1.1.4.1.3 "><p id="p182452299212"><a name="p182452299212"></a><a name="p182452299212"></a>Audio stream for voice assistant. <br/> System capabilities: SystemCapability.Multimedia.Audio.Volume</p>
</td> </td>
</tr> </tr>
</tbody> </tbody>
...@@ -170,21 +174,21 @@ Enumerates audio device flags. ...@@ -170,21 +174,21 @@ Enumerates audio device flags.
</td> </td>
<td class="cellrowborder" valign="top" width="9.950000000000001%" headers="mcps1.1.4.1.2 "><p id="p172861314213"><a name="p172861314213"></a><a name="p172861314213"></a>1</p> <td class="cellrowborder" valign="top" width="9.950000000000001%" headers="mcps1.1.4.1.2 "><p id="p172861314213"><a name="p172861314213"></a><a name="p172861314213"></a>1</p>
</td> </td>
<td class="cellrowborder" valign="top" width="59.67%" headers="mcps1.1.4.1.3 "><p id="p5286133134212"><a name="p5286133134212"></a><a name="p5286133134212"></a>Output device.</p> <td class="cellrowborder" valign="top" width="59.67%" headers="mcps1.1.4.1.3 "><p id="p5286133134212"><a name="p5286133134212"></a><a name="p5286133134212"></a>Output device. <br/> System capabilities: SystemCapability.Multimedia.Audio.Device</p>
</td> </td>
</tr> </tr>
<tr id="row2286163194220"><td class="cellrowborder" valign="top" width="30.380000000000003%" headers="mcps1.1.4.1.1 "><p id="p5514162412251"><a name="p5514162412251"></a><a name="p5514162412251"></a>INPUT_DEVICES_FLAG</p> <tr id="row2286163194220"><td class="cellrowborder" valign="top" width="30.380000000000003%" headers="mcps1.1.4.1.1 "><p id="p5514162412251"><a name="p5514162412251"></a><a name="p5514162412251"></a>INPUT_DEVICES_FLAG</p>
</td> </td>
<td class="cellrowborder" valign="top" width="9.950000000000001%" headers="mcps1.1.4.1.2 "><p id="p112863354219"><a name="p112863354219"></a><a name="p112863354219"></a>2</p> <td class="cellrowborder" valign="top" width="9.950000000000001%" headers="mcps1.1.4.1.2 "><p id="p112863354219"><a name="p112863354219"></a><a name="p112863354219"></a>2</p>
</td> </td>
<td class="cellrowborder" valign="top" width="59.67%" headers="mcps1.1.4.1.3 "><p id="p1328617334214"><a name="p1328617334214"></a><a name="p1328617334214"></a>Input device.</p> <td class="cellrowborder" valign="top" width="59.67%" headers="mcps1.1.4.1.3 "><p id="p1328617334214"><a name="p1328617334214"></a><a name="p1328617334214"></a>Input device. <br/> System capabilities: SystemCapability.Multimedia.Audio.Device</p>
</td> </td>
</tr> </tr>
<tr id="row10631228192520"><td class="cellrowborder" valign="top" width="30.380000000000003%" headers="mcps1.1.4.1.1 "><p id="p1731716317259"><a name="p1731716317259"></a><a name="p1731716317259"></a>ALL_DEVICES_FLAG</p> <tr id="row10631228192520"><td class="cellrowborder" valign="top" width="30.380000000000003%" headers="mcps1.1.4.1.1 "><p id="p1731716317259"><a name="p1731716317259"></a><a name="p1731716317259"></a>ALL_DEVICES_FLAG</p>
</td> </td>
<td class="cellrowborder" valign="top" width="9.950000000000001%" headers="mcps1.1.4.1.2 "><p id="p1364628102517"><a name="p1364628102517"></a><a name="p1364628102517"></a>3</p> <td class="cellrowborder" valign="top" width="9.950000000000001%" headers="mcps1.1.4.1.2 "><p id="p1364628102517"><a name="p1364628102517"></a><a name="p1364628102517"></a>3</p>
</td> </td>
<td class="cellrowborder" valign="top" width="59.67%" headers="mcps1.1.4.1.3 "><p id="p1864182814256"><a name="p1864182814256"></a><a name="p1864182814256"></a>All devices.</p> <td class="cellrowborder" valign="top" width="59.67%" headers="mcps1.1.4.1.3 "><p id="p1864182814256"><a name="p1864182814256"></a><a name="p1864182814256"></a>All devices. <br/> System capabilities: SystemCapability.Multimedia.Audio.Device</p>
</td> </td>
</tr> </tr>
</tbody> </tbody>
...@@ -208,14 +212,14 @@ Enumerates audio device roles. ...@@ -208,14 +212,14 @@ Enumerates audio device roles.
</td> </td>
<td class="cellrowborder" valign="top" width="9.950000000000001%" headers="mcps1.1.4.1.2 "><p id="p98008852610"><a name="p98008852610"></a><a name="p98008852610"></a>1</p> <td class="cellrowborder" valign="top" width="9.950000000000001%" headers="mcps1.1.4.1.2 "><p id="p98008852610"><a name="p98008852610"></a><a name="p98008852610"></a>1</p>
</td> </td>
<td class="cellrowborder" valign="top" width="59.67%" headers="mcps1.1.4.1.3 "><p id="p118009817260"><a name="p118009817260"></a><a name="p118009817260"></a>Input role.</p> <td class="cellrowborder" valign="top" width="59.67%" headers="mcps1.1.4.1.3 "><p id="p118009817260"><a name="p118009817260"></a><a name="p118009817260"></a>Input role. <br/> System capabilities: SystemCapability.Multimedia.Audio.Device</p>
</td> </td>
</tr> </tr>
<tr id="row680018802618"><td class="cellrowborder" valign="top" width="30.380000000000003%" headers="mcps1.1.4.1.1 "><p id="p2011710479267"><a name="p2011710479267"></a><a name="p2011710479267"></a>OUTPUT_DEVICE</p> <tr id="row680018802618"><td class="cellrowborder" valign="top" width="30.380000000000003%" headers="mcps1.1.4.1.1 "><p id="p2011710479267"><a name="p2011710479267"></a><a name="p2011710479267"></a>OUTPUT_DEVICE</p>
</td> </td>
<td class="cellrowborder" valign="top" width="9.950000000000001%" headers="mcps1.1.4.1.2 "><p id="p08009812613"><a name="p08009812613"></a><a name="p08009812613"></a>2</p> <td class="cellrowborder" valign="top" width="9.950000000000001%" headers="mcps1.1.4.1.2 "><p id="p08009812613"><a name="p08009812613"></a><a name="p08009812613"></a>2</p>
</td> </td>
<td class="cellrowborder" valign="top" width="59.67%" headers="mcps1.1.4.1.3 "><p id="p380020842611"><a name="p380020842611"></a><a name="p380020842611"></a>Output role.</p> <td class="cellrowborder" valign="top" width="59.67%" headers="mcps1.1.4.1.3 "><p id="p380020842611"><a name="p380020842611"></a><a name="p380020842611"></a>Output role. <br/> System capabilities: SystemCapability.Multimedia.Audio.Device</p>
</td> </td>
</tr> </tr>
</tbody> </tbody>
...@@ -239,42 +243,42 @@ Enumerates audio device types. ...@@ -239,42 +243,42 @@ Enumerates audio device types.
</td> </td>
<td class="cellrowborder" valign="top" width="9.950000000000001%" headers="mcps1.1.4.1.2 "><p id="p772892012273"><a name="p772892012273"></a><a name="p772892012273"></a>0</p> <td class="cellrowborder" valign="top" width="9.950000000000001%" headers="mcps1.1.4.1.2 "><p id="p772892012273"><a name="p772892012273"></a><a name="p772892012273"></a>0</p>
</td> </td>
<td class="cellrowborder" valign="top" width="59.67%" headers="mcps1.1.4.1.3 "><p id="p137281920172712"><a name="p137281920172712"></a><a name="p137281920172712"></a>Invalid device.</p> <td class="cellrowborder" valign="top" width="59.67%" headers="mcps1.1.4.1.3 "><p id="p137281920172712"><a name="p137281920172712"></a><a name="p137281920172712"></a>Invalid device. <br/> System capabilities: SystemCapability.Multimedia.Audio.Device</p>
</td> </td>
</tr> </tr>
<tr id="row16728520192714"><td class="cellrowborder" valign="top" width="30.380000000000003%" headers="mcps1.1.4.1.1 "><p id="p4753161132815"><a name="p4753161132815"></a><a name="p4753161132815"></a>SPEAKER</p> <tr id="row16728520192714"><td class="cellrowborder" valign="top" width="30.380000000000003%" headers="mcps1.1.4.1.1 "><p id="p4753161132815"><a name="p4753161132815"></a><a name="p4753161132815"></a>SPEAKER</p>
</td> </td>
<td class="cellrowborder" valign="top" width="9.950000000000001%" headers="mcps1.1.4.1.2 "><p id="p3728920162713"><a name="p3728920162713"></a><a name="p3728920162713"></a>2</p> <td class="cellrowborder" valign="top" width="9.950000000000001%" headers="mcps1.1.4.1.2 "><p id="p3728920162713"><a name="p3728920162713"></a><a name="p3728920162713"></a>2</p>
</td> </td>
<td class="cellrowborder" valign="top" width="59.67%" headers="mcps1.1.4.1.3 "><p id="p17728112062715"><a name="p17728112062715"></a><a name="p17728112062715"></a>Speaker.</p> <td class="cellrowborder" valign="top" width="59.67%" headers="mcps1.1.4.1.3 "><p id="p17728112062715"><a name="p17728112062715"></a><a name="p17728112062715"></a>Speaker. <br/> System capabilities: SystemCapability.Multimedia.Audio.Device</p>
</td> </td>
</tr> </tr>
<tr id="row1758117472814"><td class="cellrowborder" valign="top" width="30.380000000000003%" headers="mcps1.1.4.1.1 "><p id="p74802011112815"><a name="p74802011112815"></a><a name="p74802011112815"></a>WIRED_HEADSET</p> <tr id="row1758117472814"><td class="cellrowborder" valign="top" width="30.380000000000003%" headers="mcps1.1.4.1.1 "><p id="p74802011112815"><a name="p74802011112815"></a><a name="p74802011112815"></a>WIRED_HEADSET</p>
</td> </td>
<td class="cellrowborder" valign="top" width="9.950000000000001%" headers="mcps1.1.4.1.2 "><p id="p35820462819"><a name="p35820462819"></a><a name="p35820462819"></a>3</p> <td class="cellrowborder" valign="top" width="9.950000000000001%" headers="mcps1.1.4.1.2 "><p id="p35820462819"><a name="p35820462819"></a><a name="p35820462819"></a>3</p>
</td> </td>
<td class="cellrowborder" valign="top" width="59.67%" headers="mcps1.1.4.1.3 "><p id="p155821548285"><a name="p155821548285"></a><a name="p155821548285"></a>Wired headset.</p> <td class="cellrowborder" valign="top" width="59.67%" headers="mcps1.1.4.1.3 "><p id="p155821548285"><a name="p155821548285"></a><a name="p155821548285"></a>Wired headset. <br/> System capabilities: SystemCapability.Multimedia.Audio.Device</p>
</td> </td>
</tr> </tr>
<tr id="row1335108192818"><td class="cellrowborder" valign="top" width="30.380000000000003%" headers="mcps1.1.4.1.1 "><p id="p107521514142811"><a name="p107521514142811"></a><a name="p107521514142811"></a>BLUETOOTH_SCO</p> <tr id="row1335108192818"><td class="cellrowborder" valign="top" width="30.380000000000003%" headers="mcps1.1.4.1.1 "><p id="p107521514142811"><a name="p107521514142811"></a><a name="p107521514142811"></a>BLUETOOTH_SCO</p>
</td> </td>
<td class="cellrowborder" valign="top" width="9.950000000000001%" headers="mcps1.1.4.1.2 "><p id="p18335108112819"><a name="p18335108112819"></a><a name="p18335108112819"></a>7</p> <td class="cellrowborder" valign="top" width="9.950000000000001%" headers="mcps1.1.4.1.2 "><p id="p18335108112819"><a name="p18335108112819"></a><a name="p18335108112819"></a>7</p>
</td> </td>
<td class="cellrowborder" valign="top" width="59.67%" headers="mcps1.1.4.1.3 "><p id="p193351683289"><a name="p193351683289"></a><a name="p193351683289"></a>Bluetooth device using the synchronous connection oriented (SCO) link.</p> <td class="cellrowborder" valign="top" width="59.67%" headers="mcps1.1.4.1.3 "><p id="p193351683289"><a name="p193351683289"></a><a name="p193351683289"></a>Bluetooth device using the synchronous connection oriented (SCO) link. <br/> System capabilities: SystemCapability.Multimedia.Audio.Device</p>
</td> </td>
</tr> </tr>
<tr id="row1649111617286"><td class="cellrowborder" valign="top" width="30.380000000000003%" headers="mcps1.1.4.1.1 "><p id="p10784017102818"><a name="p10784017102818"></a><a name="p10784017102818"></a>BLUETOOTH_A2DP</p> <tr id="row1649111617286"><td class="cellrowborder" valign="top" width="30.380000000000003%" headers="mcps1.1.4.1.1 "><p id="p10784017102818"><a name="p10784017102818"></a><a name="p10784017102818"></a>BLUETOOTH_A2DP</p>
</td> </td>
<td class="cellrowborder" valign="top" width="9.950000000000001%" headers="mcps1.1.4.1.2 "><p id="p849110610286"><a name="p849110610286"></a><a name="p849110610286"></a>8</p> <td class="cellrowborder" valign="top" width="9.950000000000001%" headers="mcps1.1.4.1.2 "><p id="p849110610286"><a name="p849110610286"></a><a name="p849110610286"></a>8</p>
</td> </td>
<td class="cellrowborder" valign="top" width="59.67%" headers="mcps1.1.4.1.3 "><p id="p549117620284"><a name="p549117620284"></a><a name="p549117620284"></a>Bluetooth device using the advanced audio distribution profile (A2DP).</p> <td class="cellrowborder" valign="top" width="59.67%" headers="mcps1.1.4.1.3 "><p id="p549117620284"><a name="p549117620284"></a><a name="p549117620284"></a>Bluetooth device using the advanced audio distribution profile (A2DP). <br/> System capabilities: SystemCapability.Multimedia.Audio.Device</p>
</td> </td>
</tr> </tr>
<tr id="row81701220112812"><td class="cellrowborder" valign="top" width="30.380000000000003%" headers="mcps1.1.4.1.1 "><p id="p168642028152812"><a name="p168642028152812"></a><a name="p168642028152812"></a>MIC</p> <tr id="row81701220112812"><td class="cellrowborder" valign="top" width="30.380000000000003%" headers="mcps1.1.4.1.1 "><p id="p168642028152812"><a name="p168642028152812"></a><a name="p168642028152812"></a>MIC</p>
</td> </td>
<td class="cellrowborder" valign="top" width="9.950000000000001%" headers="mcps1.1.4.1.2 "><p id="p517062012812"><a name="p517062012812"></a><a name="p517062012812"></a>15</p> <td class="cellrowborder" valign="top" width="9.950000000000001%" headers="mcps1.1.4.1.2 "><p id="p517062012812"><a name="p517062012812"></a><a name="p517062012812"></a>15</p>
</td> </td>
<td class="cellrowborder" valign="top" width="59.67%" headers="mcps1.1.4.1.3 "><p id="p5170520112813"><a name="p5170520112813"></a><a name="p5170520112813"></a>Microphone.</p> <td class="cellrowborder" valign="top" width="59.67%" headers="mcps1.1.4.1.3 "><p id="p5170520112813"><a name="p5170520112813"></a><a name="p5170520112813"></a>Microphone. <br/> System capabilities: SystemCapability.Multimedia.Audio.Device</p>
</td> </td>
</tr> </tr>
</tbody> </tbody>
...@@ -298,21 +302,21 @@ Enumerates ringer modes. ...@@ -298,21 +302,21 @@ Enumerates ringer modes.
</td> </td>
<td class="cellrowborder" valign="top" width="9.950000000000001%" headers="mcps1.1.4.1.2 "><p id="p18788114345414"><a name="p18788114345414"></a><a name="p18788114345414"></a>0</p> <td class="cellrowborder" valign="top" width="9.950000000000001%" headers="mcps1.1.4.1.2 "><p id="p18788114345414"><a name="p18788114345414"></a><a name="p18788114345414"></a>0</p>
</td> </td>
<td class="cellrowborder" valign="top" width="59.67%" headers="mcps1.1.4.1.3 "><p id="p1378874385416"><a name="p1378874385416"></a><a name="p1378874385416"></a>Silence mode.</p> <td class="cellrowborder" valign="top" width="59.67%" headers="mcps1.1.4.1.3 "><p id="p1378874385416"><a name="p1378874385416"></a><a name="p1378874385416"></a>Silence mode. <br/> System capabilities: SystemCapability.Multimedia.Audio.Communication</p>
</td> </td>
</tr> </tr>
<tr id="row69495166107"><td class="cellrowborder" valign="top" width="30.380000000000003%" headers="mcps1.1.4.1.1 "><p id="p1447557125520"><a name="p1447557125520"></a><a name="p1447557125520"></a>RINGER_MODE_VIBRATE</p> <tr id="row69495166107"><td class="cellrowborder" valign="top" width="30.380000000000003%" headers="mcps1.1.4.1.1 "><p id="p1447557125520"><a name="p1447557125520"></a><a name="p1447557125520"></a>RINGER_MODE_VIBRATE</p>
</td> </td>
<td class="cellrowborder" valign="top" width="9.950000000000001%" headers="mcps1.1.4.1.2 "><p id="p04766720552"><a name="p04766720552"></a><a name="p04766720552"></a>1</p> <td class="cellrowborder" valign="top" width="9.950000000000001%" headers="mcps1.1.4.1.2 "><p id="p04766720552"><a name="p04766720552"></a><a name="p04766720552"></a>1</p>
</td> </td>
<td class="cellrowborder" valign="top" width="59.67%" headers="mcps1.1.4.1.3 "><p id="p3610191945517"><a name="p3610191945517"></a><a name="p3610191945517"></a>Vibration mode.</p> <td class="cellrowborder" valign="top" width="59.67%" headers="mcps1.1.4.1.3 "><p id="p3610191945517"><a name="p3610191945517"></a><a name="p3610191945517"></a>Vibration mode. <br/> System capabilities: SystemCapability.Multimedia.Audio.Communication</p>
</td> </td>
</tr> </tr>
<tr id="row49498168105"><td class="cellrowborder" valign="top" width="30.380000000000003%" headers="mcps1.1.4.1.1 "><p id="p1034891712171"><a name="p1034891712171"></a><a name="p1034891712171"></a>RINGER_MODE_NORMAL</p> <tr id="row49498168105"><td class="cellrowborder" valign="top" width="30.380000000000003%" headers="mcps1.1.4.1.1 "><p id="p1034891712171"><a name="p1034891712171"></a><a name="p1034891712171"></a>RINGER_MODE_NORMAL</p>
</td> </td>
<td class="cellrowborder" valign="top" width="9.950000000000001%" headers="mcps1.1.4.1.2 "><p id="p421692310811"><a name="p421692310811"></a><a name="p421692310811"></a>2</p> <td class="cellrowborder" valign="top" width="9.950000000000001%" headers="mcps1.1.4.1.2 "><p id="p421692310811"><a name="p421692310811"></a><a name="p421692310811"></a>2</p>
</td> </td>
<td class="cellrowborder" valign="top" width="59.67%" headers="mcps1.1.4.1.3 "><p id="p187929346177"><a name="p187929346177"></a><a name="p187929346177"></a>Normal mode.</p> <td class="cellrowborder" valign="top" width="59.67%" headers="mcps1.1.4.1.3 "><p id="p187929346177"><a name="p187929346177"></a><a name="p187929346177"></a>Normal mode. <br/> System capabilities: SystemCapability.Multimedia.Audio.Communication</p>
</td> </td>
</tr> </tr>
</tbody> </tbody>
...@@ -322,71 +326,71 @@ Enumerates ringer modes. ...@@ -322,71 +326,71 @@ Enumerates ringer modes.
## AudioSampleFormat<sup>8+</sup><a name="audiosampleformat"></a> ## AudioSampleFormat<sup>8+</sup><a name="audiosampleformat"></a>
Enumerates the audio sample formats. Enumerates the audio sample formats.
| Name | Default Value | Description | | Name | Default Value | Description |
| :------------ | :------------ | :------------------------------------ | | :-------------------- | :------------ | :----------------------------------------------------------------------------------------------------- |
| INVALID_WIDTH | -1 | Invalid format. | | SAMPLE_FORMAT_INVALID | -1 | Invalid format. <br/> System capabilities: SystemCapability.Multimedia.Audio.Core |
| SAMPLE_U8 | 0 | Unsigned 8 bit integer. | | SAMPLE_FORMAT_U8 | 0 | Unsigned 8 bit integer. <br/> System capabilities: SystemCapability.Multimedia.Audio.Core |
| SAMPLE_S16LE | 1 | Signed 16 bit integer, little endian. | | SAMPLE_FORMAT_S16LE | 1 | Signed 16 bit integer, little endian. <br/> System capabilities: SystemCapability.Multimedia.Audio.Core |
| SAMPLE_S24LE | 2 | Signed 24 bit integer, little endian. | | SAMPLE_FORMAT_S24LE | 2 | Signed 24 bit integer, little endian. <br/> System capabilities: SystemCapability.Multimedia.Audio.Core |
| SAMPLE_S32LE | 3 | Signed 32 bit integer, little endian. | | SAMPLE_FORMAT_S32LE | 3 | Signed 32 bit integer, little endian. <br/> System capabilities: SystemCapability.Multimedia.Audio.Core |
## AudioChannel<sup>8+</sup><a name="audiochannel"></a> ## AudioChannel<sup>8+</sup><a name="audiochannel"></a>
Enumerates the audio channels. Enumerates the audio channels.
| Name | Default Value | Description | | Name | Default Value | Description |
| :----- | :------------ | :--------------- | | :----- | :------------ | :-------------------------------------------------------------------------------- |
| CHANNEL_1 | 0x1 << 0 | Channel count 1. | | CHANNEL_1 | 0x1 << 0 | Channel count 1. <br/> System capabilities: SystemCapability.Multimedia.Audio.Core |
| CHANNEL_2 | 0x1 << 1 | Channel count 2. | | CHANNEL_2 | 0x1 << 1 | Channel count 2. <br/> System capabilities: SystemCapability.Multimedia.Audio.Core |
## AudioSamplingRate<sup>8+</sup><a name="audiosamplingrate"></a> ## AudioSamplingRate<sup>8+</sup><a name="audiosamplingrate"></a>
Enumerates the audio sampling rates. Enumerates the audio sampling rates.
| Name | Default Value | Description | | Name | Default Value | Description |
| :---------------- | :------------ | :------------------- | | :---------------- | :------------ | :------------------------------------------------------------------------------------ |
| SAMPLE_RATE_8000 | 8000 | Sampling rate 8000. | | SAMPLE_RATE_8000 | 8000 | Sampling rate 8000. <br/> System capabilities: SystemCapability.Multimedia.Audio.Core |
| SAMPLE_RATE_11025 | 11025 | Sampling rate 11025. | | SAMPLE_RATE_11025 | 11025 | Sampling rate 11025. <br/> System capabilities: SystemCapability.Multimedia.Audio.Core |
| SAMPLE_RATE_12000 | 12000 | Sampling rate 12000. | | SAMPLE_RATE_12000 | 12000 | Sampling rate 12000. <br/> System capabilities: SystemCapability.Multimedia.Audio.Core |
| SAMPLE_RATE_16000 | 16000 | Sampling rate 16000. | | SAMPLE_RATE_16000 | 16000 | Sampling rate 16000. <br/> System capabilities: SystemCapability.Multimedia.Audio.Core |
| SAMPLE_RATE_22050 | 22050 | Sampling rate 22050. | | SAMPLE_RATE_22050 | 22050 | Sampling rate 22050. <br/> System capabilities: SystemCapability.Multimedia.Audio.Core |
| SAMPLE_RATE_24000 | 24000 | Sampling rate 24000. | | SAMPLE_RATE_24000 | 24000 | Sampling rate 24000. <br/> System capabilities: SystemCapability.Multimedia.Audio.Core |
| SAMPLE_RATE_32000 | 32000 | Sampling rate 32000. | | SAMPLE_RATE_32000 | 32000 | Sampling rate 32000. <br/> System capabilities: SystemCapability.Multimedia.Audio.Core |
| SAMPLE_RATE_44100 | 44100 | Sampling rate 44100. | | SAMPLE_RATE_44100 | 44100 | Sampling rate 44100. <br/> System capabilities: SystemCapability.Multimedia.Audio.Core |
| SAMPLE_RATE_48000 | 48000 | Sampling rate 48000. | | SAMPLE_RATE_48000 | 48000 | Sampling rate 48000. <br/> System capabilities: SystemCapability.Multimedia.Audio.Core |
| SAMPLE_RATE_64000 | 64000 | Sampling rate 64000. | | SAMPLE_RATE_64000 | 64000 | Sampling rate 64000. <br/> System capabilities: SystemCapability.Multimedia.Audio.Core |
| SAMPLE_RATE_96000 | 96000 | Sampling rate 96000. | | SAMPLE_RATE_96000 | 96000 | Sampling rate 96000. <br/> System capabilities: SystemCapability.Multimedia.Audio.Core |
## AudioEncodingType<sup>8+</sup><a name="audioencodingtype"></a> ## AudioEncodingType<sup>8+</sup><a name="audioencodingtype"></a>
Enumerates the audio encoding types. Enumerates the audio encoding types.
| Name | Default Value | Description | | Name | Default Value | Description |
| :-------------------- | :------------ | :---------------- | | :-------------------- | :------------- | :------------------------------------------------------------------------------- |
| ENCODING_TYPE_INVALID | -1 | Invalid. | | ENCODING_TYPE_INVALID | -1 | Invalid. <br/> System capabilities: SystemCapability.Multimedia.Audio.Core |
| ENCODING_TYPE_RAW | 0 | PCM encoding. | | ENCODING_TYPE_RAW | 0 | PCM encoding. <br/> System capabilities: SystemCapability.Multimedia.Audio.Core |
## ContentType<sup>8+</sup><a name="contentype"></a> ## ContentType<sup>8+</sup><a name="contentype"></a>
Enumerates the content types. Enumerates the content types.
| Name | Default Value | Description | | Name | Default Value | Description |
| :------------------------ | :------------ | :-------------------- | | :------------------------ | :------------ | :------------------------------------------------------------------------------------- |
| CONTENT_TYPE_UNKNOWN | 0 | Unknown content. | | CONTENT_TYPE_UNKNOWN | 0 | Unknown content. <br/> System capabilities: SystemCapability.Multimedia.Audio.Core |
| CONTENT_TYPE_SPEECH | 1 | Speech content. | | CONTENT_TYPE_SPEECH | 1 | Speech content. <br/> System capabilities: SystemCapability.Multimedia.Audio.Core |
| CONTENT_TYPE_MUSIC | 2 | Music content. | | CONTENT_TYPE_MUSIC | 2 | Music content. <br/> System capabilities: SystemCapability.Multimedia.Audio.Core |
| CONTENT_TYPE_MOVIE | 3 | Movie content. | | CONTENT_TYPE_MOVIE | 3 | Movie content. <br/> System capabilities: SystemCapability.Multimedia.Audio.Core |
| CONTENT_TYPE_SONIFICATION | 4 | Notification content. | | CONTENT_TYPE_SONIFICATION | 4 | Notification content. <br/> System capabilities: SystemCapability.Multimedia.Audio.Core |
| CONTENT_TYPE_RINGTONE | 5 | Ringtone content. | | CONTENT_TYPE_RINGTONE | 5 | Ringtone content. <br/> System capabilities: SystemCapability.Multimedia.Audio.Core |
## StreamUsage<sup>8+</sup><a name="streamusage"></a> ## StreamUsage<sup>8+</sup><a name="streamusage"></a>
Enumerates the stream usage. Enumerates the stream usage.
| Name | Default Value | Description | | Name | Default Value | Description |
| :--------------------------------- | :------------ | :------------------------------ | | :--------------------------------- | :------------ | :----------------------------------------------------------------------------------------------- |
| STREAM_USAGE_UNKNOWN | 0 | Unknown usage. | | STREAM_USAGE_UNKNOWN | 0 | Unknown usage. <br/> System capabilities: SystemCapability.Multimedia.Audio.Core |
| STREAM_USAGE_MEDIA | 1 | Media usage. | | STREAM_USAGE_MEDIA | 1 | Media usage. <br/> System capabilities: SystemCapability.Multimedia.Audio.Core |
| STREAM_USAGE_VOICE_COMMUNICATION | 2 | Voice communication usage. | | STREAM_USAGE_VOICE_COMMUNICATION | 2 | Voice communication usage. <br/> System capabilities: SystemCapability.Multimedia.Audio.Core |
| STREAM_USAGE_NOTIFICATION_RINGTONE | 3 | Notification or ringtone usage. | | STREAM_USAGE_NOTIFICATION_RINGTONE | 3 | Notification or ringtone usage. <br/> System capabilities: SystemCapability.Multimedia.Audio.Core |
## AudioState<sup>8+</sup><a name="audiostate"></a> ## AudioState<sup>8+</sup><a name="audiostate"></a>
...@@ -394,54 +398,54 @@ Enumerates the audio states. ...@@ -394,54 +398,54 @@ Enumerates the audio states.
| Name | Default Value | Description | | Name | Default Value | Description |
| :------------- | :------------ | :------------------------- | | :------------- | :------------ | :------------------------- |
| STATE_INVALID | -1 | Invalid state. | | STATE_INVALID | -1 | Invalid state. <br/> System capabilities: SystemCapability.Multimedia.Audio.Core |
| STATE_NEW | 0 | Create New instance state. | | STATE_NEW | 0 | Create New instance state. <br/> System capabilities: SystemCapability.Multimedia.Audio.Core |
| STATE_PREPARED | 1 | Prepared state. | | STATE_PREPARED | 1 | Prepared state. <br/> System capabilities: SystemCapability.Multimedia.Audio.Core |
| STATE_RUNNING | 2 | Running state. | | STATE_RUNNING | 2 | Running state. <br/> System capabilities: SystemCapability.Multimedia.Audio.Core |
| STATE_STOPPED | 3 | Stopped state. | | STATE_STOPPED | 3 | Stopped state. <br/> System capabilities: SystemCapability.Multimedia.Audio.Core |
| STATE_RELEASED | 4 | Released state. | | STATE_RELEASED | 4 | Released state. <br/> System capabilities: SystemCapability.Multimedia.Audio.Core |
| STATE_PAUSED | 5 | Paused state. | | STATE_PAUSED | 5 | Paused state. <br/> System capabilities: SystemCapability.Multimedia.Audio.Core |
## AudioRendererRate<sup>8+</sup><a name="audiorendererrate"></a> ## AudioRendererRate<sup>8+</sup><a name="audiorendererrate"></a>
Enumerates the audio renderer rates. Enumerates the audio renderer rates.
| Name | Default Value | Description | | Name | Default Value | Description |
| :----------------- | :------------ | :----------- | | :----------------- | :------------ | :-------------------------------------------------------------------------------- |
| RENDER_RATE_NORMAL | 0 | Normal rate. | | RENDER_RATE_NORMAL | 0 | Normal rate. <br/> System capabilities: SystemCapability.Multimedia.Audio.Renderer |
| RENDER_RATE_DOUBLE | 1 | Double rate. | | RENDER_RATE_DOUBLE | 1 | Double rate. <br/> System capabilities: SystemCapability.Multimedia.Audio.Renderer |
| RENDER_RATE_HALF | 2 | Half rate. | | RENDER_RATE_HALF | 2 | Half rate. <br/> System capabilities: SystemCapability.Multimedia.Audio.Renderer |
## InterruptType<sup>8+</sup><a name="interrupttype"></a> ## InterruptType<sup>8+</sup><a name="interrupttype"></a>
Enumerates the interrupt types. Enumerates the interrupt types.
| Name | Default Value | Description | | Name | Default Value | Description |
| :------------------- | :------------ | :----------------------------------- | | :------------------- | :------------ | :-------------------------------------------------------------------------------------------------------- |
| INTERRUPT_TYPE_BEGIN | 1 | Audio playback interruption started. | | INTERRUPT_TYPE_BEGIN | 1 | Audio playback interruption started. <br/> System capabilities: SystemCapability.Multimedia.Audio.Renderer |
| INTERRUPT_TYPE_END | 2 | Audio playback interruption ended. | | INTERRUPT_TYPE_END | 2 | Audio playback interruption ended. <br/> System capabilities: SystemCapability.Multimedia.Audio.Renderer |
## InterruptForceType<sup>8+</sup><a name="interruptforcetype"></a> ## InterruptForceType<sup>8+</sup><a name="interruptforcetype"></a>
Enumerates the interrupt force types. Enumerates the interrupt force types.
| Name | Default Value | Description | | Name | Default Value | Description |
| :-------------- | :------------ | :--------------------------------------- | | :-------------- | :------------ | :------------------------------------------------------------------------------------------------------------ |
| INTERRUPT_FORCE | 0 | Forced action taken by system. | | INTERRUPT_FORCE | 0 | Forced action taken by system. <br/> System capabilities: SystemCapability.Multimedia.Audio.Renderer |
| INTERRUPT_SHARE | 1 | App can choose to take action or ignore. | | INTERRUPT_SHARE | 1 | App can choose to take action or ignore. <br/> System capabilities: SystemCapability.Multimedia.Audio.Renderer |
## InterruptHint<sup>8+</sup><a name="interrupthint"></a> ## InterruptHint<sup>8+</sup><a name="interrupthint"></a>
Enumerates the interrupt hints. Enumerates the interrupt hints.
| Name | Default Value | Description | | Name | Default Value | Description |
| :-------------------- | :------------ | :------------------------- | | :-------------------- | :------------ | :---------------------------------------------------------------------------------------------- |
| INTERRUPT_HINT_NONE | 0 | None. | | INTERRUPT_HINT_NONE | 0 | None. <br/> System capabilities: SystemCapability.Multimedia.Audio.Renderer |
| INTERRUPT_HINT_RESUME | 1 | Resume the playback. | | INTERRUPT_HINT_RESUME | 1 | Resume the playback. <br/> System capabilities: SystemCapability.Multimedia.Audio.Renderer |
| INTERRUPT_HINT_PAUSE | 2 | Paused/Pause the playback. | | INTERRUPT_HINT_PAUSE | 2 | Paused/Pause the playback. <br/> System capabilities: SystemCapability.Multimedia.Audio.Renderer |
| INTERRUPT_HINT_STOP | 3 | Stopped/Stop the playback. | | INTERRUPT_HINT_STOP | 3 | Stopped/Stop the playback. <br/> System capabilities: SystemCapability.Multimedia.Audio.Renderer |
| INTERRUPT_HINT_DUCK | 4 | Ducked the playback. | | INTERRUPT_HINT_DUCK | 4 | Ducked the playback. <br/> System capabilities: SystemCapability.Multimedia.Audio.Renderer |
| INTERRUPT_HINT_UNDUCK | 5 | Unducked the playback. | | INTERRUPT_HINT_UNDUCK | 5 | Unducked the playback. <br/> System capabilities: SystemCapability.Multimedia.Audio.Renderer |
## RingtoneType<sup>8+</sup><a name="ringtonetype"></a> ## RingtoneType<sup>8+</sup><a name="ringtonetype"></a>
...@@ -455,6 +459,8 @@ Enumerates the ringtone types. ...@@ -455,6 +459,8 @@ Enumerates the ringtone types.
## AudioStreamInfo<sup>8+</sup><a name="audiorstreaminfo"></a> ## AudioStreamInfo<sup>8+</sup><a name="audiorstreaminfo"></a>
Describes audio stream information. Describes audio stream information.
**System capabilities**: SystemCapability.Multimedia.Audio.Core
**Parameters** **Parameters**
| Name | Type | Mandatory | Description | | Name | Type | Mandatory | Description |
...@@ -467,6 +473,8 @@ Describes audio stream information. ...@@ -467,6 +473,8 @@ Describes audio stream information.
## AudioRendererInfo<sup>8+</sup><a name="audiorendererinfo"></a> ## AudioRendererInfo<sup>8+</sup><a name="audiorendererinfo"></a>
Describes audio renderer information. Describes audio renderer information.
**System capabilities**: SystemCapability.Multimedia.Audio.Core
**Parameters** **Parameters**
| Name | Type | Mandatory | Description | | Name | Type | Mandatory | Description |
...@@ -475,10 +483,23 @@ Describes audio renderer information. ...@@ -475,10 +483,23 @@ Describes audio renderer information.
| usage | StreamUsage | Yes | Stream usage. | | usage | StreamUsage | Yes | Stream usage. |
| rendererFlags | number | Yes | Audio renderer flags. | | rendererFlags | number | Yes | Audio renderer flags. |
## AudioRendererOptions<sup>8+</sup><a name="audiorendereroptions"></a>
Describes audio renderer configuration options.
**System capabilities**: SystemCapability.Multimedia.Audio.Renderer
**Parameters**
| Name | Type | Mandatory | Description |
| :------------ | :---------------- | :-------- | :-------------------- |
| streamInfo | AudioStreamInfo | Yes | Stream information. |
| rendererInfo | AudioRendererInfo | Yes | Renderer information. |
## InterruptEvent<sup>8+</sup><a name="interruptevent"></a> ## InterruptEvent<sup>8+</sup><a name="interruptevent"></a>
Describes the interrupt event received by the app when playback is interrupted. Describes the interrupt event received by the app when playback is interrupted.
**System capabilities**: SystemCapability.Multimedia.Audio.Renderer
**Parameters** **Parameters**
| Name | Type | Mandatory | Description | | Name | Type | Mandatory | Description |
...@@ -491,6 +512,8 @@ Describes the interrupt event received by the app when playback is interrupted. ...@@ -491,6 +512,8 @@ Describes the interrupt event received by the app when playback is interrupted.
## VolumeEvent<sup>8+</sup><a name="volumeevent"></a> ## VolumeEvent<sup>8+</sup><a name="volumeevent"></a>
Describes the volume event received by the app when the volume is changed. Describes the volume event received by the app when the volume is changed.
**System capabilities**: SystemCapability.Multimedia.Audio.Volume
**Parameters** **Parameters**
| Name | Type | Mandatory | Description | | Name | Type | Mandatory | Description |
...@@ -515,12 +538,16 @@ Describes ringtone options. ...@@ -515,12 +538,16 @@ Describes ringtone options.
Implements audio volume and audio device management. Implements audio volume and audio device management.
**System capabilities**: SystemCapability.Multimedia.Audio.Core
## audioManager.setVolume ## audioManager.setVolume
setVolume\(volumeType: AudioVolumeType, volume: number, callback: AsyncCallback<void\>\): void<a name="section189141826104616"></a> setVolume\(volumeType: AudioVolumeType, volume: number, callback: AsyncCallback<void\>\): void<a name="section189141826104616"></a>
Sets the volume for a stream. This method uses an asynchronous callback to return the result. Sets the volume for a stream. This method uses an asynchronous callback to return the result.
**System capabilities**: SystemCapability.Multimedia.Audio.Volume
**Parameters** **Parameters**
<a name="table11004831415"></a> <a name="table11004831415"></a>
...@@ -585,6 +612,8 @@ setVolume\(volumeType: AudioVolumeType, volume: number\): Promise<void\><a name= ...@@ -585,6 +612,8 @@ setVolume\(volumeType: AudioVolumeType, volume: number\): Promise<void\><a name=
Sets the volume for a stream. This method uses a promise to return the result. Sets the volume for a stream. This method uses a promise to return the result.
**System capabilities**: SystemCapability.Multimedia.Audio.Volume
**Parameters** **Parameters**
<a name="table20688181818176"></a> <a name="table20688181818176"></a>
...@@ -650,6 +679,8 @@ getVolume\(volumeType: AudioVolumeType, callback: AsyncCallback<number\>\): void ...@@ -650,6 +679,8 @@ getVolume\(volumeType: AudioVolumeType, callback: AsyncCallback<number\>\): void
Obtains the volume of a stream. This method uses an asynchronous callback to return the query result. Obtains the volume of a stream. This method uses an asynchronous callback to return the query result.
**System capabilities**: SystemCapability.Multimedia.Audio.Volume
**Parameters** **Parameters**
<a name="table44323134204"></a> <a name="table44323134204"></a>
...@@ -707,6 +738,8 @@ getVolume\(volumeType: AudioVolumeType\): Promise<number\><a name="section041219 ...@@ -707,6 +738,8 @@ getVolume\(volumeType: AudioVolumeType\): Promise<number\><a name="section041219
Obtains the volume of a stream. This method uses a promise to return the query result. Obtains the volume of a stream. This method uses a promise to return the query result.
**System capabilities**: SystemCapability.Multimedia.Audio.Volume
**Parameters** **Parameters**
<a name="table174341113202016"></a> <a name="table174341113202016"></a>
...@@ -764,6 +797,8 @@ getMinVolume\(volumeType: AudioVolumeType, callback: AsyncCallback<number\>\): v ...@@ -764,6 +797,8 @@ getMinVolume\(volumeType: AudioVolumeType, callback: AsyncCallback<number\>\): v
Obtains the minimum volume allowed for a stream. This method uses an asynchronous callback to return the query result. Obtains the minimum volume allowed for a stream. This method uses an asynchronous callback to return the query result.
**System capabilities**: SystemCapability.Multimedia.Audio.Volume
**Parameters** **Parameters**
<a name="table9585157122219"></a> <a name="table9585157122219"></a>
...@@ -821,6 +856,8 @@ getMinVolume\(volumeType: AudioVolumeType\): Promise<number\><a name="section415 ...@@ -821,6 +856,8 @@ getMinVolume\(volumeType: AudioVolumeType\): Promise<number\><a name="section415
Obtains the minimum volume allowed for a stream. This method uses a promise to return the query result. Obtains the minimum volume allowed for a stream. This method uses a promise to return the query result.
**System capabilities**: SystemCapability.Multimedia.Audio.Volume
**Parameters** **Parameters**
<a name="table558627102215"></a> <a name="table558627102215"></a>
...@@ -878,6 +915,8 @@ getMaxVolume\(volumeType: AudioVolumeType, callback: AsyncCallback<number\>\): v ...@@ -878,6 +915,8 @@ getMaxVolume\(volumeType: AudioVolumeType, callback: AsyncCallback<number\>\): v
Obtains the maximum volume allowed for a stream. This method uses an asynchronous callback to return the query result. Obtains the maximum volume allowed for a stream. This method uses an asynchronous callback to return the query result.
**System capabilities**: SystemCapability.Multimedia.Audio.Volume
**Parameters** **Parameters**
<a name="table7210144262214"></a> <a name="table7210144262214"></a>
...@@ -935,6 +974,8 @@ getMaxVolume\(volumeType: AudioVolumeType\): Promise<number\><a name="section155 ...@@ -935,6 +974,8 @@ getMaxVolume\(volumeType: AudioVolumeType\): Promise<number\><a name="section155
Obtains the maximum volume allowed for a stream. This method uses a promise to return the query result. Obtains the maximum volume allowed for a stream. This method uses a promise to return the query result.
**System capabilities**: SystemCapability.Multimedia.Audio.Volume
**Parameters** **Parameters**
<a name="table11211104210226"></a> <a name="table11211104210226"></a>
...@@ -991,6 +1032,8 @@ mute\(volumeType: AudioVolumeType, mute: boolean, callback: AsyncCallback<void\> ...@@ -991,6 +1032,8 @@ mute\(volumeType: AudioVolumeType, mute: boolean, callback: AsyncCallback<void\>
Mutes a stream. This method uses an asynchronous callback to return the result. Mutes a stream. This method uses an asynchronous callback to return the result.
**System capabilities**: SystemCapability.Multimedia.Audio.Volume
**Parameters** **Parameters**
<a name="table16516183634618"></a> <a name="table16516183634618"></a>
...@@ -1057,6 +1100,8 @@ mute\(volumeType: AudioVolumeType, mute: boolean\): Promise<void\><sup>7+</sup>< ...@@ -1057,6 +1100,8 @@ mute\(volumeType: AudioVolumeType, mute: boolean\): Promise<void\><sup>7+</sup><
Mutes a stream. This method uses a promise to return the result. Mutes a stream. This method uses a promise to return the result.
**System capabilities**: SystemCapability.Multimedia.Audio.Volume
**Parameters** **Parameters**
<a name="table9519103616467"></a> <a name="table9519103616467"></a>
...@@ -1123,6 +1168,8 @@ isMute\(volumeType: AudioVolumeType, callback: AsyncCallback<boolean\>\): void<s ...@@ -1123,6 +1168,8 @@ isMute\(volumeType: AudioVolumeType, callback: AsyncCallback<boolean\>\): void<s
Checks whether a stream is muted. This method uses an asynchronous callback to return the query result. Checks whether a stream is muted. This method uses an asynchronous callback to return the query result.
**System capabilities**: SystemCapability.Multimedia.Audio.Volume
**Parameters** **Parameters**
<a name="table26841038115812"></a> <a name="table26841038115812"></a>
...@@ -1180,6 +1227,8 @@ isMute\(volumeType: AudioVolumeType\): Promise<boolean\><sup>7+</sup><a name="se ...@@ -1180,6 +1227,8 @@ isMute\(volumeType: AudioVolumeType\): Promise<boolean\><sup>7+</sup><a name="se
Checks whether a stream is muted. This method uses a promise to return the result. Checks whether a stream is muted. This method uses a promise to return the result.
**System capabilities**: SystemCapability.Multimedia.Audio.Volume
**Parameters** **Parameters**
<a name="table179201611155614"></a> <a name="table179201611155614"></a>
...@@ -1237,6 +1286,8 @@ isActive\(volumeType: AudioVolumeType, callback: AsyncCallback<boolean\>\): void ...@@ -1237,6 +1286,8 @@ isActive\(volumeType: AudioVolumeType, callback: AsyncCallback<boolean\>\): void
Checks whether a stream is active. This method uses an asynchronous callback to return the query result. Checks whether a stream is active. This method uses an asynchronous callback to return the query result.
**System capabilities**: SystemCapability.Multimedia.Audio.Volume
**Parameters** **Parameters**
<a name="table11801954151215"></a> <a name="table11801954151215"></a>
...@@ -1294,6 +1345,8 @@ isActive\(volumeType: AudioVolumeType\): Promise<boolean\><sup>7+</sup><a name=" ...@@ -1294,6 +1345,8 @@ isActive\(volumeType: AudioVolumeType\): Promise<boolean\><sup>7+</sup><a name="
Checks whether a stream is active. This method uses a promise to return the query result. Checks whether a stream is active. This method uses a promise to return the query result.
**System capabilities**: SystemCapability.Multimedia.Audio.Volume
**Parameters** **Parameters**
<a name="table18041954171217"></a> <a name="table18041954171217"></a>
...@@ -1351,6 +1404,8 @@ setRingerMode\(mode: AudioRingMode, callback: AsyncCallback<void\>\): void<sup>7 ...@@ -1351,6 +1404,8 @@ setRingerMode\(mode: AudioRingMode, callback: AsyncCallback<void\>\): void<sup>7
Sets the ringer mode. This method uses an asynchronous callback to return the result. Sets the ringer mode. This method uses an asynchronous callback to return the result.
**System capabilities**: SystemCapability.Multimedia.Audio.Communication
**Parameters** **Parameters**
<a name="table157219143361"></a> <a name="table157219143361"></a>
...@@ -1408,6 +1463,8 @@ setRingerMode\(mode: AudioRingMode\): Promise<void\><sup>7+</sup><a name="sectio ...@@ -1408,6 +1463,8 @@ setRingerMode\(mode: AudioRingMode\): Promise<void\><sup>7+</sup><a name="sectio
Sets the ringer mode. This method uses a promise to return the result. Sets the ringer mode. This method uses a promise to return the result.
**System capabilities**: SystemCapability.Multimedia.Audio.Communication
**Parameters** **Parameters**
<a name="table55743147369"></a> <a name="table55743147369"></a>
...@@ -1465,6 +1522,8 @@ getRingerMode\(callback: AsyncCallback<AudioRingMode\>\): void<sup>7+</sup><a na ...@@ -1465,6 +1522,8 @@ getRingerMode\(callback: AsyncCallback<AudioRingMode\>\): void<sup>7+</sup><a na
Obtains the ringer mode. This method uses an asynchronous callback to return the query result. Obtains the ringer mode. This method uses an asynchronous callback to return the query result.
**System capabilities**: SystemCapability.Multimedia.Audio.Communication
**Parameters** **Parameters**
<a name="table139051710191611"></a> <a name="table139051710191611"></a>
...@@ -1513,6 +1572,8 @@ getRingerMode\(\): Promise<AudioRingMode\><sup>7+</sup><a name="section139082101 ...@@ -1513,6 +1572,8 @@ getRingerMode\(\): Promise<AudioRingMode\><sup>7+</sup><a name="section139082101
Obtains the ringer mode. This method uses a promise to return the query result. Obtains the ringer mode. This method uses a promise to return the query result.
**System capabilities**: SystemCapability.Multimedia.Audio.Communication
**Parameters** **Parameters**
None None
...@@ -1549,6 +1610,8 @@ setAudioParameter\(key: string, value: string, callback: AsyncCallback<void\>\): ...@@ -1549,6 +1610,8 @@ setAudioParameter\(key: string, value: string, callback: AsyncCallback<void\>\):
Sets an audio parameter. This method uses an asynchronous callback to return the result. Sets an audio parameter. This method uses an asynchronous callback to return the result.
**System capabilities**: SystemCapability.Multimedia.Audio.Core
**Parameters** **Parameters**
<a name="table59175774814"></a> <a name="table59175774814"></a>
...@@ -1615,6 +1678,8 @@ setAudioParameter\(key: string, value: string\): Promise<void\><sup>7+</sup><a n ...@@ -1615,6 +1678,8 @@ setAudioParameter\(key: string, value: string\): Promise<void\><sup>7+</sup><a n
Sets an audio parameter. This method uses a promise to return the result. Sets an audio parameter. This method uses a promise to return the result.
**System capabilities**: SystemCapability.Multimedia.Audio.Core
**Parameters** **Parameters**
<a name="table18121957164810"></a> <a name="table18121957164810"></a>
...@@ -1681,6 +1746,8 @@ getAudioParameter\(key: string, callback: AsyncCallback<string\>\): void<sup>7+< ...@@ -1681,6 +1746,8 @@ getAudioParameter\(key: string, callback: AsyncCallback<string\>\): void<sup>7+<
Obtains the value of an audio parameter. This method uses an asynchronous callback to return the query result. Obtains the value of an audio parameter. This method uses an asynchronous callback to return the query result.
**System capabilities**: SystemCapability.Multimedia.Audio.Core
**Parameters** **Parameters**
<a name="table1315657114817"></a> <a name="table1315657114817"></a>
...@@ -1738,6 +1805,8 @@ getAudioParameter\(key: string\): Promise<string\><sup>7+</sup><a name="section3 ...@@ -1738,6 +1805,8 @@ getAudioParameter\(key: string\): Promise<string\><sup>7+</sup><a name="section3
Obtains the value of an audio parameter. This method uses a promise to return the query result. Obtains the value of an audio parameter. This method uses a promise to return the query result.
**System capabilities**: SystemCapability.Multimedia.Audio.Core
**Parameters** **Parameters**
<a name="table5180572488"></a> <a name="table5180572488"></a>
...@@ -1795,6 +1864,8 @@ getDevices\(deviceFlag: DeviceFlag, callback: AsyncCallback<AudioDeviceDescripto ...@@ -1795,6 +1864,8 @@ getDevices\(deviceFlag: DeviceFlag, callback: AsyncCallback<AudioDeviceDescripto
Obtains the audio devices with a specific flag. This method uses an asynchronous callback to return the query result. Obtains the audio devices with a specific flag. This method uses an asynchronous callback to return the query result.
**System capabilities**: SystemCapability.Multimedia.Audio.Device
**Parameters** **Parameters**
<a name="table8653191616249"></a> <a name="table8653191616249"></a>
...@@ -1853,6 +1924,8 @@ getDevices\(deviceFlag: DeviceFlag\): Promise<AudioDeviceDescriptors\><a name="s ...@@ -1853,6 +1924,8 @@ getDevices\(deviceFlag: DeviceFlag\): Promise<AudioDeviceDescriptors\><a name="s
Obtains the audio devices with a specific flag. This method uses a promise to return the query result. Obtains the audio devices with a specific flag. This method uses a promise to return the query result.
**System capabilities**: SystemCapability.Multimedia.Audio.Device
**Parameters** **Parameters**
<a name="table17655516132411"></a> <a name="table17655516132411"></a>
...@@ -1910,6 +1983,8 @@ setDeviceActive\(deviceType: DeviceType, active: boolean, callback: AsyncCallbac ...@@ -1910,6 +1983,8 @@ setDeviceActive\(deviceType: DeviceType, active: boolean, callback: AsyncCallbac
Sets a device to the active state. This method uses an asynchronous callback to return the result. Sets a device to the active state. This method uses an asynchronous callback to return the result.
**System capabilities**: SystemCapability.Multimedia.Audio.Device
**Parameters** **Parameters**
<a name="table5355740142213"></a> <a name="table5355740142213"></a>
...@@ -1977,6 +2052,8 @@ setDeviceActive\(deviceType: DeviceType, active: boolean\): Promise<void\><sup>7 ...@@ -1977,6 +2052,8 @@ setDeviceActive\(deviceType: DeviceType, active: boolean\): Promise<void\><sup>7
Sets a device to the active state. This method uses a promise to return the result. Sets a device to the active state. This method uses a promise to return the result.
**System capabilities**: SystemCapability.Multimedia.Audio.Device
**Parameters** **Parameters**
<a name="table1335914018225"></a> <a name="table1335914018225"></a>
...@@ -2043,6 +2120,8 @@ isDeviceActive\(deviceType: DeviceType, callback: AsyncCallback<boolean\>\): voi ...@@ -2043,6 +2120,8 @@ isDeviceActive\(deviceType: DeviceType, callback: AsyncCallback<boolean\>\): voi
Checks whether a device is active. This method uses an asynchronous callback to return the query result. Checks whether a device is active. This method uses an asynchronous callback to return the query result.
**System capabilities**: SystemCapability.Multimedia.Audio.Device
**Parameters** **Parameters**
<a name="table13638406221"></a> <a name="table13638406221"></a>
...@@ -2100,6 +2179,8 @@ isDeviceActive\(deviceType: DeviceType\): Promise<boolean\><sup>7+</sup><a name= ...@@ -2100,6 +2179,8 @@ isDeviceActive\(deviceType: DeviceType\): Promise<boolean\><sup>7+</sup><a name=
Checks whether a device is active. This method uses a promise to return the query result. Checks whether a device is active. This method uses a promise to return the query result.
**System capabilities**: SystemCapability.Multimedia.Audio.Device
**Parameters** **Parameters**
<a name="table10366184019222"></a> <a name="table10366184019222"></a>
...@@ -2157,6 +2238,8 @@ setMicrophoneMute\(mute: boolean, callback: AsyncCallback<void\>\): void<sup>7+< ...@@ -2157,6 +2238,8 @@ setMicrophoneMute\(mute: boolean, callback: AsyncCallback<void\>\): void<sup>7+<
Mutes or unmutes the microphone. This method uses an asynchronous callback to return the result. Mutes or unmutes the microphone. This method uses an asynchronous callback to return the result.
**System capabilities**: SystemCapability.Multimedia.Audio.Device
**Parameters** **Parameters**
<a name="table6703123691210"></a> <a name="table6703123691210"></a>
...@@ -2214,6 +2297,8 @@ setMicrophoneMute\(mute: boolean\): Promise<void\><sup>7+</sup><a name="section5 ...@@ -2214,6 +2297,8 @@ setMicrophoneMute\(mute: boolean\): Promise<void\><sup>7+</sup><a name="section5
Mutes or unmutes the microphone. This method uses a promise to return the result. Mutes or unmutes the microphone. This method uses a promise to return the result.
**System capabilities**: SystemCapability.Multimedia.Audio.Device
**Parameters** **Parameters**
<a name="table36281411997"></a> <a name="table36281411997"></a>
...@@ -2271,6 +2356,8 @@ isMicrophoneMute\(callback: AsyncCallback<boolean\>\): void<sup>7+</sup><a name= ...@@ -2271,6 +2356,8 @@ isMicrophoneMute\(callback: AsyncCallback<boolean\>\): void<sup>7+</sup><a name=
Checks whether the microphone is muted. This method uses an asynchronous callback to return the query result. Checks whether the microphone is muted. This method uses an asynchronous callback to return the query result.
**System capabilities**: SystemCapability.Multimedia.Audio.Device
**Parameters** **Parameters**
<a name="table263341115910"></a> <a name="table263341115910"></a>
...@@ -2319,6 +2406,8 @@ isMicrophoneMute\(\): Promise<boolean\><sup>7+</sup><a name="section196363111918 ...@@ -2319,6 +2406,8 @@ isMicrophoneMute\(\): Promise<boolean\><sup>7+</sup><a name="section196363111918
Checks whether the microphone is muted. This method uses a promise to return the query result. Checks whether the microphone is muted. This method uses a promise to return the query result.
**System capabilities**: SystemCapability.Multimedia.Audio.Device
**Parameters** **Parameters**
None None
...@@ -2355,6 +2444,8 @@ on(type: 'volumeChange', callback: Callback<VolumeEvent\>): void<sup>8+</sup><a ...@@ -2355,6 +2444,8 @@ on(type: 'volumeChange', callback: Callback<VolumeEvent\>): void<sup>8+</sup><a
Listens for system volume change events. This method uses a callback to get volume change events. Listens for system volume change events. This method uses a callback to get volume change events.
**System capabilities**: SystemCapability.Multimedia.Audio.Volume
**Parameters** **Parameters**
| Name | Type | Mandatory | Description | | Name | Type | Mandatory | Description |
...@@ -2383,6 +2474,8 @@ on(type: 'ringerModeChange', callback: Callback<AudioRingMode\>): void<sup>8+</s ...@@ -2383,6 +2474,8 @@ on(type: 'ringerModeChange', callback: Callback<AudioRingMode\>): void<sup>8+</s
Listens for ringer mode change events. This method uses a callback to get ringer mode changes. Listens for ringer mode change events. This method uses a callback to get ringer mode changes.
**System capabilities**: SystemCapability.Multimedia.Audio.Communication
**Parameters** **Parameters**
| Name | Type | Mandatory | Description | | Name | Type | Mandatory | Description |
...@@ -2405,12 +2498,16 @@ audioManager.on('ringerModeChange', (ringerMode) => { ...@@ -2405,12 +2498,16 @@ audioManager.on('ringerModeChange', (ringerMode) => {
# AudioDeviceDescriptor<a name="section164657411927"></a> # AudioDeviceDescriptor<a name="section164657411927"></a>
Describes an audio device. Describes an audio device.
**System capabilities**: SystemCapability.Multimedia.Audio.Device
## AudioDeviceDescriptors<a name="section5181155710523"></a> ## AudioDeviceDescriptors<a name="section5181155710523"></a>
type AudioDeviceDescriptors = Array<Readonly<AudioDeviceDescriptor\>\> : void<a name="audiodevicedescriptors"></a>\ type AudioDeviceDescriptors = Array<Readonly<AudioDeviceDescriptor\>\> : void<a name="audiodevicedescriptors"></a>\
<br> <br>
Array of AudioDeviceDescriptors, which is read-only. Array of AudioDeviceDescriptors, which is read-only.
**System capabilities**: SystemCapability.Multimedia.Audio.Device
## audioDeviceDescriptor.deviceRole ## audioDeviceDescriptor.deviceRole
readonly deviceRole: DeviceRole <a name="devicerole-getter"></a> readonly deviceRole: DeviceRole <a name="devicerole-getter"></a>
...@@ -2459,6 +2556,7 @@ promise.then(async function (audioDeviceDescriptors) { ...@@ -2459,6 +2556,7 @@ promise.then(async function (audioDeviceDescriptors) {
# AudioRenderer<a name="audiorenderer"></a> # AudioRenderer<a name="audiorenderer"></a>
Provides audio playback APIs. Provides audio playback APIs.
**System capabilities**: SystemCapability.Multimedia.Audio.Renderer
## audioRenderer.state ## audioRenderer.state
...@@ -2466,6 +2564,8 @@ readonly state: AudioState <sup>8+</sup><a name="rendererstate-getter"></a> ...@@ -2466,6 +2564,8 @@ readonly state: AudioState <sup>8+</sup><a name="rendererstate-getter"></a>
Defines the current render state. Defines the current render state.
**System capabilities**: SystemCapability.Multimedia.Audio.Renderer
| Name | Type | Readable | Writable | Description | | Name | Type | Readable | Writable | Description |
| :---- | :--------- | :------- | :------- | :------------------ | | :---- | :--------- | :------- | :------- | :------------------ |
| state | AudioState | Yes | No | Audio render state. | | state | AudioState | Yes | No | Audio render state. |
...@@ -2482,12 +2582,13 @@ getRendererInfo(callback: AsyncCallback<AudioRendererInfo\>): void<sup>8+</sup>< ...@@ -2482,12 +2582,13 @@ getRendererInfo(callback: AsyncCallback<AudioRendererInfo\>): void<sup>8+</sup><
Gets the renderer information provided while creating a renderer instance. This method uses an asynchronous callback to return the result. Gets the renderer information provided while creating a renderer instance. This method uses an asynchronous callback to return the result.
**System capabilities**: SystemCapability.Multimedia.Audio.Renderer
**Parameters** **Parameters**
| Name | Type | Mandatory | Description | | Name | Type | Mandatory | Description |
| :------- | :--------------------------------- | :-------- | :------------------------------------------------ | | :------- | :--------------------------------- | :-------- | :------------------------------------------------ |
| callback | AsyncCallback<AudioRendererInfo\> | Yes | Callback used to return the renderer information. | | callback | AsyncCallback<AudioRendererInfo\> | Yes | Callback used to return the renderer information. |
| | | | |
**Return value** **Return value**
...@@ -2511,6 +2612,8 @@ getParams(): Promise<AudioRendererInfo\><sup>8+</sup><a name="getrendererinfo-pr ...@@ -2511,6 +2612,8 @@ getParams(): Promise<AudioRendererInfo\><sup>8+</sup><a name="getrendererinfo-pr
Gets the renderer information provided while creating a renderer instance. This method uses a promise to return the result. Gets the renderer information provided while creating a renderer instance. This method uses a promise to return the result.
**System capabilities**: SystemCapability.Multimedia.Audio.Renderer
**Parameters** **Parameters**
None None
...@@ -2537,12 +2640,13 @@ getStreamInfo(callback: AsyncCallback<AudioStreamInfo\>): void<sup>8+</sup><a na ...@@ -2537,12 +2640,13 @@ getStreamInfo(callback: AsyncCallback<AudioStreamInfo\>): void<sup>8+</sup><a na
Gets the renderer stream information. This method uses an asynchronous callback to return the result. Gets the renderer stream information. This method uses an asynchronous callback to return the result.
**System capabilities**: SystemCapability.Multimedia.Audio.Renderer
**Parameters** **Parameters**
| Name | Type | Mandatory | Description | | Name | Type | Mandatory | Description |
| :------- | :--------------------------------- | :-------- | :---------------------------------------------- | | :------- | :--------------------------------- | :-------- | :---------------------------------------------- |
| callback | AsyncCallback<AudioStreamInfo\> | Yes | Callback used to return the stream information. | | callback | AsyncCallback<AudioStreamInfo\> | Yes | Callback used to return the stream information. |
| | | | |
**Return value** **Return value**
...@@ -2566,15 +2670,17 @@ getStreamInfo(): Promise<AudioStreamInfo\><sup>8+</sup><a name="getstreaminfo-pr ...@@ -2566,15 +2670,17 @@ getStreamInfo(): Promise<AudioStreamInfo\><sup>8+</sup><a name="getstreaminfo-pr
Gets the renderer stream information. This method uses a promise to return the result. Gets the renderer stream information. This method uses a promise to return the result.
**System capabilities**: SystemCapability.Multimedia.Audio.Renderer
**Parameters** **Parameters**
None None
**Return value** **Return value**
| Type | Description | | Type | Description |
| :---------------------------- | :----------------------------------------------- | | :---------------------------- | :--------------------------------------------- |
| Promise<AudioStreamInfo\> | Promise used to return the stream information. | | Promise<AudioStreamInfo\> | Promise used to return the stream information. |
**Example** **Example**
...@@ -2593,6 +2699,8 @@ start(callback: AsyncCallback<void\>): void<sup>8+</sup><a name="start-asynccall ...@@ -2593,6 +2699,8 @@ start(callback: AsyncCallback<void\>): void<sup>8+</sup><a name="start-asynccall
Starts the renderer. This method uses an asynchronous callback to return the result. Starts the renderer. This method uses an asynchronous callback to return the result.
**System capabilities**: SystemCapability.Multimedia.Audio.Renderer
**Parameters** **Parameters**
| Name | Type | Mandatory | Description | | Name | Type | Mandatory | Description |
...@@ -2623,6 +2731,8 @@ start(): Promise<void\><a name="start-promise"><sup>8+</sup></a> ...@@ -2623,6 +2731,8 @@ start(): Promise<void\><a name="start-promise"><sup>8+</sup></a>
Starts the renderer. This method uses a promise to return the result. Starts the renderer. This method uses a promise to return the result.
**System capabilities**: SystemCapability.Multimedia.Audio.Renderer
**Parameters** **Parameters**
None None
...@@ -2646,6 +2756,8 @@ pause(callback: AsyncCallback<void\>): void<sup>8+</sup><a name="pause-asynccall ...@@ -2646,6 +2756,8 @@ pause(callback: AsyncCallback<void\>): void<sup>8+</sup><a name="pause-asynccall
Pauses rendering. This method uses an asynchronous callback to return the result. Pauses rendering. This method uses an asynchronous callback to return the result.
**System capabilities**: SystemCapability.Multimedia.Audio.Renderer
**Parameters** **Parameters**
| Name | Type | Mandatory | Description | | Name | Type | Mandatory | Description |
...@@ -2677,6 +2789,8 @@ pause(): Promise<void\><sup>8+</sup><a name="pause-promise"></a> ...@@ -2677,6 +2789,8 @@ pause(): Promise<void\><sup>8+</sup><a name="pause-promise"></a>
Pauses rendering. This method uses a promise to return the result. Pauses rendering. This method uses a promise to return the result.
**System capabilities**: SystemCapability.Multimedia.Audio.Renderer
**Parameters** **Parameters**
None None
...@@ -2701,6 +2815,8 @@ drain(callback: AsyncCallback<void\>): void<sup>8+</sup><a name="drain-asynccall ...@@ -2701,6 +2815,8 @@ drain(callback: AsyncCallback<void\>): void<sup>8+</sup><a name="drain-asynccall
Drains the playback buffer. This method uses an asynchronous callback to return the result. Drains the playback buffer. This method uses an asynchronous callback to return the result.
**System capabilities**: SystemCapability.Multimedia.Audio.Renderer
**Parameters** **Parameters**
| Name | Type | Mandatory | Description | | Name | Type | Mandatory | Description |
...@@ -2731,6 +2847,8 @@ drain(): Promise<void\><sup>8+</sup><a name="drain-promise"></a> ...@@ -2731,6 +2847,8 @@ drain(): Promise<void\><sup>8+</sup><a name="drain-promise"></a>
Drains the playback buffer. This method uses a promise to return the result. Drains the playback buffer. This method uses a promise to return the result.
**System capabilities**: SystemCapability.Multimedia.Audio.Renderer
**Parameters** **Parameters**
None None
...@@ -2754,6 +2872,8 @@ stop(callback: AsyncCallback<void\>): void<sup>8+</sup><a name="stop-asynccallba ...@@ -2754,6 +2872,8 @@ stop(callback: AsyncCallback<void\>): void<sup>8+</sup><a name="stop-asynccallba
Stops rendering. This method uses an asynchronous callback to return the result. Stops rendering. This method uses an asynchronous callback to return the result.
**System capabilities**: SystemCapability.Multimedia.Audio.Renderer
**Parameters** **Parameters**
| Name | Type | Mandatory | Description | | Name | Type | Mandatory | Description |
...@@ -2784,6 +2904,8 @@ stop(): Promise<void\><sup>8+</sup><a name="stop-promise"></a> ...@@ -2784,6 +2904,8 @@ stop(): Promise<void\><sup>8+</sup><a name="stop-promise"></a>
Stops rendering. This method uses a promise to return the result. Stops rendering. This method uses a promise to return the result.
**System capabilities**: SystemCapability.Multimedia.Audio.Renderer
**Parameters** **Parameters**
None None
...@@ -2807,6 +2929,8 @@ release(callback: AsyncCallback<void\>): void<sup>8+</sup><a name="release-async ...@@ -2807,6 +2929,8 @@ release(callback: AsyncCallback<void\>): void<sup>8+</sup><a name="release-async
Releases the renderer. This method uses an asynchronous callback to return the result. Releases the renderer. This method uses an asynchronous callback to return the result.
**System capabilities**: SystemCapability.Multimedia.Audio.Renderer
**Parameters** **Parameters**
| Name | Type | Mandatory | Description | | Name | Type | Mandatory | Description |
...@@ -2838,6 +2962,8 @@ release(): Promise<void\><sup>8+</sup><a name="release-promise"></a> ...@@ -2838,6 +2962,8 @@ release(): Promise<void\><sup>8+</sup><a name="release-promise"></a>
Releases the renderer. This method uses a promise to return the result. Releases the renderer. This method uses a promise to return the result.
**System capabilities**: SystemCapability.Multimedia.Audio.Renderer
**Parameters** **Parameters**
None None
...@@ -2862,6 +2988,8 @@ write(buffer: ArrayBuffer, callback: AsyncCallback<number\>): void<sup>8+</sup>< ...@@ -2862,6 +2988,8 @@ write(buffer: ArrayBuffer, callback: AsyncCallback<number\>): void<sup>8+</sup><
Writes the buffer. This method uses an asynchronous callback to return the result. Writes the buffer. This method uses an asynchronous callback to return the result.
**System capabilities**: SystemCapability.Multimedia.Audio.Renderer
**Parameters** **Parameters**
| Name | Type | Mandatory | Description | | Name | Type | Mandatory | Description |
...@@ -2896,6 +3024,8 @@ write(buffer: ArrayBuffer): Promise<number\><sup>8+</sup><a name="write-promise" ...@@ -2896,6 +3024,8 @@ write(buffer: ArrayBuffer): Promise<number\><sup>8+</sup><a name="write-promise"
Writes the buffer. This method uses a promise to return the result. Writes the buffer. This method uses a promise to return the result.
**System capabilities**: SystemCapability.Multimedia.Audio.Renderer
**Parameters** **Parameters**
None None
...@@ -2928,6 +3058,8 @@ getAudioTime(callback: AsyncCallback<number\>): void<sup>8+</sup><a name="getaud ...@@ -2928,6 +3058,8 @@ getAudioTime(callback: AsyncCallback<number\>): void<sup>8+</sup><a name="getaud
Obtains the timestamp. This method uses an asynchronous callback to return the result. Obtains the timestamp. This method uses an asynchronous callback to return the result.
**System capabilities**: SystemCapability.Multimedia.Audio.Renderer
**Parameters** **Parameters**
| Name | Type | Mandatory | Description | | Name | Type | Mandatory | Description |
...@@ -2954,6 +3086,8 @@ getAudioTime(): Promise<number\><sup>8+</sup><a name="getaudiotime-promise"></a> ...@@ -2954,6 +3086,8 @@ getAudioTime(): Promise<number\><sup>8+</sup><a name="getaudiotime-promise"></a>
Obtains the timestamp. This method uses a promise to return the result. Obtains the timestamp. This method uses a promise to return the result.
**System capabilities**: SystemCapability.Multimedia.Audio.Renderer
**Parameters** **Parameters**
None None
...@@ -2978,6 +3112,8 @@ getBufferSize(callback: AsyncCallback<number\>): void<sup>8+</sup><a name="getbu ...@@ -2978,6 +3112,8 @@ getBufferSize(callback: AsyncCallback<number\>): void<sup>8+</sup><a name="getbu
Obtains a reasonable minimum buffer size for rendering. This method uses an asynchronous callback to return the result. Obtains a reasonable minimum buffer size for rendering. This method uses an asynchronous callback to return the result.
**System capabilities**: SystemCapability.Multimedia.Audio.Renderer
**Parameters** **Parameters**
| Name | Type | Mandatory | Description | | Name | Type | Mandatory | Description |
...@@ -3008,6 +3144,8 @@ getBufferSize(): Promise<number\><sup>8+</sup><a name="getbuffersize-promise"></ ...@@ -3008,6 +3144,8 @@ getBufferSize(): Promise<number\><sup>8+</sup><a name="getbuffersize-promise"></
Obtains a reasonable minimum buffer size for rendering. This method uses a promise to return the result. Obtains a reasonable minimum buffer size for rendering. This method uses a promise to return the result.
**System capabilities**: SystemCapability.Multimedia.Audio.Renderer
**Parameters** **Parameters**
None None
...@@ -3033,13 +3171,14 @@ setRenderRate(rate: AudioRendererRate, callback: AsyncCallback<void\>): void<sup ...@@ -3033,13 +3171,14 @@ setRenderRate(rate: AudioRendererRate, callback: AsyncCallback<void\>): void<sup
Sets the render rate. This method uses an asynchronous callback to return the result. Sets the render rate. This method uses an asynchronous callback to return the result.
**System capabilities**: SystemCapability.Multimedia.Audio.Renderer
**Parameters** **Parameters**
| Name | Type | Mandatory | Description | | Name | Type | Mandatory | Description |
| :------- | :------------------- | :-------- | :---------------------------------- | | :------- | :------------------- | :-------- | :------------------------------------ |
| rate | AudioRendererRate | Yes | Audio render rate. | | rate | AudioRendererRate | Yes | Audio render rate. |
| callback | AsyncCallback<void\> | Yes | Callback used to return the result. | | callback | AsyncCallback<void\> | Yes | Callback used to return the result. |
| | | | |
**Return value** **Return value**
...@@ -3064,6 +3203,8 @@ setRenderRate(rate: AudioRendererRate): Promise<void\><sup>8+</sup><a name="setr ...@@ -3064,6 +3203,8 @@ setRenderRate(rate: AudioRendererRate): Promise<void\><sup>8+</sup><a name="setr
Sets the render rate. This method uses a promise to return the result. Sets the render rate. This method uses a promise to return the result.
**System capabilities**: SystemCapability.Multimedia.Audio.Renderer
**Parameters** **Parameters**
| Name | Type | Mandatory | Description | | Name | Type | Mandatory | Description |
...@@ -3089,11 +3230,12 @@ getRenderRate(callback: AsyncCallback<AudioRendererRate\>): void<sup>8+</sup><a ...@@ -3089,11 +3230,12 @@ getRenderRate(callback: AsyncCallback<AudioRendererRate\>): void<sup>8+</sup><a
Obtains the current render rate. This method uses an asynchronous callback to return the result. Obtains the current render rate. This method uses an asynchronous callback to return the result.
**System capabilities**: SystemCapability.Multimedia.Audio.Renderer
**Parameters** **Parameters**
| Name | Type | Mandatory | Description | | Name | Type | Mandatory | Description |
| :------- | :-------------------------------- | :-------- | :--------------------------------------------- | | :------- | :-------------------------------- | :-------- | :--------------------------------------------- |
| callback | AsyncCallback<AudioRendererRate\> | Yes | Callback used to return the audio render rate. | | callback | AsyncCallback<AudioRendererRate\> | Yes | Callback used to return the audio render rate. |
| | | | |
**Return value** **Return value**
...@@ -3114,6 +3256,8 @@ getRenderRate(): Promise<AudioRendererRate\><a name="getrenderrate-promise"><sup ...@@ -3114,6 +3256,8 @@ getRenderRate(): Promise<AudioRendererRate\><a name="getrenderrate-promise"><sup
Obtains the current render rate. This method uses a promise to return the result. Obtains the current render rate. This method uses a promise to return the result.
**System capabilities**: SystemCapability.Multimedia.Audio.Renderer
**Parameters** **Parameters**
None None
...@@ -3138,6 +3282,8 @@ on(type: 'interrupt', callback: Callback<InterruptEvent\>): void<sup>8+</sup><a ...@@ -3138,6 +3282,8 @@ on(type: 'interrupt', callback: Callback<InterruptEvent\>): void<sup>8+</sup><a
Listens for audio interrupt events. This method uses a callback to get interrupt events. The interrupt event is triggered when audio playback is interrupted. Listens for audio interrupt events. This method uses a callback to get interrupt events. The interrupt event is triggered when audio playback is interrupted.
**System capabilities**: SystemCapability.Multimedia.Audio.Renderer
**Parameters** **Parameters**
| Name | Type | Mandatory | Description | | Name | Type | Mandatory | Description |
| :------- | :------------------------ | :-------- | :---------------------------------------------- | | :------- | :------------------------ | :-------- | :---------------------------------------------- |
......
...@@ -8,6 +8,8 @@ ...@@ -8,6 +8,8 @@
``` ```
import dataAbility from '@ohos.data.dataAbility' import dataAbility from '@ohos.data.dataAbility'
``` ```
## System Capabilities
SystemCapability.DistributedDataManager.DataShare.Consumer
## Required Permissions<a name="section11257113618419"></a> ## Required Permissions<a name="section11257113618419"></a>
...@@ -1336,7 +1338,7 @@ Sets the **DataAbilityPredicates** to filter out duplicate records. ...@@ -1336,7 +1338,7 @@ Sets the **DataAbilityPredicates** to filter out duplicate records.
``` ```
let predicates = new dataAbility.DataAbilityPredicates("EMPLOYEE") let predicates = new dataAbility.DataAbilityPredicates("EMPLOYEE")
predicates.equalTo("NAME", "Rose").distinct("NAME") predicates.equalTo("NAME", "Rose").distinct("NAME")
let resultSet = await rdbStore.query(predicates, ["NAME"]) rdbStore.query(predicates, ["NAME"])
``` ```
......
因为 它太大了无法显示 source diff 。你可以改为 查看blob
...@@ -3,6 +3,9 @@ ...@@ -3,6 +3,9 @@
>![](../../public_sys-resources/icon-note.gif) **NOTE:** >![](../../public_sys-resources/icon-note.gif) **NOTE:**
>The initial APIs of this module are supported since API version 7. Newly added APIs will be marked with a superscript to indicate their earliest API version. >The initial APIs of this module are supported since API version 7. Newly added APIs will be marked with a superscript to indicate their earliest API version.
## System Capabilities
SystemCapability.DistributedDataManager.RelationalStore.Core
## Usage<a name="section42211227142416"></a> ## Usage<a name="section42211227142416"></a>
The **resultSet** object is obtained by using [**RdbStore.query\(\)**](js-apis-data-rdb.md#section6231155031814). The **resultSet** object is obtained by using [**RdbStore.query\(\)**](js-apis-data-rdb.md#section6231155031814).
...@@ -13,8 +16,8 @@ let predicates = new dataRdb.RdbPredicates("EMPLOYEE") ...@@ -13,8 +16,8 @@ let predicates = new dataRdb.RdbPredicates("EMPLOYEE")
predicates.equalTo("AGE", 18) predicates.equalTo("AGE", 18)
let promise = rdbStore.query(predicates, ["ID", "NAME", "AGE", "SALARY", "CODES"]) let promise = rdbStore.query(predicates, ["ID", "NAME", "AGE", "SALARY", "CODES"])
promise.then((resultSet) => { promise.then((resultSet) => {
await console.log(TAG + "resultSet columnNames:" + resultSet.columnNames); console.log("resultSet columnNames:" + resultSet.columnNames);
await console.log(TAG + "resultSet columnCount:" + resultSet.columnCount);}) console.log("resultSet columnCount:" + resultSet.columnCount);
``` ```
## Required Permissions<a name="section11257113618419"></a> ## Required Permissions<a name="section11257113618419"></a>
...@@ -291,10 +294,11 @@ Moves the cursor to the row based on the specified offset. ...@@ -291,10 +294,11 @@ Moves the cursor to the row based on the specified offset.
``` ```
let predicates = new dataRdb.RdbPredicates("EMPLOYEE") let predicates = new dataRdb.RdbPredicates("EMPLOYEE")
let resultSet = await rdbStore.query(predicates, ["ID", "NAME", "AGE", "SALARY", "CODES"]) rdbStore.query(predicates, ["ID", "NAME", "AGE", "SALARY", "CODES"]).then((resultSet) => {
resultSet.goTo(1) resultSet.goTo(1);
resultSet.close() resultSet.close();
resultSet = null resultSet = null;
})
``` ```
...@@ -351,10 +355,11 @@ Moves the cursor to the specified row in the result set. ...@@ -351,10 +355,11 @@ Moves the cursor to the specified row in the result set.
``` ```
let predicates = new dataRdb.RdbPredicates("EMPLOYEE") let predicates = new dataRdb.RdbPredicates("EMPLOYEE")
let resultSet = await rdbStore.query(predicates, ["ID", "NAME", "AGE", "SALARY", "CODES"]) rdbStore.query(predicates, ["ID", "NAME", "AGE", "SALARY", "CODES"]).then((resultSet) => {
resultSet.goToRow(1) resultSet.goToRow(1);
resultSet.close() resultSet.close();
resultSet = null resultSet = null
})
``` ```
...@@ -385,10 +390,11 @@ Moves the cursor to the first row of the result set. ...@@ -385,10 +390,11 @@ Moves the cursor to the first row of the result set.
``` ```
let predicates = new dataRdb.RdbPredicates("EMPLOYEE") let predicates = new dataRdb.RdbPredicates("EMPLOYEE")
let resultSet = await rdbStore.query(predicates, ["ID", "NAME", "AGE", "SALARY", "CODES"]) rdbStore.query(predicates, ["ID", "NAME", "AGE", "SALARY", "CODES"]).then((resultSet) => {
resultSet.goToFirstRow() resultSet.goToFirstRow();
resultSet.close() resultSet.close();
resultSet = null; resultSet = null;
})
``` ```
...@@ -419,10 +425,11 @@ Moves the cursor to the last row of the result set. ...@@ -419,10 +425,11 @@ Moves the cursor to the last row of the result set.
``` ```
let predicates = new dataRdb.RdbPredicates("EMPLOYEE") let predicates = new dataRdb.RdbPredicates("EMPLOYEE")
let resultSet = await rdbStore.query(predicates, ["ID", "NAME", "AGE", "SALARY", "CODES"]) rdbStore.query(predicates, ["ID", "NAME", "AGE", "SALARY", "CODES"]).then((resultSet) => {
resultSet.goToLastRow() resultSet.goToLastRow();
resultSet.close() resultSet.close();
resultSet = null; resultSet = null;
})
``` ```
...@@ -453,10 +460,11 @@ Moves the cursor to the next row in the result set. ...@@ -453,10 +460,11 @@ Moves the cursor to the next row in the result set.
``` ```
let predicates = new dataRdb.RdbPredicates("EMPLOYEE") let predicates = new dataRdb.RdbPredicates("EMPLOYEE")
let resultSet = await rdbStore.query(predicates, ["ID", "NAME", "AGE", "SALARY", "CODES"]) rdbStore.query(predicates, ["ID", "NAME", "AGE", "SALARY", "CODES"]).then((resultSet) => {
resultSet.goToNextRow() resultSet.goToNextRow()
resultSet.close() resultSet.close()
resultSet = null; resultSet = null;
})
``` ```
...@@ -487,10 +495,11 @@ Moves the cursor to the previous row in the result set. ...@@ -487,10 +495,11 @@ Moves the cursor to the previous row in the result set.
``` ```
let predicates = new dataRdb.RdbPredicates("EMPLOYEE") let predicates = new dataRdb.RdbPredicates("EMPLOYEE")
let resultSet = await rdbStore.query(predicates, ["ID", "NAME", "AGE", "SALARY", "CODES"]) rdbStore.query(predicates, ["ID", "NAME", "AGE", "SALARY", "CODES"]).then((resultSet) => {
resultSet.goToPreviousRow() resultSet.goToPreviousRow();
resultSet.close() resultSet.close();
resultSet = null resultSet = null
})
``` ```
...@@ -780,9 +789,10 @@ Closes the result set. ...@@ -780,9 +789,10 @@ Closes the result set.
``` ```
let predicates = new dataRdb.RdbPredicates("EMPLOYEE") let predicates = new dataRdb.RdbPredicates("EMPLOYEE")
let resultSet = await rdbStore.query(predicates, ["ID", "NAME", "AGE", "SALARY", "CODES"]) rdbStore.query(predicates, ["ID", "NAME", "AGE", "SALARY", "CODES"]).then((resultSet) => {
resultSet.close() resultSet.close();
resultSet = null resultSet = null
})
``` ```
...@@ -11,6 +11,9 @@ Lightweight storage provides applications with data processing capability and al ...@@ -11,6 +11,9 @@ Lightweight storage provides applications with data processing capability and al
import dataStorage from '@ohos.data.storage' import dataStorage from '@ohos.data.storage'
``` ```
## System Capabilities
SystemCapability.DistributedDataManager.Preference.Core
## Required Permissions<a name="section11257113618419"></a> ## Required Permissions<a name="section11257113618419"></a>
None None
...@@ -109,11 +112,13 @@ Reads a specified file and loads the data to the **Storage** instance for data ...@@ -109,11 +112,13 @@ Reads a specified file and loads the data to the **Storage** instance for data
import dataStorage from '@ohos.data.storage' import dataStorage from '@ohos.data.storage'
import featureAbility from '@ohos.ability.featureAbility' import featureAbility from '@ohos.ability.featureAbility'
var context = featureAbility.getContext() (async () => {
var path = await context.getFilesDir() var context = featureAbility.getContext()
let storage = dataStorage.getStorageSync(path + '/mystore') var path = await context.getFilesDir()
storage.putSync('startup', 'auto') let storage = dataStorage.getStorageSync(path + '/mystore')
storage.flushSync() storage.putSync('startup', 'auto')
storage.flushSync()
})()
``` ```
...@@ -163,9 +168,10 @@ Reads a specified file and loads the data to the **Storage** instance for data ...@@ -163,9 +168,10 @@ Reads a specified file and loads the data to the **Storage** instance for data
import dataStorage from '@ohos.data.storage' import dataStorage from '@ohos.data.storage'
import featureAbility from '@ohos.ability.featureAbility' import featureAbility from '@ohos.ability.featureAbility'
var context = featureAbility.getContext() (async () => {
var path = await context.getFilesDir() var context = featureAbility.getContext()
dataStorage.getStorage(path + '/mystore', function (err, storage) { var path = await context.getFilesDir()
dataStorage.getStorage(path + '/mystore', function (err, storage) {
if (err) { if (err) {
console.info("Get the storage failed, path: " + path + '/mystore') console.info("Get the storage failed, path: " + path + '/mystore')
return; return;
...@@ -173,6 +179,7 @@ Reads a specified file and loads the data to the **Storage** instance for data ...@@ -173,6 +179,7 @@ Reads a specified file and loads the data to the **Storage** instance for data
storage.putSync('startup', 'auto') storage.putSync('startup', 'auto')
storage.flushSync() storage.flushSync()
}) })
})()
``` ```
...@@ -230,15 +237,17 @@ Reads a specified file and loads the data to the **Storage** instance for data ...@@ -230,15 +237,17 @@ Reads a specified file and loads the data to the **Storage** instance for data
import dataStorage from '@ohos.data.storage' import dataStorage from '@ohos.data.storage'
import featureAbility from '@ohos.ability.featureAbility' import featureAbility from '@ohos.ability.featureAbility'
var context = featureAbility.getContext() (async () => {
var path = await context.getFilesDir() var context = featureAbility.getContext()
let promise = dataStorage.getStorage(path + '/mystore') var path = await context.getFilesDir()
promise.then((storage) => { let promise = dataStorage.getStorage(path + '/mystore')
promise.then((storage) => {
storage.putSync('startup', 'auto') storage.putSync('startup', 'auto')
storage.flushSync() storage.flushSync()
}).catch((err) => { }).catch((err) => {
console.info("Get the storage failed, path: " + path + '/mystore') console.info("Get the storage failed, path: " + path + '/mystore')
}) })
}()
``` ```
......
...@@ -6,9 +6,9 @@ ...@@ -6,9 +6,9 @@
import deviceInfo from '@ohos.deviceInfo' import deviceInfo from '@ohos.deviceInfo'
``` ```
## Required Permissions<a name="section373mcpsimp"></a> ## System Capabilities<a name="section373mcpsimp"></a>
None SystemCapability.Startup.SysInfo
## Attributes<a name="section62871841172112"></a> ## Attributes<a name="section62871841172112"></a>
...@@ -347,4 +347,3 @@ None ...@@ -347,4 +347,3 @@ None
</tr> </tr>
</tbody> </tbody>
</table> </table>
...@@ -8,10 +8,9 @@ ...@@ -8,10 +8,9 @@
``` ```
import distributedData from '@ohos.data.distributedData'; import distributedData from '@ohos.data.distributedData';
``` ```
## System Capabilities
SystemCapability.DistributedDataManager.KVStore.DistributedKVStore
## Required Permissions<a name="section11257113618419"></a>
None
## distributedData.createKVManager<a name="section2771164881119"></a> ## distributedData.createKVManager<a name="section2771164881119"></a>
......
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
## Modules to Import ## Modules to Import
```js ```js
import statfs from '@ohos.statfs' import statfs from '@ohos.statfs';
``` ```
## Note ## Note
...@@ -18,7 +18,7 @@ Absolute file or directory path = Application directory + File name or directory ...@@ -18,7 +18,7 @@ Absolute file or directory path = Application directory + File name or directory
For example, if the application directory obtained by using **getOrCreateLocalDir** is **dir** and the file name is **xxx.txt**, the absolute path of the file is as follows: For example, if the application directory obtained by using **getOrCreateLocalDir** is **dir** and the file name is **xxx.txt**, the absolute path of the file is as follows:
```js ```js
let path = dir + "xxx.txt" let path = dir + "xxx.txt";
``` ```
## System Capabilities ## System Capabilities
...@@ -46,7 +46,12 @@ Obtains the number of free bytes of the specified file system in asynchronous mo ...@@ -46,7 +46,12 @@ Obtains the number of free bytes of the specified file system in asynchronous mo
- Example - Example
```js ```js
let num = await statfs.getFreeBytes(path); let path = "/data";
statfs.getFreeBytes(path).then(function (number){
console.info("getFreeBytes successfully:"+ number);
}).catch(function(err){
console.info("getFreeBytes failed with error:"+ err);
});
``` ```
## statfs.getFreeBytes ## statfs.getFreeBytes
...@@ -91,7 +96,12 @@ Obtains the total number of bytes of the specified file system in asynchronous m ...@@ -91,7 +96,12 @@ Obtains the total number of bytes of the specified file system in asynchronous m
- Example - Example
```js ```js
let num = await statfs.getTotalBytes(path); let path = "/data";
statfs.getTotalBytes(path).then(function (number){
console.info("getTotalBytes successfully:"+ number);
}).catch(function(err){
console.info("getTotalBytes failed with error:"+ err);
});
``` ```
## statfs.getTotalBytes ## statfs.getTotalBytes
......
# Update # Update
The update module applies to updates throughout the entire OpenHarmony system, including built-in resources and preset applications, but not third-party applications. The update module applies to updates throughout the entire system, including built-in resources and preset applications, but not third-party applications.
There are two types of updates: SD card update and over the air (OTA) update. There are two types of updates: SD card update and over the air (OTA) update.
......
...@@ -41,7 +41,7 @@ None ...@@ -41,7 +41,7 @@ None
<td class="cellrowborder" valign="top" width="52.42%" headers="mcps1.1.6.1.5 "><p id="p72131224114411"><a name="p72131224114411"></a><a name="p72131224114411"></a>Protocol in the URI.</p> <td class="cellrowborder" valign="top" width="52.42%" headers="mcps1.1.6.1.5 "><p id="p72131224114411"><a name="p72131224114411"></a><a name="p72131224114411"></a>Protocol in the URI.</p>
</td> </td>
</tr> </tr>
<tr id="row58631729183511"><td class="cellrowborder" valign="top" width="15.870000000000001%" headers="mcps1.1.6.1.1 "><p id="p1669917383355"><a name="p1669917383355"></a><a name="p1669917383355"></a>userinfo</p> <tr id="row58631729183511"><td class="cellrowborder" valign="top" width="15.870000000000001%" headers="mcps1.1.6.1.1 "><p id="p1669917383355"><a name="p1669917383355"></a><a name="p1669917383355"></a>userInfo</p>
</td> </td>
<td class="cellrowborder" valign="top" width="10.86%" headers="mcps1.1.6.1.2 "><p id="p986510296359"><a name="p986510296359"></a><a name="p986510296359"></a>string</p> <td class="cellrowborder" valign="top" width="10.86%" headers="mcps1.1.6.1.2 "><p id="p986510296359"><a name="p986510296359"></a><a name="p986510296359"></a>string</p>
</td> </td>
......
# LoadingProgress
> ![icon-note.gif](public_sys-resources/icon-note.gif) **NOTE**
> This component is supported since API version 8. Updates will be marked with a superscript to indicate their earliest API version.
The **<LoadingProgress\>** component is used to display the loading progress.
## Required Permissions
None
## Child Components
None
## APIs
LoadingProgress()
Creates a **LoadingProgress** instance.
## Attributes
| Name| Type| Default Value| Description|
| -------- | -------- | -------- | -------- |
| color | Color | - | Foreground color of the loading progress bar.|
## Example
```
@Entry
@Component
struct LoadingProgressExample {
build() {
Column({ space: 5 }) {
Text('Orbital LoadingProgress ').fontSize(9).fontColor(0xCCCCCC).width('90%')
LoadingProgress()
.color(Color.Blue)
}.width('100%').margin({ top: 5 })
}
}
```
![zh-cn_image_0000001198839004](figures/loadingProgress.png)
# Types<a name="EN-US_TOPIC_0000001158349321"></a> # Types
## Length Type<a name="section15406175012255"></a> ## Length Type
<a name="table726mcpsimp"></a> | Name| Type| Description|
<table><thead align="left"><tr id="row732mcpsimp"><th class="cellrowborder" valign="top" width="13.309999999999999%" id="mcps1.1.4.1.1"><p id="p734mcpsimp"><a name="p734mcpsimp"></a><a name="p734mcpsimp"></a>Name</p> | -------- | -------- | -------- |
</th> | Length | string&nbsp;\|&nbsp;number | Length unit. If the input is a number, use **vp**. If the input is a string, explicitly specify the unit, for example, **'10px'**, or specify the length in percentage, for example, **'100%'**.|
<th class="cellrowborder" valign="top" width="26.35%" id="mcps1.1.4.1.2"><p id="p736mcpsimp"><a name="p736mcpsimp"></a><a name="p736mcpsimp"></a>Type</p>
</th>
<th class="cellrowborder" valign="top" width="60.34%" id="mcps1.1.4.1.3"><p id="p738mcpsimp"><a name="p738mcpsimp"></a><a name="p738mcpsimp"></a>Description</p> ## Angle Type
</th>
</tr> | Name| Type| Description|
</thead> | -------- | -------- | -------- |
<tbody><tr id="row739mcpsimp"><td class="cellrowborder" valign="top" width="13.309999999999999%" headers="mcps1.1.4.1.1 "><p id="p741mcpsimp"><a name="p741mcpsimp"></a><a name="p741mcpsimp"></a>Length</p> | Angle | string&nbsp;\|&nbsp;number | Angle unit. If the input is a number, use **deg**. If the input is a string, explicitly specify the unit, which can be either of the following: <br/>-&nbsp;deg, as in **'100deg'** <br/>-&nbsp;rad, as in **'3.14rad'** |
</td>
<td class="cellrowborder" valign="top" width="26.35%" headers="mcps1.1.4.1.2 "><p id="p743mcpsimp"><a name="p743mcpsimp"></a><a name="p743mcpsimp"></a>string | number</p>
</td> ## Point Type
<td class="cellrowborder" valign="top" width="60.34%" headers="mcps1.1.4.1.3 "><p id="p745mcpsimp"><a name="p745mcpsimp"></a><a name="p745mcpsimp"></a>Length unit. If the input is a number, use <strong id="b1995533113315"><a name="b1995533113315"></a><a name="b1995533113315"></a>vp</strong>. If the input is a string, explicitly specify the unit, for example, <strong id="b7956133143315"><a name="b7956133143315"></a><a name="b7956133143315"></a>10px</strong>, or specify the length in percentage, for example, <strong id="b1195613123314"><a name="b1195613123314"></a><a name="b1195613123314"></a>100%</strong>.</p>
</td> | Name| Type| Description|
</tr> | -------- | -------- | -------- |
</tbody> | Point | [Length,&nbsp;Length] | Coordinates of a point. The first value is the x-axis coordinate, and the second value is the y-axis coordinate.|
</table>
## Angle Type<a name="section1530915545289"></a> ## Color Type
<a name="table6309125452810"></a> The **Color** used by the component attribute method is described as follows:
<table><thead align="left"><tr id="row15309155482814"><th class="cellrowborder" valign="top" width="13.62136213621362%" id="mcps1.1.4.1.1"><p id="p130975418289"><a name="p130975418289"></a><a name="p130975418289"></a>Name</p>
</th> | Name| Type| Description|
<th class="cellrowborder" valign="top" width="18.971897189718973%" id="mcps1.1.4.1.2"><p id="p1030935410283"><a name="p1030935410283"></a><a name="p1030935410283"></a>Type</p> | -------- | -------- | -------- |
</th> | Color | string&nbsp;\|&nbsp;number&nbsp;\|&nbsp;Color | Color information. If the input is a string, use **rgb** or **rgba** to specify the color. If the input is a number, use Hex format to specify the color. If the input is a **Color" enum, use a color value to specify the color. <br/>-&nbsp;'rgb(255,&nbsp;255,&nbsp;255)' <br/>-&nbsp;'rgba(255,&nbsp;255,&nbsp;255,&nbsp;1.0)' <br/>-&nbsp;Hex format: 0xrrggbb, 0xaarrggbb, '\#FFFFFF' <br/>-&nbsp;Enum: Color.Black, Color.White|
<th class="cellrowborder" valign="top" width="67.40674067406741%" id="mcps1.1.4.1.3"><p id="p93095541285"><a name="p93095541285"></a><a name="p93095541285"></a>Description</p>
</th>
</tr> The supported **Color** enums are described as follows:
</thead>
<tbody><tr id="row173098548287"><td class="cellrowborder" valign="top" width="13.62136213621362%" headers="mcps1.1.4.1.1 "><p id="p1230965410285"><a name="p1230965410285"></a><a name="p1230965410285"></a>Angle</p>
</td> | Color| Value| Illustration|
<td class="cellrowborder" valign="top" width="18.971897189718973%" headers="mcps1.1.4.1.2 "><p id="p18309154112810"><a name="p18309154112810"></a><a name="p18309154112810"></a>string | number</p> | -------- | -------- | -------- |
</td> | Black | 0x000000 | ![en-us_image_0000001219864153](figures/en-us_image_0000001219864153.png) |
<td class="cellrowborder" valign="top" width="67.40674067406741%" headers="mcps1.1.4.1.3 "><p id="p10844175013312"><a name="p10844175013312"></a><a name="p10844175013312"></a>Angle unit. If the input is a number, use <strong id="b171831045227"><a name="b171831045227"></a><a name="b171831045227"></a>deg</strong>. If the input is a string, use either of the following angle units:</p> | Blue | 0x0000ff | ![en-us_image_0000001174104404](figures/en-us_image_0000001174104404.png) |
<a name="ul1663455543315"></a><a name="ul1663455543315"></a><ul id="ul1663455543315"><li><strong id="b134871561436"><a name="b134871561436"></a><a name="b134871561436"></a>deg</strong>, for example, <strong id="b134888560317"><a name="b134888560317"></a><a name="b134888560317"></a>100deg</strong>.</li><li><strong id="b1912412212420"><a name="b1912412212420"></a><a name="b1912412212420"></a>rad</strong>, for example, <strong id="b111251221244"><a name="b111251221244"></a><a name="b111251221244"></a>3.14rad</strong>.</li></ul> | Brown | 0xa52a2a | ![en-us_image_0000001219744201](figures/en-us_image_0000001219744201.png) |
</td> | Gray | 0x808080 | ![en-us_image_0000001174264376](figures/en-us_image_0000001174264376.png) |
</tr> | Green | 0x008000 | ![en-us_image_0000001174422914](figures/en-us_image_0000001174422914.png) |
</tbody> | Orange | 0xffa500 | ![en-us_image_0000001219662661](figures/en-us_image_0000001219662661.png) |
</table> | Pink | 0xffc0cb | ![en-us_image_0000001219662663](figures/en-us_image_0000001219662663.png) |
| Red | 0xff0000 | ![en-us_image_0000001219662665](figures/en-us_image_0000001219662665.png) |
## Point Type<a name="section177417431277"></a> | White | 0xffffff | ![en-us_image_0000001174582866](figures/en-us_image_0000001174582866.png) |
| Yellow | 0xffff00 | ![en-us_image_0000001174582864](figures/en-us_image_0000001174582864.png) |
<a name="table25265581277"></a>
<table><thead align="left"><tr id="row652695852720"><th class="cellrowborder" valign="top" width="13.62136213621362%" id="mcps1.1.4.1.1"><p id="p5526135819278"><a name="p5526135819278"></a><a name="p5526135819278"></a>Name</p>
</th> ## ColorStop Type
<th class="cellrowborder" valign="top" width="18.971897189718973%" id="mcps1.1.4.1.2"><p id="p175261158182715"><a name="p175261158182715"></a><a name="p175261158182715"></a>Type</p>
</th> **ColorStop** is used to describe the progressive color stop.
<th class="cellrowborder" valign="top" width="67.40674067406741%" id="mcps1.1.4.1.3"><p id="p852725815278"><a name="p852725815278"></a><a name="p852725815278"></a>Description</p>
</th> | Name| Type| Description|
</tr> | -------- | -------- | -------- |
</thead> | ColorStop | [Color,&nbsp;number] | Type of the progressive color stop. The first parameter specifies the color value, and the second parameter specifies the ratio of 0 to 1.|
<tbody><tr id="row18527125812718"><td class="cellrowborder" valign="top" width="13.62136213621362%" headers="mcps1.1.4.1.1 "><p id="p152713589270"><a name="p152713589270"></a><a name="p152713589270"></a>Point</p>
</td>
<td class="cellrowborder" valign="top" width="18.971897189718973%" headers="mcps1.1.4.1.2 "><p id="p1715962313287"><a name="p1715962313287"></a><a name="p1715962313287"></a>[Length, Length]</p> ## Resource Type
</td>
<td class="cellrowborder" valign="top" width="67.40674067406741%" headers="mcps1.1.4.1.3 "><p id="p12798132712281"><a name="p12798132712281"></a><a name="p12798132712281"></a>Coordinates of a point. The first value is the x-axis coordinate, and the second value is the y-axis coordinate.</p> Resource reference type, which is used to set the value of a component attribute.
</td>
</tr> You can use **$r** or **$rawfile** to create a **Resource** object. For details, see [Resource Access](ts-media-resource-type.md).
</tbody>
</table> - $r('belonging.type.name')
**belonging**: system or application resource. The value can be **'sys'** or **'app'**.
## Color Type<a name="section1326744510818"></a>
**type**: resource type, which can be **'color'**, **'float'**, **'string'**, or **'media'**.
The **Color** used by the component attribute method is described as follows:
**name**: resource name, which is determined during resource definition.
<a name="table112670450819"></a>
<table><thead align="left"><tr id="row11267545288"><th class="cellrowborder" valign="top" width="13.309999999999999%" id="mcps1.1.4.1.1"><p id="p326754519814"><a name="p326754519814"></a><a name="p326754519814"></a>Name</p> - $rawfile('filename')
</th> **filename**: name of the file in **resources/rawfile** of the project.
<th class="cellrowborder" valign="top" width="26.35%" id="mcps1.1.4.1.2"><p id="p1267045184"><a name="p1267045184"></a><a name="p1267045184"></a>Type</p>
</th> | Name| Type| Description|
<th class="cellrowborder" valign="top" width="60.34%" id="mcps1.1.4.1.3"><p id="p626714451182"><a name="p626714451182"></a><a name="p626714451182"></a>Description</p> | -------- | -------- | -------- |
</th> | Resource | {<br/>readonly&nbsp;id:&nbsp;[number];<br/>readonly&nbsp;type:&nbsp;[number];<br/>readonly&nbsp;params?:&nbsp;any[];<br/>} | **id**: resource ID. <br/>**type**: resource type (enumerated value). <br/>**params**: optional parameters. <br/>After a **Resource** object is created using **$r** or **$rawfile**, modifying attribute values of the object is prohibited.|
</tr>
</thead>
<tbody><tr id="row17267745782"><td class="cellrowborder" valign="top" width="13.309999999999999%" headers="mcps1.1.4.1.1 "><p id="p126711451816"><a name="p126711451816"></a><a name="p126711451816"></a>Color</p> ## ResourceStr<sup>8+</sup>
</td>
<td class="cellrowborder" valign="top" width="26.35%" headers="mcps1.1.4.1.2 "><p id="p10267245383"><a name="p10267245383"></a><a name="p10267245383"></a>string | number | Color</p> | Name| Type| Description|
</td> | -------- | -------- | -------- |
<td class="cellrowborder" valign="top" width="60.34%" headers="mcps1.1.4.1.3 "><p id="p11674615417"><a name="p11674615417"></a><a name="p11674615417"></a>Color information. If the input is a string, use <strong id="b196195148488"><a name="b196195148488"></a><a name="b196195148488"></a>rgb</strong> or <strong id="b7743118134810"><a name="b7743118134810"></a><a name="b7743118134810"></a>rgba</strong> to describe the color. If the input is a number, describe the color in HEX format. If the input is of a color type, use a color value.</p> | ResourceStr | string&nbsp;\|&nbsp;[Resource](#resource type)| Resource string.|
<p id="p10116112546"><a name="p10116112546"></a><a name="p10116112546"></a>Example:</p>
<a name="ul609mcpsimp"></a><a name="ul609mcpsimp"></a><ul id="ul609mcpsimp"><li>rgb(255, 255, 255)</li><li>rgba(255, 255, 255, 1.0)</li><li>HEX format: 0xrrggbb, 0xaarrggbb, or #FFFFFF</li><li>Enumerated color format: Color.Black or Color.White</li></ul>
</td> ## Resource Color<sup>8+</sup>
</tr>
</tbody> | Name| Type| Description|
</table> | -------- | -------- | -------- |
| ResourceColor | Color&nbsp;\|&nbsp;number&nbsp;\|&nbsp;string&nbsp;\|&nbsp;[Resource](#resource type)| Resource color.|
The following colors are supported.
<a name="table141385933518"></a> ## Custom Builder<sup>8+</sup>
<table><thead align="left"><tr id="row313259183513"><th class="cellrowborder" valign="top" width="33.33333333333333%" id="mcps1.1.4.1.1"><p id="p1913259133517"><a name="p1913259133517"></a><a name="p1913259133517"></a>Color</p>
</th> You can use **CustomBuilder** to define custom UI descriptions in component attribute methods.
<th class="cellrowborder" valign="top" width="33.33333333333333%" id="mcps1.1.4.1.2"><p id="p81345913357"><a name="p81345913357"></a><a name="p81345913357"></a>Value</p>
</th> | Name| Type| Description|
<th class="cellrowborder" valign="top" width="33.33333333333333%" id="mcps1.1.4.1.3"><p id="p1414115915359"><a name="p1414115915359"></a><a name="p1414115915359"></a>Illustration</p> | -------- | -------- | -------- |
</th> | CustomBuilder | ()&nbsp;=&gt;&nbsp;any | Builder of component attribute methods for defining custom UI descriptions. This type of method must be decorated by **@Builder**. For details, see [@Builder](ts-component-based-builder.md).|
</tr>
</thead>
<tbody><tr id="row2141859193520"><td class="cellrowborder" valign="top" width="33.33333333333333%" headers="mcps1.1.4.1.1 "><p id="p14141859193513"><a name="p14141859193513"></a><a name="p14141859193513"></a>Black</p> ## Example
</td>
<td class="cellrowborder" valign="top" width="33.33333333333333%" headers="mcps1.1.4.1.2 "><p id="p12141759113517"><a name="p12141759113517"></a><a name="p12141759113517"></a>0x000000</p>
</td>
<td class="cellrowborder" valign="top" width="33.33333333333333%" headers="mcps1.1.4.1.3 "><p id="p161415592351"><a name="p161415592351"></a><a name="p161415592351"></a><a name="image1826213162617"></a><a name="image1826213162617"></a><span><img id="image1826213162617" src="figures/000000.png"></span></p>
</td>
</tr>
<tr id="row19148591359"><td class="cellrowborder" valign="top" width="33.33333333333333%" headers="mcps1.1.4.1.1 "><p id="p1214859143520"><a name="p1214859143520"></a><a name="p1214859143520"></a>Blue</p>
</td>
<td class="cellrowborder" valign="top" width="33.33333333333333%" headers="mcps1.1.4.1.2 "><p id="p15141159203517"><a name="p15141159203517"></a><a name="p15141159203517"></a>0x0000ff</p>
</td>
<td class="cellrowborder" valign="top" width="33.33333333333333%" headers="mcps1.1.4.1.3 "><p id="p2014105933511"><a name="p2014105933511"></a><a name="p2014105933511"></a><a name="image48472485425"></a><a name="image48472485425"></a><span><img id="image48472485425" src="figures/blue.png"></span></p>
</td>
</tr>
<tr id="row714659133515"><td class="cellrowborder" valign="top" width="33.33333333333333%" headers="mcps1.1.4.1.1 "><p id="p1414959143514"><a name="p1414959143514"></a><a name="p1414959143514"></a>Brown</p>
</td>
<td class="cellrowborder" valign="top" width="33.33333333333333%" headers="mcps1.1.4.1.2 "><p id="p1714165933518"><a name="p1714165933518"></a><a name="p1714165933518"></a>0xa52a2a</p>
</td>
<td class="cellrowborder" valign="top" width="33.33333333333333%" headers="mcps1.1.4.1.3 "><p id="p151445915354"><a name="p151445915354"></a><a name="p151445915354"></a><a name="image1141521144311"></a><a name="image1141521144311"></a><span><img id="image1141521144311" src="figures/brown.png"></span></p>
</td>
</tr>
<tr id="row814165933512"><td class="cellrowborder" valign="top" width="33.33333333333333%" headers="mcps1.1.4.1.1 "><p id="p1514195933511"><a name="p1514195933511"></a><a name="p1514195933511"></a>Gray</p>
</td>
<td class="cellrowborder" valign="top" width="33.33333333333333%" headers="mcps1.1.4.1.2 "><p id="p31413592352"><a name="p31413592352"></a><a name="p31413592352"></a>0x808080</p>
</td>
<td class="cellrowborder" valign="top" width="33.33333333333333%" headers="mcps1.1.4.1.3 "><p id="p414145913353"><a name="p414145913353"></a><a name="p414145913353"></a><a name="image101063411564"></a><a name="image101063411564"></a><span><img id="image101063411564" src="figures/grey.png"></span></p>
</td>
</tr>
<tr id="row414155973512"><td class="cellrowborder" valign="top" width="33.33333333333333%" headers="mcps1.1.4.1.1 "><p id="p71415917350"><a name="p71415917350"></a><a name="p71415917350"></a>Green</p>
</td>
<td class="cellrowborder" valign="top" width="33.33333333333333%" headers="mcps1.1.4.1.2 "><p id="p111475915354"><a name="p111475915354"></a><a name="p111475915354"></a>0x008000</p>
</td>
<td class="cellrowborder" valign="top" width="33.33333333333333%" headers="mcps1.1.4.1.3 "><p id="p13149596357"><a name="p13149596357"></a><a name="p13149596357"></a><a name="image17894132211567"></a><a name="image17894132211567"></a><span><img id="image17894132211567" src="figures/green.png"></span></p>
</td>
</tr>
<tr id="row9305120105713"><td class="cellrowborder" valign="top" width="33.33333333333333%" headers="mcps1.1.4.1.1 "><p id="p1730570115714"><a name="p1730570115714"></a><a name="p1730570115714"></a>Orange</p>
</td>
<td class="cellrowborder" valign="top" width="33.33333333333333%" headers="mcps1.1.4.1.2 "><p id="p530540145713"><a name="p530540145713"></a><a name="p530540145713"></a>0xffa500</p>
</td>
<td class="cellrowborder" valign="top" width="33.33333333333333%" headers="mcps1.1.4.1.3 "><p id="p1530615014576"><a name="p1530615014576"></a><a name="p1530615014576"></a><a name="image57231425662"></a><a name="image57231425662"></a><span><img id="image57231425662" src="figures/orange.png"></span></p>
</td>
</tr>
<tr id="row4313524571"><td class="cellrowborder" valign="top" width="33.33333333333333%" headers="mcps1.1.4.1.1 "><p id="p153131026570"><a name="p153131026570"></a><a name="p153131026570"></a>Pink</p>
</td>
<td class="cellrowborder" valign="top" width="33.33333333333333%" headers="mcps1.1.4.1.2 "><p id="p631316212575"><a name="p631316212575"></a><a name="p631316212575"></a>0xffc0cb</p>
</td>
<td class="cellrowborder" valign="top" width="33.33333333333333%" headers="mcps1.1.4.1.3 "><p id="p1131316219574"><a name="p1131316219574"></a><a name="p1131316219574"></a><a name="image14330155414221"></a><a name="image14330155414221"></a><span><img id="image14330155414221" src="figures/pink.png"></span></p>
</td>
</tr>
<tr id="row43041415719"><td class="cellrowborder" valign="top" width="33.33333333333333%" headers="mcps1.1.4.1.1 "><p id="p173051147574"><a name="p173051147574"></a><a name="p173051147574"></a>Red</p>
</td>
<td class="cellrowborder" valign="top" width="33.33333333333333%" headers="mcps1.1.4.1.2 "><p id="p1030520475714"><a name="p1030520475714"></a><a name="p1030520475714"></a>0xff0000</p>
</td>
<td class="cellrowborder" valign="top" width="33.33333333333333%" headers="mcps1.1.4.1.3 "><p id="p730510415573"><a name="p730510415573"></a><a name="p730510415573"></a><a name="image19292173182417"></a><a name="image19292173182417"></a><span><img id="image19292173182417" src="figures/red.png"></span></p>
</td>
</tr>
<tr id="row9107406587"><td class="cellrowborder" valign="top" width="33.33333333333333%" headers="mcps1.1.4.1.1 "><p id="p41074035812"><a name="p41074035812"></a><a name="p41074035812"></a>White</p>
</td>
<td class="cellrowborder" valign="top" width="33.33333333333333%" headers="mcps1.1.4.1.2 "><p id="p191017409582"><a name="p191017409582"></a><a name="p191017409582"></a>0xffffff</p>
</td>
<td class="cellrowborder" valign="top" width="33.33333333333333%" headers="mcps1.1.4.1.3 "><p id="p1510164055811"><a name="p1510164055811"></a><a name="p1510164055811"></a><a name="image693584014283"></a><a name="image693584014283"></a><span><img id="image693584014283" src="figures/white.png"></span></p>
</td>
</tr>
<tr id="row1447644675811"><td class="cellrowborder" valign="top" width="33.33333333333333%" headers="mcps1.1.4.1.1 "><p id="p94779461585"><a name="p94779461585"></a><a name="p94779461585"></a>Yellow</p>
</td>
<td class="cellrowborder" valign="top" width="33.33333333333333%" headers="mcps1.1.4.1.2 "><p id="p5477546135812"><a name="p5477546135812"></a><a name="p5477546135812"></a>0xffff00</p>
</td>
<td class="cellrowborder" valign="top" width="33.33333333333333%" headers="mcps1.1.4.1.3 "><p id="p74775466585"><a name="p74775466585"></a><a name="p74775466585"></a><a name="image038713915415"></a><a name="image038713915415"></a><span><img id="image038713915415" src="figures/yellow.png"></span></p>
</td>
</tr>
</tbody>
</table>
## ColorStop Type<a name="section5633640161413"></a>
**ColorStop** is used to describe the progressive color stop.
<a name="table6277163655117"></a>
<table><thead align="left"><tr id="row727853615518"><th class="cellrowborder" valign="top" width="12.811281128112812%" id="mcps1.1.4.1.1"><p id="p1927833625111"><a name="p1927833625111"></a><a name="p1927833625111"></a>Name</p>
</th>
<th class="cellrowborder" valign="top" width="20.262026202620262%" id="mcps1.1.4.1.2"><p id="p72781936135110"><a name="p72781936135110"></a><a name="p72781936135110"></a>Type</p>
</th>
<th class="cellrowborder" valign="top" width="66.92669266926693%" id="mcps1.1.4.1.3"><p id="p19278193618515"><a name="p19278193618515"></a><a name="p19278193618515"></a>Description</p>
</th>
</tr>
</thead>
<tbody><tr id="row11278193665119"><td class="cellrowborder" valign="top" width="12.811281128112812%" headers="mcps1.1.4.1.1 "><p id="p927853618514"><a name="p927853618514"></a><a name="p927853618514"></a>ColorStop</p>
</td>
<td class="cellrowborder" valign="top" width="20.262026202620262%" headers="mcps1.1.4.1.2 "><p id="p20278153685112"><a name="p20278153685112"></a><a name="p20278153685112"></a>[Color, number]</p>
</td>
<td class="cellrowborder" valign="top" width="66.92669266926693%" headers="mcps1.1.4.1.3 "><p id="p1127933675115"><a name="p1127933675115"></a><a name="p1127933675115"></a>Type of the progressive color stop. The first parameter specifies the color value, and the second parameter specifies the ratio of 0 to 1.</p>
</td>
</tr>
</tbody>
</table>
## Example<a name="section83351227165714"></a>
``` ```
@Entry @Entry
...@@ -254,5 +158,4 @@ struct dataTypeExample { ...@@ -254,5 +158,4 @@ struct dataTypeExample {
} }
``` ```
![](figures/datatype.png) ![en-us_image_0000001219982719](figures/en-us_image_0000001219982719.png)
...@@ -3,6 +3,7 @@ ...@@ -3,6 +3,7 @@
- [Compilation and Building](subsys-build.md) - [Compilation and Building](subsys-build.md)
- [Building Guidelines for Mini and Small Systems](subsys-build-mini-lite.md) - [Building Guidelines for Mini and Small Systems](subsys-build-mini-lite.md)
- [Building Guidelines for Standard Systems](subsys-build-standard-large.md) - [Building Guidelines for Standard Systems](subsys-build-standard-large.md)
- [Build System Coding Specifications and Best Practices](subsys-build-gn-coding-style-and-best-practice.md)
- [Distributed Remote Startup](subsys-remote-start.md) - [Distributed Remote Startup](subsys-remote-start.md)
- [Graphics](subsys-graphics.md) - [Graphics](subsys-graphics.md)
- [Graphics](subsys-graphics-overview.md) - [Graphics](subsys-graphics-overview.md)
...@@ -81,7 +82,14 @@ ...@@ -81,7 +82,14 @@
- [DFX](subsys-dfx-overview.md) - [DFX](subsys-dfx-overview.md)
- [Development Guidelines on HiLog ](subsys-dfx-hilog-rich.md) - [Development Guidelines on HiLog ](subsys-dfx-hilog-rich.md)
- [Development Guidelines on HiLog\_Lite](subsys-dfx-hilog-lite.md) - [Development Guidelines on HiLog\_Lite](subsys-dfx-hilog-lite.md)
- [HiTrace Development](subsys-dfx-hitrace.md)
- [HiCollie Development](subsys-dfx-hicollie.md)
- [Development Guidelines on HiSysEvent](subsys-dfx-hisysevent.md) - [Development Guidelines on HiSysEvent](subsys-dfx-hisysevent.md)
- [HiSysEvent Development](subsys-dfx-hisysevent.md)
- [HiSysEvent Logging](subsys-dfx-hisysevent-logging.md)
- [HiSysEvent Listening](subsys-dfx-hisysevent-listening.md)
- [HiSysEvent Query](subsys-dfx-hisysevent-query.md)
- [HiSysEvent Tool Usage](subsys-dfx-hisysevent-tool.md)
- [R&D Tools](subsys-toolchain.md) - [R&D Tools](subsys-toolchain.md)
- [bytrace Usage Guidelines](subsys-toolchain-bytrace-guide.md) - [bytrace Usage Guidelines](subsys-toolchain-bytrace-guide.md)
- [hdc\_std Usage Guidelines](subsys-toolchain-hdc-guide.md) - [hdc\_std Usage Guidelines](subsys-toolchain-hdc-guide.md)
......
...@@ -15,7 +15,7 @@ HiSysEvent supports listening for events across processes. You can register a li ...@@ -15,7 +15,7 @@ HiSysEvent supports listening for events across processes. You can register a li
</th> </th>
</tr> </tr>
</thead> </thead>
<tbody><tr id="row16441155818499"><td class="cellrowborder" valign="top" width="48.120000000000005%" headers="mcps1.2.3.1.1 "><p id="p877916438211"><a name="p877916438211"></a><a name="p877916438211"></a>int HiSysEventManager::AddEventListener(std::shared_ptr&lt;HiSysEventSubscribeCallBackBase&gt; listener, std::vector&lt;struct ListenerRule&gt;&amp; rules)</p> <tbody><tr id="row16441155818499"><td class="cellrowborder" valign="top" width="48.120000000000005%" headers="mcps1.2.3.1.1 "><p id="p877916438211"><a name="p877916438211"></a><a name="p877916438211"></a>int HiSysEventManager::AddEventListener(std::shared_ptr&lt;HiSysEventSubscribeCallBack&gt; listener, std::vector&lt;struct ListenerRule&gt;&amp; rules)</p>
</td> </td>
<td class="cellrowborder" valign="top" width="51.88%" headers="mcps1.2.3.1.2 "><p id="p14727325133216"><a name="p14727325133216"></a><a name="p14727325133216"></a>Registers a listener for system events. You can listen for certain events by specifying rules.</p> <td class="cellrowborder" valign="top" width="51.88%" headers="mcps1.2.3.1.2 "><p id="p14727325133216"><a name="p14727325133216"></a><a name="p14727325133216"></a>Registers a listener for system events. You can listen for certain events by specifying rules.</p>
<p id="p167271525203213"><a name="p167271525203213"></a><a name="p167271525203213"></a>Input arguments:</p> <p id="p167271525203213"><a name="p167271525203213"></a><a name="p167271525203213"></a>Input arguments:</p>
...@@ -24,7 +24,7 @@ HiSysEvent supports listening for events across processes. You can register a li ...@@ -24,7 +24,7 @@ HiSysEvent supports listening for events across processes. You can register a li
<a name="ul12105842111913"></a><a name="ul12105842111913"></a><ul id="ul12105842111913"><li><strong id="b117641849702"><a name="b117641849702"></a><a name="b117641849702"></a>0</strong>: Repeated registration is successful.</li><li><strong id="b2682415314"><a name="b2682415314"></a><a name="b2682415314"></a>1</strong>: Initial registration is successful.</li><li>Other values: Registration has failed.</li></ul> <a name="ul12105842111913"></a><a name="ul12105842111913"></a><ul id="ul12105842111913"><li><strong id="b117641849702"><a name="b117641849702"></a><a name="b117641849702"></a>0</strong>: Repeated registration is successful.</li><li><strong id="b2682415314"><a name="b2682415314"></a><a name="b2682415314"></a>1</strong>: Initial registration is successful.</li><li>Other values: Registration has failed.</li></ul>
</td> </td>
</tr> </tr>
<tr id="row910319443242"><td class="cellrowborder" valign="top" width="48.120000000000005%" headers="mcps1.2.3.1.1 "><p id="p15104154411248"><a name="p15104154411248"></a><a name="p15104154411248"></a>void HiSysEventManager::RemoveListener(std::shared_ptr&lt;HiSysEventSubscribeCallBackBase&gt; listener)</p> <tr id="row910319443242"><td class="cellrowborder" valign="top" width="48.120000000000005%" headers="mcps1.2.3.1.1 "><p id="p15104154411248"><a name="p15104154411248"></a><a name="p15104154411248"></a>void HiSysEventManager::RemoveListener(std::shared_ptr&lt;HiSysEventSubscribeCallBack&gt; listener)</p>
</td> </td>
<td class="cellrowborder" valign="top" width="51.88%" headers="mcps1.2.3.1.2 "><p id="p1104194420248"><a name="p1104194420248"></a><a name="p1104194420248"></a>Removes the listener for system events.</p> <td class="cellrowborder" valign="top" width="51.88%" headers="mcps1.2.3.1.2 "><p id="p1104194420248"><a name="p1104194420248"></a><a name="p1104194420248"></a>Removes the listener for system events.</p>
<p id="p7943171095411"><a name="p7943171095411"></a><a name="p7943171095411"></a>Input arguments:</p> <p id="p7943171095411"><a name="p7943171095411"></a><a name="p7943171095411"></a>Input arguments:</p>
...@@ -72,7 +72,7 @@ HiSysEvent supports listening for events across processes. You can register a li ...@@ -72,7 +72,7 @@ HiSysEvent supports listening for events across processes. You can register a li
</th> </th>
</tr> </tr>
</thead> </thead>
<tbody><tr id="row111823719274"><td class="cellrowborder" valign="top" width="48.25%" headers="mcps1.2.3.1.1 "><p id="p161181537112712"><a name="p161181537112712"></a><a name="p161181537112712"></a>void HiSysEventSubscribeCallBackBase::OnHandle(const std::string&amp; domain, const std::string&amp; eventName, const int eventType, const std::string&amp; eventDetail)</p> <tbody><tr id="row111823719274"><td class="cellrowborder" valign="top" width="48.25%" headers="mcps1.2.3.1.1 "><p id="p161181537112712"><a name="p161181537112712"></a><a name="p161181537112712"></a>void HiSysEventSubscribeCallBack::OnHandle(const std::string&amp; domain, const std::string&amp; eventName, const int eventType, const std::string&amp; eventDetail)</p>
</td> </td>
<td class="cellrowborder" valign="top" width="51.74999999999999%" headers="mcps1.2.3.1.2 "><p id="p1772213111011"><a name="p1772213111011"></a><a name="p1772213111011"></a>Callback object for system events.</p> <td class="cellrowborder" valign="top" width="51.74999999999999%" headers="mcps1.2.3.1.2 "><p id="p1772213111011"><a name="p1772213111011"></a><a name="p1772213111011"></a>Callback object for system events.</p>
<p id="p182081719151016"><a name="p182081719151016"></a><a name="p182081719151016"></a>Input arguments:</p> <p id="p182081719151016"><a name="p182081719151016"></a><a name="p182081719151016"></a>Input arguments:</p>
...@@ -97,11 +97,11 @@ In this example, you'll be instructed to register a listener for all system even ...@@ -97,11 +97,11 @@ In this example, you'll be instructed to register a listener for all system even
- Implement the callback API. - Implement the callback API.
HiSysEventSubscribeCallBackBase::OnHandle\(const std::string& domain, const std::string& eventName, const int eventType, const std::string& eventDetail\) HiSysEventSubscribeCallBack::OnHandle\(const std::string& domain, const std::string& eventName, const int eventType, const std::string& eventDetail\)
- Register a callback object. - Register a callback object.
HiSysEventManager::AddEventListener\(std::shared\_ptr<HiSysEventSubscribeCallBackBase\> listener, std::vector<struct ListenerRule\>& rules\) HiSysEventManager::AddEventListener\(std::shared\_ptr<HiSysEventSubscribeCallBack\> listener, std::vector<struct ListenerRule\>& rules\)
``` ```
......
...@@ -15,7 +15,7 @@ HiSysEvent provides an API for you to query system events. You can query concern ...@@ -15,7 +15,7 @@ HiSysEvent provides an API for you to query system events. You can query concern
</th> </th>
</tr> </tr>
</thead> </thead>
<tbody><tr id="row16441155818499"><td class="cellrowborder" valign="top" width="48.120000000000005%" headers="mcps1.2.3.1.1 "><p id="p114411558204915"><a name="p114411558204915"></a><a name="p114411558204915"></a>bool HiSysEventManager::QueryHiSysEvent(struct QueryArg&amp; queryArg, std::vector&lt;struct QueryRule&gt;&amp; queryRules, std::shared_ptr&lt;HiSysEventQueryCallBackBase&gt; queryCallBack)</p> <tbody><tr id="row16441155818499"><td class="cellrowborder" valign="top" width="48.120000000000005%" headers="mcps1.2.3.1.1 "><p id="p114411558204915"><a name="p114411558204915"></a><a name="p114411558204915"></a>bool HiSysEventManager::QueryHiSysEvent(struct QueryArg&amp; queryArg, std::vector&lt;struct QueryRule&gt;&amp; queryRules, std::shared_ptr&lt;HiSysEventQueryCallBack&gt; queryCallBack)</p>
</td> </td>
<td class="cellrowborder" valign="top" width="51.88%" headers="mcps1.2.3.1.2 "><p id="p14727325133216"><a name="p14727325133216"></a><a name="p14727325133216"></a>Queries system events by specifying search criteria such as the time segment, event domain, and event name.</p> <td class="cellrowborder" valign="top" width="51.88%" headers="mcps1.2.3.1.2 "><p id="p14727325133216"><a name="p14727325133216"></a><a name="p14727325133216"></a>Queries system events by specifying search criteria such as the time segment, event domain, and event name.</p>
<p id="p167271525203213"><a name="p167271525203213"></a><a name="p167271525203213"></a>Input arguments:</p> <p id="p167271525203213"><a name="p167271525203213"></a><a name="p167271525203213"></a>Input arguments:</p>
...@@ -90,7 +90,7 @@ HiSysEvent provides an API for you to query system events. You can query concern ...@@ -90,7 +90,7 @@ HiSysEvent provides an API for you to query system events. You can query concern
</th> </th>
</tr> </tr>
</thead> </thead>
<tbody><tr id="row35141554151115"><td class="cellrowborder" valign="top" width="48.03%" headers="mcps1.2.3.1.1 "><p id="p4714143785410"><a name="p4714143785410"></a><a name="p4714143785410"></a>void HiSysEventQueryCallBackBase::OnQuery(const ::std::vector&lt;std::string&gt;&amp; sysEvent, const ::std::vector&lt;int64_t&gt;&amp; seq)</p> <tbody><tr id="row35141554151115"><td class="cellrowborder" valign="top" width="48.03%" headers="mcps1.2.3.1.1 "><p id="p4714143785410"><a name="p4714143785410"></a><a name="p4714143785410"></a>void HiSysEventQueryCallBack::OnQuery(const ::std::vector&lt;std::string&gt;&amp; sysEvent, const ::std::vector&lt;int64_t&gt;&amp; seq)</p>
</td> </td>
<td class="cellrowborder" valign="top" width="51.970000000000006%" headers="mcps1.2.3.1.2 "><p id="p1772213111011"><a name="p1772213111011"></a><a name="p1772213111011"></a>Callback object for event query.</p> <td class="cellrowborder" valign="top" width="51.970000000000006%" headers="mcps1.2.3.1.2 "><p id="p1772213111011"><a name="p1772213111011"></a><a name="p1772213111011"></a>Callback object for event query.</p>
<p id="p182081719151016"><a name="p182081719151016"></a><a name="p182081719151016"></a>Input arguments:</p> <p id="p182081719151016"><a name="p182081719151016"></a><a name="p182081719151016"></a>Input arguments:</p>
...@@ -98,7 +98,7 @@ HiSysEvent provides an API for you to query system events. You can query concern ...@@ -98,7 +98,7 @@ HiSysEvent provides an API for you to query system events. You can query concern
<p id="p18209419201010"><a name="p18209419201010"></a><a name="p18209419201010"></a>Return value: none</p> <p id="p18209419201010"><a name="p18209419201010"></a><a name="p18209419201010"></a>Return value: none</p>
</td> </td>
</tr> </tr>
<tr id="row15141154161111"><td class="cellrowborder" valign="top" width="48.03%" headers="mcps1.2.3.1.1 "><p id="p561110151119"><a name="p561110151119"></a><a name="p561110151119"></a>void HiSysEventQueryCallBackBase::OnComplete(int32_t reason, int32_t total)</p> <tr id="row15141154161111"><td class="cellrowborder" valign="top" width="48.03%" headers="mcps1.2.3.1.1 "><p id="p561110151119"><a name="p561110151119"></a><a name="p561110151119"></a>void HiSysEventQueryCallBack::OnComplete(int32_t reason, int32_t total)</p>
</td> </td>
<td class="cellrowborder" valign="top" width="51.970000000000006%" headers="mcps1.2.3.1.2 "><p id="p126315352130"><a name="p126315352130"></a><a name="p126315352130"></a>Callback object for completion of event query.</p> <td class="cellrowborder" valign="top" width="51.970000000000006%" headers="mcps1.2.3.1.2 "><p id="p126315352130"><a name="p126315352130"></a><a name="p126315352130"></a>Callback object for completion of event query.</p>
<p id="p6631235191316"><a name="p6631235191316"></a><a name="p6631235191316"></a>Input arguments:</p> <p id="p6631235191316"><a name="p6631235191316"></a><a name="p6631235191316"></a>Input arguments:</p>
...@@ -123,13 +123,13 @@ In this example, you'll be instructed to query all system events. ...@@ -123,13 +123,13 @@ In this example, you'll be instructed to query all system events.
- Implement the callback API. - Implement the callback API.
void HiSysEventQueryCallBackBase::OnQuery\(const ::std::vector<std::string\>& sysEvent, const ::std::vector<int64\_t\>& seq\) void HiSysEventQueryCallBack::OnQuery\(const ::std::vector<std::string\>& sysEvent, const ::std::vector<int64\_t\>& seq\)
void HiSysEventQueryCallBackBase::OnComplete\(int32\_t reason, int32\_t total\) void HiSysEventQueryCallBack::OnComplete\(int32\_t reason, int32\_t total\)
- Invoke the query API in the corresponding service logic. - Invoke the query API in the corresponding service logic.
HiSysEventManager::QueryHiSysEvent\(struct QueryArg& queryArg, std::vector<struct QueryRule\>& queryRules, std::shared\_ptr<HiSysEventQueryCallBackBase\> queryCallBack\) HiSysEventManager::QueryHiSysEvent\(struct QueryArg& queryArg, std::vector<struct QueryRule\>& queryRules, std::shared\_ptr<HiSysEventQueryCallBack\> queryCallBack\)
``` ```
......
# DHiSysEvent Development<a name="EN-US_TOPIC_0000001195021448"></a> # HiSysEvent Development<a name="EN-US_TOPIC_0000001195021448"></a>
- **[HiSysEvent Logging Configuration](subsys-dfx-hisysevent-logging-config.md)**
- **[HiSysEvent Logging](subsys-dfx-hisysevent-logging.md)** - **[HiSysEvent Logging](subsys-dfx-hisysevent-logging.md)**
......
...@@ -7,5 +7,5 @@ ...@@ -7,5 +7,5 @@
- [HiSysEvent Logging](subsys-dfx-hisysevent-logging.md) - [HiSysEvent Logging](subsys-dfx-hisysevent-logging.md)
- [HiSysEvent Listening](subsys-dfx-hisysevent-listening.md) - [HiSysEvent Listening](subsys-dfx-hisysevent-listening.md)
- [HiSysEvent Query](subsys-dfx-hisysevent-query.md) - [HiSysEvent Query](subsys-dfx-hisysevent-query.md)
- [HiSysEvent Tool Usage](subsys-dfx-hisysevent-tool-usage.md) - [HiSysEvent Tool Usage](subsys-dfx-hisysevent-tool.md)
# OpenHarmony 1.1.4 LTS
## Version Description
OpenHarmony 1.1.4 LTS is a maintenance version with a tag of OpenHarmony 1.1.3 LTS. This version has rectified certain issues and security vulnerabilities detected in OpenHarmony 1.1.3 LTS.
## Version Mapping
**Table 1** Version mapping of software and tools
| Software/Tool| Version| Remarks|
| -------- | -------- | -------- |
| OpenHarmony | 1.1.4&nbsp;LTS | NA |
| (Optional) HUAWEI&nbsp;DevEco&nbsp;Device&nbsp;Tool| 2.2&nbsp;Beta2 | Recommended for developing OpenHarmony smart devices|
## Source Code Acquisition
### Acquiring Source Code Using the repo Tool
Method 1 \(recommended\): Use the **repo** tool to download the source code over SSH. \(You must have an SSH public key for access to Gitee.\)
```
repo init -u git@gitee.com:openharmony/manifest.git -b refs/tags/OpenHarmony-v1.1.4-LTS --no-repo-verify
repo sync -c
repo forall -c 'git lfs pull'
```
Method 2: Use the **repo** tool to download the source code over HTTPS.
```
repo init -u https://gitee.com/openharmony/manifest.git -b refs/tags/OpenHarmony-v1.1.4-LTS --no-repo-verify
repo sync -c
repo forall -c 'git lfs pull'
```
### Acquiring Source Code from Mirrors
**Table 2** Mirrors for acquiring source code
| Source Code| Version| Mirror| SHA-256 Checksum|
| -------- | -------- | -------- | -------- |
| Full code base| 1.1.4 | [Download](https://repo.huaweicloud.com/harmonyos/os/1.1.4/code-v1.1.4-LTS.tar.gz)| [Download](https://repo.huaweicloud.com/harmonyos/os/1.1.4/code-v1.1.4-LTS.tar.gz.sha256)|
| Hi3861 solution (binary) for the mini system| 1.1.4 | [Download](https://repo.huaweicloud.com/harmonyos/os/1.1.4/wifiiot-1.1.4.tar.gz)| [Download](https://repo.huaweicloud.com/harmonyos/os/1.1.4/wifiiot-1.1.4.tar.gz.sha256)|
| Hi3518 solution (binary) for the small system| 1.1.4 | [Download](https://repo.huaweicloud.com/harmonyos/os/1.1.4/ipcamera_hi3518ev300-1.1.4.tar.gz)| [Download](https://repo.huaweicloud.com/harmonyos/os/1.1.4/ipcamera_hi3518ev300-1.1.4.tar.gz.sha256)|
| Hi3516 solution (binary) for the small system| 1.1.4 | [Download](https://repo.huaweicloud.com/harmonyos/os/1.1.4/ipcamera_hi3516dv300-1.1.4.tar.gz)| [Download](https://repo.huaweicloud.com/harmonyos/os/1.1.4/ipcamera_hi3516dv300-1.1.4.tar.gz.sha256)|
## What's New
This version has the following updates to OpenHarmony 1.1.3 LTS.
### Feature Updates
This version does not involve feature updates.
### Change
This version does not involve API updates.
### Chip and Development Board Adaptation
For details about the adaptation status, see [SIG-Devboard](https://gitee.com/openharmony/community/blob/master/sig/sig-devboard/sig_devboard.md).
## Resolved Issues
**Table 3** Resolved security vulnerabilities
| Issue No.| Description|
| -------- | -------- |
| [I4AJEN](https://gitee.com/openharmony/third_party_freetype/issues/I4AJEN) | Fixed the CVE-2020-15999 security vulnerability of the third_party_freetype component.|
| [I4AJ6T](https://gitee.com/openharmony/third_party_mbedtls/issues/I4AJ6T) | Fixed the CVE-2020-36475 and CVE-2020-36478 security vulnerabilities of the third_party_mbedtls component.|
| [I4AIYJ](https://gitee.com/openharmony/device_hisilicon_third_party_uboot/issues/I4AIYJ?from=project-issue) | Fixed the CVE-2021-27138 and CVE-2021-27097 security vulnerabilities of the third_party_uboot component.|
| [I4HUM6](https://gitee.com/openharmony/third_party_lwip/issues/I4HUM6?from=project-issue) | Fixed the CVE-2020-22284 security vulnerability of the third_party_lwip component.|
| I4QTVZ | Fixed the CVE-2021-44732 and CVE-2021-45450 security vulnerabilities of the third_party_mbedtls component.|
| [I46RRM](https://gitee.com/openharmony/third_party_wpa_supplicant/issues/I46RRM?from=project-issue) | Fixed copying of secondary device types for the P2P group client.|
**Table 4** Resolved issues
| Issue No.| Description|
| -------- | -------- |
| [I457ZZ](https://gitee.com/openharmony/kernel_liteos_a/issues/I457ZZ) | Fixed nested locking in the OsLockDepCheckIn exception handling.|
| [I3WU8Y](https://gitee.com/openharmony/kernel_liteos_a/issues/I3WU8Y) | Fixed the failed test cases in the storage directory of the FS module during the integration test of the lightweight kernel subsystem.|
| [I4AJI2](https://gitee.com/openharmony/device_hisilicon_third_party_ffmpeg/issues/I4AJI2) | Upgraded the FFmpeg version to 4.3.1.|
| [I3HXIX](https://gitee.com/openharmony/third_party_NuttX/issues/I3HXIX?from=project-issue) | Fixed the possible system error in the case of multiple processes, which is caused because the kernel operation node of the pipe uses the dirty private field dev.|
| [I4QO9B](https://gitee.com/openharmony/communication_wifi_lite/issues/I4QO9B?from=project-issue) | Fixed freezing when returning from the WLAN list to the home screen.|
| [I4EPVL](https://gitee.com/openharmony/xts_acts/issues/I4EPVL?from=project-issue) | Temporarily removed the ActsCMSISTest test case since the CMSIS code is not yet compatible with third-party chips.|
| [I4QQU9](https://gitee.com/openharmony/xts_acts/issues/I4QQU9) | Fixed the issue where the serial port logs contain the board IP address and MAC address when the XTS test suite ActsNetTest is executed on the Hi3516 or Hi3518 board of a small-system device.|
## Known Issues
N/A
...@@ -8,6 +8,7 @@ ...@@ -8,6 +8,7 @@
- [OpenHarmony v2.2 beta2 (2021-08-04)](OpenHarmony-v2.2-beta2.md) - [OpenHarmony v2.2 beta2 (2021-08-04)](OpenHarmony-v2.2-beta2.md)
- [OpenHarmony 2.0 Canary (2021-06-02)](OpenHarmony-2-0-Canary.md) - [OpenHarmony 2.0 Canary (2021-06-02)](OpenHarmony-2-0-Canary.md)
## OpenHarmony 1.x Releases ## OpenHarmony 1.x Releases
- [OpenHarmony v1.1.4 LTS (2022-02-11)](OpenHarmony-v1-1-4-LTS.md)
- [OpenHarmony v1.1.3 LTS (2021-09-30)](OpenHarmony-v1-1-3-LTS.md) - [OpenHarmony v1.1.3 LTS (2021-09-30)](OpenHarmony-v1-1-3-LTS.md)
- [OpenHarmony v1.1.2 LTS (2021-08-04)](OpenHarmony-v1.1.2-LTS.md) - [OpenHarmony v1.1.2 LTS (2021-08-04)](OpenHarmony-v1.1.2-LTS.md)
- [OpenHarmony 1.1.1 LTS (2021-06-22)](OpenHarmony-1-1-1-LTS.md) - [OpenHarmony 1.1.1 LTS (2021-06-22)](OpenHarmony-1-1-1-LTS.md)
......
...@@ -271,9 +271,9 @@ OpenHarmony支持如下几种系统类型: ...@@ -271,9 +271,9 @@ OpenHarmony支持如下几种系统类型:
<td class="cellrowborder" valign="top" width="8.35916408359164%" headers="mcps1.1.4.1.3 "><p id="p1962012112314"><a name="p1962012112314"></a><a name="p1962012112314"></a>标准系统</p> <td class="cellrowborder" valign="top" width="8.35916408359164%" headers="mcps1.1.4.1.3 "><p id="p1962012112314"><a name="p1962012112314"></a><a name="p1962012112314"></a>标准系统</p>
</td> </td>
</tr> </tr>
<tr id="row176674368222"><td class="cellrowborder" valign="top" width="11.148885111488852%" headers="mcps1.1.4.1.1 "><p id="p3667203652214"><a name="p3667203652214"></a><a name="p3667203652214"></a>用户程序框架</p> <tr id="row176674368222"><td class="cellrowborder" valign="top" width="11.148885111488852%" headers="mcps1.1.4.1.1 "><p id="p3667203652214"><a name="p3667203652214"></a><a name="p3667203652214"></a>包管理子系统</p>
</td> </td>
<td class="cellrowborder" valign="top" width="80.49195080491951%" headers="mcps1.1.4.1.2 "><p id="p12923326230"><a name="p12923326230"></a><a name="p12923326230"></a>提供包安装、卸载、运行及管理能力。</p> <td class="cellrowborder" valign="top" width="80.49195080491951%" headers="mcps1.1.4.1.2 "><p id="p12923326230"><a name="p12923326230"></a><a name="p12923326230"></a>提供包安装、卸载、更新、查询等能力。</p>
</td> </td>
<td class="cellrowborder" valign="top" width="8.35916408359164%" headers="mcps1.1.4.1.3 "><p id="p12667123619226"><a name="p12667123619226"></a><a name="p12667123619226"></a>所有系统</p> <td class="cellrowborder" valign="top" width="8.35916408359164%" headers="mcps1.1.4.1.3 "><p id="p12667123619226"><a name="p12667123619226"></a><a name="p12667123619226"></a>所有系统</p>
</td> </td>
......
...@@ -3,4 +3,10 @@ ...@@ -3,4 +3,10 @@
- 应用事件打点 - 应用事件打点
- [应用事件打点概述](hiappevent-overview.md) - [应用事件打点概述](hiappevent-overview.md)
- [应用事件打点开发指导](hiappevent-guidelines.md) - [应用事件打点开发指导](hiappevent-guidelines.md)
- 性能打点跟踪
- [性能打点跟踪概述](hitracemeter-overview.md)
- [性能打点跟踪开发指导](hitracemeter-guidelines.md)
- 分布式跟踪
- [分布式跟踪概述](hitracechain-overview.md)
- [分布式跟踪开发指导](hitracechain-guidelines.md)
# 分布式跟踪开发指导
## 场景介绍
HiTraceChain为开发者提供业务流程调用链跟踪的维测接口,帮助开发者迅速获取指定业务流程调用链的运行日志,定位跨设备/跨进程/跨线程的故障问题。
## 接口说明
分布式跟踪接口由hiTraceChain模块提供,详细API请参考[分布式跟踪API参考](../reference/apis/js-apis-hitracechain.md)
**分布式跟踪接口功能介绍:**
| 接口名 | 返回值 | 描述 |
| ------------------------------------------------------------------------------------------------------------------- | -------------- | ------------ |
| hiTraceChain.begin(name: string, flags: number = HiTraceFlag.DEFAULT) | HiTraceId | 开始跟踪。 |
| hiTraceChain.tracepoint(mode: HiTraceCommunicationMode, type: HiTraceTracepointType, id: HiTraceId, msg?: string) | void | 信息埋点。 |
| hiTraceChain.end(id: HiTraceId) | void | 结束跟踪。 |
## 开发步骤
在应用启动执行页面加载后,开始分布式跟踪,完成业务之后,停止分布式跟踪。
1. 新建一个JS应用工程,在“Project”窗口点击“entry > src > main > js > default > pages > index”,打开工程中的“index.js”文件,在页面执行加载后,在实际业务逻辑中调用hiTraceChain的API,进行分布式跟踪,示例代码如下:
```
import hiTraceChain from '@ohos.hiTraceChain'
export default {
data: {
title: ""
},
onInit() {
this.title = this.$t('strings.world');
// 1、开启分布式跟踪
let asyncTraceId = hiTraceChain.begin("business", hiTraceChain.HiTraceFlag.INCLUDE_ASYNC | hiTraceChain.HiTraceFlag.DONOT_CREATE_SPAN);
// 2、业务流程开始
console.log(`business start`);
// 3、埋点操作
hiTraceChain.tracepoint(hiTraceChain.HiTraceCommunicationMode.THREAD, hiTraceChain.HiTraceTracepointType.SS, asyncTraceId, "Just a example");
// 4、业务流程执行中
console.log(`business running`);
// 5、业务流程结束
console.log(`business end`);
// 6、停止跟踪
hiTraceChain.end(asyncTraceId);
}
}
```
2. 运行项目,点击应用界面上的运行按钮,即可通过日志信息分析实际业务。
# 分布式跟踪概述
hiTraceChain是基于云计算分布式跟踪调用链思想,在端侧业务流程(涉及跨线程、跨进程、跨设备)中的一种轻量级实现。
## 基本概念
- **chainId**
分布式跟踪标识,属于HiTraceId的一部分,用于标识当前跟踪的业务流程。
## 运作机制
hiTraceChain在业务控制面流程中,生成和传递唯一跟踪标识,在业务流程中输出的各类信息中(包括应用事件、系统时间、日志等)记录该跟踪标识。在调试、问题定位过程中,开发者可以通过该唯一跟踪标识将本次业务流程端到端的各类信息快速关联起来。
## 约束与限制
hiTraceChain API提供的相关接口全部为同步接口。
\ No newline at end of file
# 性能打点跟踪开发指导
## 场景介绍
HiTraceMeter为开发者提供系统性能打点接口。开发者通过在自己的业务逻辑中的关键代码位置调用HiTraceMeter接口提供的API接口,能够有效追踪进程轨迹、查看系统性能。
## 接口说明
性能打点跟踪接口由hiTraceMeter模块提供,详细API请参考[性能打点跟踪API参考](../reference/apis/js-apis-hitracemeter.md)
**性能打点跟踪接口功能介绍:**
| 接口名 | 返回值 | 描述 |
| ---------------------------------------------------------------------------- | --------- | ------------ |
| hiTraceMeter.startTrace(name: string, taskId: number, expectedTime?: number) | void | 标记一个预追踪耗时任务的开始。如果有多个相同name的任务需要追踪或者对同一个任务要追踪多次,并且任务同时被执行,则每次调用startTrace的taskId不相同。如果具有相同name的任务是串行执行的,则taskId可以相同。 |
| hiTraceMeter.finishTrace(name: string, taskId: number) | void | name和taskId必须与流程开始的hiTraceMeter.startTrace对应参数值保持一致。 |
| hiTraceMeter.traceByValue(name: string, value: number) | void | 用来标记一个预追踪的数值变量,该变量的数值会不断变化。|
## 开发步骤
在应用启动执行页面加载后,开始分布式跟踪,完成业务之后,停止分布式跟踪。
1. 新建一个JS应用工程,在“Project”窗口点击“entry > src > main > js > default > pages > index”,打开工程中的“index.js”文件,在页面执行加载后,在自己的业务中调用hiTraceMeter的接口,进行性能打点追踪,示例代码如下:
```js
import hiTraceMeter from '@ohos.hiTraceMeter'
export default {
data: {
title: ""
},
onInit() {
this.title = this.$t('strings.world');
//从startTrace到finishTrace流程的耗时期望为5ms
hiTraceMeter.startTrace("business", 1);
hiTraceMeter.startTrace("business", 1, 5);
//追踪并行执行的同名任务
hiTraceMeter.startTrace("business", 1);
//业务流程
console.log(`business running`);
hiTraceMeter.startTrace("business", 2); //第二个追踪的任务开始,同时第一个追踪的同名任务还没结束,出现了并行执行,对应接口的taskId需要不同。
//业务流程
console.log(`business running`);
hiTraceMeter.finishTrace("business", 1);
//业务流程
console.log(`business running`);
hiTraceMeter.finishTrace("business", 2);
//追踪串行执行的同名任务
hiTraceMeter.startTrace("business", 1);
//业务流程
console.log(`business running`);
hiTraceMeter.finishTrace("business", 1); //第一个追踪的任务结束
//业务流程
console.log(`business running`);
hiTraceMeter.startTrace("business", 1); //第二个追踪的同名任务开始,同名的待追踪任务串行执行。
//业务流程
console.log(`business running`);
let traceCount = 3;
hiTraceMeter.traceByValue("myTestCount", traceCount);
traceCount = 4;
hiTraceMeter.traceByValue("myTestCount", traceCount);
hiTraceMeter.finishTrace("business", 1);
}
}
```
2. 运行项目,点击应用界面上的运行按钮,即可通过日志信息分析实际业务。
# 性能打点跟踪概述
hiTraceMeter是开发者用于追踪进程轨迹,度量程序执行性能的一种工具,基于内核的ftrace机制,提供给用户态应用代码执行时长度量打点的能力。开发者通过使用hiTraceMeter API在程序中打点,并使用hiTraceMeter提供的命令行工具采集跟踪数据。
## 基本概念
- **hiTraceMeter Tag**
跟踪数据使用类别分类,称作hiTraceMeter Tag或hiTraceMeter Category,一般每个软件子系统对应一个Tag,该Tag在打点API中以类别TAg参数传入。hiTraceMeter命令行工具采集跟踪数据时,只采集给定的Tag类别选项指定的跟踪数据。
## 运作机制
- 应用程序通过hiTraceMeter函数接口进行打点,hiTraceMeter函数将跟踪数据通过内核sysfs文件接口输出到内核的ftrace数据缓冲区。
- hiTraceMeter命令行工具读取内核ftrace缓冲区中的跟踪数据,将文本格式的跟踪数据保存到设备侧的文件中。
## 约束与限制
- 由于JS程序的异步IO特性,现在hiTraceMeter只提供了异步接口。
\ No newline at end of file
# 包结构说明 # 包结构说明
在应用开发的工程中,需要在config.json配置文件中对应用的包结构进行声明。 在应用开发的工程中,需要在config.json配置文件中对应用的包结构进行声明。
## 配置文件的内部结构
配置文件示例如下: “config.json”由app,deviceConfig和module三个部分组成,缺一不可。配置文件的内部结构说明参见表1。
表1 配置文件的内部结构说明
``` | 属性名称 | 含义 | 数据类型 | 是否可缺省 |
| ------------ | ------------------------------------------------------------ | -------- | ---------- |
| app | 表示应用的全局配置信息。同一个应用的不同HAP包的app配置必须保持一致。参考[app对象内部结构](#app对象内部结构)。 | 对象 | 否 |
| deviceConfig | 表示应用在具体设备上的而配置信息。参考[deviceconfig对象内部结构](#deviceconfig对象的内部结构)。 | 对象 | 否 |
| module | 表示HAP包的配置信息。该标签下的配置只对当前HAP包生效。参考[module对象的内部结构](#module对象的内部结构)。 | 对象 | 否 |
config.json示例:
```json
{ {
"app": { "app": {
"bundleName": "com.example.myapplication", "bundleName": "com.example.myapplication",
...@@ -29,7 +41,6 @@ ...@@ -29,7 +41,6 @@
"phone" "phone"
], ],
"distro": { "distro": {
"deliveryWithInstall": true,
"moduleName": "entry", "moduleName": "entry",
"moduleType": "entry" "moduleType": "entry"
}, },
...@@ -69,12 +80,655 @@ ...@@ -69,12 +80,655 @@
} }
``` ```
### app对象内部结构
app对象包含应用全局配置信息,内部结构说明参见表2。
表2 app对象的内部结构说明
| 属性名称 | 含义 | 数据类型 | 是否可缺省 |
| ---------- | ------------------------------------------------------------ | -------- | ------------------ |
| bundleName | 表示应用的包名,用于标识应用的唯一性。包名是由字母、数字、下划线(_)和点号(.)组成的字符串,必须以字母开头。支持的字符串长度为7~127字节。包名通常采用反域名形式表示(例如,"com.example.myapplication")。建议第一级为域名后缀"com",第二级为厂商/个人名,也可以采用多级。 | 字符串 | 否 |
| vendor | 表示对应用开发厂商的描述。字符串长度不超过255字节。 | 字符串 | 可缺省,缺省值为空 |
| version | 表示应用的版本信息。参考表3。 | 对象 | 否 |
| apiVersion | 标识应用程序所依赖的OpenHarmony API版本。参考表4。 | 对象 | 可缺省,缺省值为空 |
表3 version内部结构说明
| 属性名称 | 含义 | 数据类型 | 是否可缺省 |
| ------------------------ | ------------------------------------------------------------ | -------- | -------------------------- |
| name | 表示应用的版本号,用于向应用的终端用户呈现。取值可以自定义,长度不超过127字节。自定义规则如下:<br />API5及更早的版本:推荐使用三段数字版本号(也兼容两段式版本号),如A.B.C(也兼容A.B),其中A、B、C取值为0-999范围内的整数。初次之外不支持其他格式。<br /> A段,一般表示主版本号(Major)。<br /> B段,一般表示次版本号(Minor)。<br /> C段,一般表示修订版本号(Patch)。<br />API6版本起:推荐采用四段式数字版本号,如A.B.C.D,其中A、B、C取值为0-99范围内的整数,D的取值为0-999范围内的整数。<br /> A段,一般表示主版本号(Major)。<br /> B段,一般表示次版本号(Minor)。<br /> C段,一般表示特性版本号(Feature)。<br /> D段,一般表示修订版本号(Patch)。 | 数值 | 不可缺省 |
| code | 表示应用的版本号,仅用于OpenHarmony管理该应用,不对应用的终端用户呈现。取值规则如下:<br />API5及更早版本:二进制32位以内的非负整数,需要从version.name的值转换得到。转换规则为:<br /> code值=A * 1,000,000 + B * 1,000 + C 例如,version.name字段取值为2.2.1,则code值为2002001。<br /> API6版本起:code的取值不与version.name字段的取值关联,开发者可自定义code取值,取值范围为2^31的非负整数,但是每次应用版本的更新,均需要更新code字段的值,新版本code取值必须大于旧版本code的值。 | 数值 | 不可缺省 |
| minCompatibleVersionCode | 表示应用可兼容的最低版本号,用于跨设备场景下,判断其他设备上该应用的版本是否兼容。<br /> 格式与version.code字段的格式要求相同。 | 数值 | 可缺省,缺省值为code标签值 |
表4 apiVersion内部结构
| 属性名称 | 含义 | 数据类型 | 是否可缺省 |
| ----------- | ----------------------------------------------------------- | -------- | ---------- |
| compatible | 运行应用所需要的最低API版本,取值范围为0~2147483647。 | 整数 | 可缺省 |
| target | 用于标识应用运行所需的目标API版本,取值范围为0~2147483647。 | 整数 | 可缺省 |
| releaseType | 用于标识应用运行所需的目标API版本。 | 字符串 | 可缺省 |
app实例:
```json
"app": {
"bundleName": "com.example.myapplication",
"vendor": "example",
"version": {
"code": 1,
"name": "1.0"
},
"apiVersion": {
"compatible": 4,
"target": 5,
"releaseType": "Beta1"
}
}
```
### deviceConfig对象的内部结构
deviceConfig包含设备上的应用配置信息,可以包含default,phone,tv,car,wearable,liteWearable等属性。default标签内的配置是适用于所有通用设备,其他设备类型如果有特殊的需求,则需要在该设备类型的标签下进行配置。内部结构说明参见表5。
表5 deviceConfig对象的内部结构说明
| 属性名称 | 含义 | 数据类型 | 是否可缺省 |
| ------------ | ----------------------------------------------- | -------- | ------------------ |
| default | 表示所有设备通用的应用配置信息。参考表6。 | 对象 | 否 |
| phone | 表示手机类设备的应用信息配置。参考表6。 | 对象 | 可缺省,缺省值为空 |
| tablet | 表示平板的应用配置信息。参考表6。 | 对象 | 可缺省,缺省值为空 |
| tv | 表示智慧屏特有的应用配置信息。参考表6。 | 对象 | 可缺省,缺省值为空 |
| car | 表示车机特有的应用配置信息。参考表6。 | 对象 | 可缺省,缺省值为空 |
| wearable | 表示智能穿戴特有的应用配置信息。参考表6。 | 对象 | 可缺省,缺省值为空 |
| liteWearable | 表示轻量级智能穿戴特有的应用配置信息。参考表6。 | 对象 | 可缺省,缺省值为空 |
default、phone、tablet、tv、car、wearable、liteWearble等对象的内部结构说明,可参见表6。
表6 不同设备的内部结构说明
| 属性名称 | 含义 | 数据类型 | 是否可缺省 |
| ------------------ | ------------------------------------------------------------ | -------- | ----------------------- |
| process | 表示应用或者Ability的进程名。如果在deviceConfig标签下配置了process标签,则该应用的所有Ability都运行在这个进程中。如果在abilities标签下也为某个Ability配置了process标签,则该Ability就运行在这个进程中。该标签仅适用于手机、平板、智慧屏、车机、智慧穿戴。 | 字符串 | 是 |
| supportBackup | 表示应用是否支持备份和恢复。如果配置为"false",则不支持为该应用执行备份或恢复操作。<br /> 该标签仅适用于手机、平板、智慧屏、车机、智能穿戴。 | 布尔值 | 可缺省,缺省值为"false" |
| compressNativeLibs | 表示libs库是否以压缩存储的方式打包到HAP包。如果配置为"false",则libs库以不压缩的方式存储,HAP包在安装时无需解压libs,运行时会直接从HAP内加载libs库。<br /> 该标签仅适用于手机、平板、智慧屏、车机、智能穿戴。 | 布尔值 | 可缺省,缺省值为"true" |
| directLaunch | 指定设备被锁定时是否可以启动应用程序。如果要在不解锁设备的情况下启动应用程序,请将此设备设置为"true"。运行OHOS的设备不支持此属性。 | 布尔值 | 可缺省,缺省值为"false" |
| ark | 标识maple配置信息。参考表7。 | 对象 | 是缺省为空 |
| network | 表示网络安全性配置。该标签允许应用通过配置文件的安全声明来自定义其网络安全,无需修改应用代码。参考表9。 | 对象 | 可缺省,缺省值为空 |
表7 ark对象的内部结构说明·
| 属性名称 | 含义 | 数据类型 | 是否可缺省 |
| ---------- | -------------------------------- | -------- | ------------------------------ |
| reqVersion | 支持应用的maple版本号。参考表8。 | 对象 | 不可缺省 |
| flag | 指定maple应用程序的类型 | 字符串 | 不可缺省且只能为"m","mo","z" |
表8 reqVersion对象内部结构说明
| 属性名称 | 含义 | 数据类型 | 是否可缺省 |
| ---------- | ------------------------------- | -------- | ---------- |
| compatible | 表示支持应用程序的最低maple版本 | 整数 | 不可缺省 |
| target | 指定maple应用程序的类型 | 整数 | 不可缺省 |
表9 network对象的内部结构说明
| 属性名称 | 含义 | 数据类型 | 是否可缺省 |
| ---------------- | ------------------------------------------------------------ | -------- | ----------------------- |
| cleartextTraffic | 表示是否允许应用使用明文网络流量(例如,明文HTTP)<br /> true:允许应用使用明文流量请求。<br /> false:拒绝应用使用明文流量的请求。 | 布尔值 | 可缺省,缺省值为"false" |
| securityConfig | 表示应用的网络安全配置信息。参考表10。 | 对象 | 可缺省,缺省为空 |
表10 securityConfig对象的内部结构说明
| 属性名称 | 子属性名称 | 含义 | 数据类型 | 是否可缺省 |
| -------------- | ------------------ | ------------------------------------------------------------ | -------- | ---------------- |
| domainSettings | - | 表示自定义的网域范围的安全配置,支持多层嵌套,即一个domainSettings对象中允许嵌套更小网域范围的domainSettings对象。 | 布尔类型 | 可缺省,缺省为空 |
| | cleartextPermitted | 表示自定义的网域范围内是否允许明文流量传输。当cleartextTraffic和security同时存在时,自定义网域是否允许明文流量传输以cleartextPermitted的取值为准。<br />true:允许明文流量传输。<br />false:拒绝明文流量传输 | 布尔类型 | 否 |
| | domains | 表示域名配置信息,包含两个参数:subdomains和name。<br /> subdomains(布尔类型):表示是否包含子域名。如果为"true",此网域规则将与相应网域及所有子网域(包括子网域的子网域)匹配。否则,该规则仅适用于精确匹配项。<br /> name(字符串):表示域名名称 | 对象数组 | 否 |
deviceConfig示例:
```json
"deviceConfig": {
"default": {
"process": "com.example.test.example",
"supportBackup": false,
"network": {
"cleartextTraffic": true,
"securityConfig": {
"domainSettings": {
"cleartextPermitted": true,
"domains": [
{
"subdomains": true,
"name": "example.ohos.com"
}
]
}
}
}
}
}
```
### module对象的内部结构
module对象包含HAP包的配置信息,内部结构说明参见表11。
表11 module对象的内部结构说明
| 属性名称 | 含义 | 数据类型 | 是否可缺省 |
| --------------- | ------------------------------------------------------------ | ---------- | ------------------------------------------------------------ |
| mainAbility | 服务中心图标露出的ability,常驻进程拉起时会启动mainAbility。 | 字符串 | 如果存在page类型的ability,则该字段不可缺省。 |
| package | 表示HAP的包结构名称,在应用内保证唯一性。采用反向域名格式(建议与HAP的工程目录保持一致)。字符串长度不超过127字节。该标签仅适用于手机、平板、智慧屏、车机、智能穿戴。 | 字符串 | 否 |
| name | 表示HAP的类名。采用反向域名 方式表示,前缀要与同级的package标签指定的包名一致,也可采用"."开头的命名方式。字符串长度不超过255字节。<br /> 该标签仅适用于手机、平板、智慧屏、车机、智能穿戴。 | 字符串 | 否 |
| description | 表示HAP的描述信息。字符串长度不超过255字节。如果字符串超出长度或者需要支持多语言,可以采用资源索引的方式添加描述内容。该标签仅适用于手机、平板、智慧屏、车机、智能穿戴。 | 字符串 | 可缺省,缺省值为空 |
| supportedModes | 表示应用支持的运行模式,当前只定义了驾驶模式(drive)。该标签只适用于车机。 | 字符串数组 | 可缺省,缺省值为空 |
| deviceType | 表示允许Ability运行的设备类型。系统预定义的设备类型包括:phone(手机)、tablet(平板)、tv(智慧屏)、car(车机)、wearable(智能穿戴)、liteWearable(轻量级智能穿戴)等。 | 字符串数组 | 否 |
| distro | 表示HAP发布的具体描述。该标签仅适用于手机、平板、智慧屏、车机、智能穿戴。参考表12。 | 对象 | 否 |
| metaData | 表示HAP的元信息。参考表13。 | 对象 | 可缺省,缺省值为空 |
| abilities | 表示当前模块内的所有Ability。采用对象数据格式。其中的每个元素表示一个快捷方式对象。参考表17。 | 对象数组 | 可缺省,缺省值为空 |
| js | 表示基于ArkUI框架开发的JS模块集合,其中的每个元素代表一个JS模块的信息。参考表22。 | 对象数组 | 可缺省,缺省值为空 |
| shortcuts | 表示应用的快捷方式信息。采用对象数组格式,其中的每个元素表示一个快捷方式对象。参考表25。 | 对象数组 | 可缺省,缺省值为空 |
| reqPermissions | 表示应用运行时向系统申请的权限。参考表21。 | 对象数组 | 可缺省,缺省值为空 |
| colorMode | 表示应用自身的颜色模式。<br /> dark:表示按照深色模式选取资源。<br /> light:表示按照浅色模式选取资源。<br /> auto:表示跟随系统的颜色模式值选取资源。<br /> 该标签仅适用于手机、平板、智慧屏、车机、智能穿戴。 | 字符串 | 可缺省,缺省值为"auto" |
| distroFilter | 表示应用的分发规则。<br /> 该标签用于定义HAP包对应的细分设备规格的分发策略,以便在应用市场进行云端分发应用包时做精准匹配。该标签可配置的分发策略维度包括API Verion、屏幕形状、屏幕分辨率。在进行分发时,通过deviceType与这三个属性的匹配关系,唯一确定一个用于分发到设备的HAP。参考表29。 | 对象数组 | 可缺省,缺省值为空。但当应用中包含多个entry模块时,必须配置该标签。 |
| reqCapabilities | 表示运行应用程序所需的设备能力 | 字符串数组 | 可缺省,缺省为空 |
| commonEvents | 静态广播,参考表33。 | 对象数组 | 可缺省,缺省为空 |
| allowClassMap | HAP的元信息。标记值为true或false。如果标记值为true,则hap使用OpenHarmony框架提供的Java对象代理机制。默认值为false。 | 布尔值 | 不可缺省,缺省值为false |
| entryTheme | 此标签表示OpenHarmony内部主题的关键字。将标记值设置为名称的资源索引 | 字符串 | 可缺省,缺省值为 |
module示例:
```json
"module": {
"mainAbility": "MainAbility",
"package": "com.example.myapplication.rntry",
"name": ".MyOHOSAbilityPackage",
"description": "$string:description_application",
"supportModes": [
"drive"
],
"deviceType": [
"car"
],
"distro": {
"moduleName": "ohos_entry",
"moduleType": "entry"
},
"abilities": [
...
],
"shortcuts": [
...
],
"js": [
...
],
"reqPermissions": [
...
],
"colorMode": "light"
}
```
表12 distro对象的内部结构说明
| 属性名称 | 含义 | 数据类型 | 是否可缺省 |
| ---------------- | ------------------------------------------------------------ | -------- | ---------- |
| moduleName | 表示当前HAP的名称。 | 字符串 | 不可缺省 |
| moduleType | 表示当前HAP的类型,包括两种类型:entry和feature。另外,如果表示HAR类型,请设置为har。 | 字符串 | 不可缺省 |
| installationFree | 表示当前HAP是否支持免安装特性。<br /> true:表示支持免安装特性,且符合免安装约束。<br /> false:表示不支持免安装特性。<br /> 另外还需注意:<br /> 当entry.hap该字段配置为true时,与该entry.hap相关的所有feature.hap该字段也需要配置为true。<br /> 当entry.hap该字段配置为false时,与该entry.hap相关的各feature.hap该字段可按业务 需求配置true或false。 | 布尔值 | 否 |
distro示例:
```json
"distro": {
"moduleName": "ohos_entry",
"moduleType": "entry",
"installationFree": true
}
```
表13 metaData对象的内部结构说明
| 属性名称 | 含义 | 数据类型 | 是否可缺省 |
| ---------- | ------------------------------------------------------------ | -------- | -------------------- |
| parameters | 表示调用Ability时所有调用参数的元信息。每个调用参数参数的元信息由一下三个标签组成:description、name、type。参考表14。 | 对象 | 可缺省,缺省值为空 |
| results | 表示Ability返回值的元信息。每个返回值的元信息由以下三个标签组成:description、name、type。参考表15。 | 对象 | 可缺省,缺省值为空。 |
表14 parameters对象的内部结构说明
| 属性名称 | 含义 | 数据类型 | 是否可缺省 |
| ----------- | ------------------------------------------------------------ | -------- | ------------------ |
| description | 表示对调用参数的描述,可以是表示描述内容的字符串,也可以是对描述内容的资源索引以支持多语言。 | 字符串 | 可缺省,缺省值为空 |
| name | 表示调用参数的名称。 | 字符串 | 可缺省,缺省值为空 |
| type | 表示调用参数的类型,如Integer。 | 字符串 | 不可缺省 |
表15 results对象的内部结构说明
| 属性名称 | 含义 | 数据类型 | 是否可缺省 |
| ----------- | ------------------------------------------------------------ | -------- | -------------------- |
| description | 表示对返回值的描述,可以是表示描述内容的字符串,也可以是对描述内容的资源索引以支持多语言。 | 字符串 | 可缺省,缺省值为空。 |
| name | 表示返回值的名字。 | 字符串 | 可缺省,缺省值为空。 |
| type | 表示返回值的类型,如Integer。 | 字符串 | 否 |
表16 customizeData对象的内部结构说明
| 属性名称 | 含义 | 数据类型 | 是否可缺省 |
| -------- | ---------------------------------------------------------- | -------- | -------------------- |
| name | 表示数据项的键名称,字符串类型(最大长度255字节)。 | 字符串 | 可缺省,缺省值为空。 |
| value | 表示数据项的键名称,字符串类型(最大长度255字节)。 | 字符串 | 可缺省,缺省值为空。 |
| extra | 表示用户自定义数据格式,标签值为标识该数据的资源的索引值。 | 字符串 | 可缺省,缺省值为空。 |
metaData示例:
```json
"metaData": {
"parameters" : [{
"name" : "string",
"type" : "Float",
"description" : "$string:parameters_description"
}],
"results" : [{
"name" : "string",
"type" : "Float",
"description" : "$string:results_description"
}],
"customizeData" : [{
"name" : "string",
"value" : "string",
"extra" : "$string:customizeData_description"
}]
}
```
**包结构声明需要注意以下约束:** 表17 abilities对象的内部结构说明
| 属性名称 | 含义 | 数据类型 | 是否可缺省 |
| ---------------- | ------------------------------------------------------------ | ---------- | -------------------------------------------------------- |
| process | 运行应用程序或Ability的进程名称。如果在deviceConfig标记中配置了进程,则应用程序的所有能力都在此进程中运行。您还可以为特定能力设置流程属性,以便该能力可以在此流程中运行。如果此属性设置为与其他应用程序相同的进程名称,则所有这些应用程序可以在同一进程中运行,前提是他们具有相同的联合用户ID和相同的签名。运行OHOS的设备不支持此属性。 | 字符串 | 可缺省,缺省值为空。 |
| name | 表示Ability名称。取值可采用反向域名方式表示,由包名和类名组成,如“com.example.myapplication.MainAbility”;也可采用“.”开头的类名方式表示,如“.MainAbility”。<br /> Ability的名称,需在一个应用的范围内保证唯一。该标签仅适用于手机、平板、智慧屏、车机、智能穿戴。<br /> 说明:在使用DevEco Studio新建项目时,默认生成首个Ability的配置,包括生成“MainAbility.java”文件,及“config.json”中“MainAbility”的配置。如使用其他IDE工具,可自定义名称。 | 字符串 | 否 |
| description | 表示对Ability的描述。取值可以是描述性内容,也可以是对描述性内容的资源索引,以支持多语言。 | 字符串 | 可缺省,缺省值为空。 |
| icon | 表示Ability图标资源文件的索引。取值示例:$media:ability_icon。如果在该Ability的skills属性中,actions的取值包含 “action.system.home”,entities取值中包含“entity.system.home”,则该Ability的icon将同时作为应用的icon。如果存在多个符合条件的Ability,则取位置靠前的Ability的icon作为应用的icon。<br /> 说明:应用的“icon”和“label”是用户可感知配置项,需要区别于当前所有已有的应用“icon”或“label”(至少有一个不同)。 | 字符串 | 可缺省,缺省值为空。 |
| label | 表示Ability对用户显示的名称。取值可以是Ability名称,也可以是对该名称的资源索引,以支持多语言。如果在该Ability的skills属性中,actions的取值包含 “action.system.home”,entities取值中包含“entity.system.home”,则该Ability的label将同时作为应用的label。如果存在多个符合条件的Ability,则取位置靠前的Ability的label作为应用的label。<br /> 说明: 应用的“icon”和“label”是用户可感知配置项,需要区别于当前所有已有的应用“icon”或“label”(至少有一个不同)。 | 字符串 | 可缺省,缺省值为空。 |
| uri | 表示Ability的统一资源标识符。 | 字符串 | 可缺省,对于data类型的Ability不可缺省。 |
| launchType | 表示Ability的启动模式,支持“standard”、“singleMission”和“singleton”三种模式:<br />standard:表示该Ability可以有多实例。<br />“standard”模式适用于大多数应用场景。<br />singleMission:表示此Ability在每个任务栈中只能有一个实例。<br />singleton:表示该Ability在所有任务栈中仅可以有一个实例。例如,具有全局唯一性的呼叫来电界面即采用“singleton”模式。该标签仅适用于手机、平板、智慧屏、车机、智能穿戴。 | 字符串 | 可缺省,缺省值为“standard”。 |
| visible | 表示Ability是否可以被其他应用调用。<br />true:可以被其他应用调用。<br />false:不能被其他应用调用。 | 布尔类型 | 可缺省,缺省值为“false”。 |
| permissions | 表示其他应用的Ability调用此Ability时需要申请的权限。通常采用反向域名格式,取值可以是系统预定义的权限,也可以是开发者自定义的权限。 | 字符串数组 | 可缺省,缺省值为空。 |
| skills | 表示Ability能够接收的Intent的特征。 | 对象数组 | 可缺省,缺省值为空。 |
| deviceCapability | 表示Ability运行时要求设备具有的能力,采用字符串数组的格式表示。 | 字符串数组 | 可缺省,缺省值为空。 |
| metaData | 元数据,参考表13。 | 对象 | 可缺省,缺省值为空。 |
| type | 表示Ability的类型。取值范围如下:<br />page:表示基于Page模板开发的FA,用于提供与用户交互的能力。<br />service:表示基于Service模板开发的PA,用于提供后台运行任务的能力。<br />data:表示基于Data模板开发的PA,用于对外部提供统一的数据访问抽象。<br />CA:表示支持其他应用以窗口方式调起该Ability。 | 字符串 | 否 |
| orientation | 表示该Ability的显示模式。该标签仅适用于page类型的Ability。取值范围如下:<br />unspecified:由系统自动判断显示方向。<br />landscape:横屏模式。<br />portrait:竖屏模式。<br />followRecent:跟随栈中最近的应用。 | 字符串 | 可缺省,缺省值为“unspecified”。 |
| backgroundModes | 表示后台服务的类型,可以为一个服务配置多个后台服务类型。该标签仅适用于service类型的Ability。取值范围如下:<br />dataTransfer:通过网络/对端设备进行数据下载、备份、分享、传输等业务。<br />audioPlayback:音频输出业务。<br />audioRecording:音频输入业务。<br />pictureInPicture:画中画、小窗口播放视频业务。<br />voip:音视频电话、VOIP业务。<br />location:定位、导航业务。<br />bluetoothInteraction:蓝牙扫描、连接、传输业务。<br />wifiInteraction:WLAN扫描、连接、传输业务。<br />screenFetch:录屏、截屏业务。<br />multiDeviceConnection:多设备互联业务 | 字符串数组 | 可缺省,缺省值为空。 |
| grantPermission | 指定是否可以向Ability内任何数据授予权限。 | 布尔值 | 可缺省,缺省值为空。 |
| readPermission | 表示读取Ability的数据所需的权限。该标签仅适用于data类型的Ability。取值为长度不超过255字节的字符串。该标签仅适用于手机、平板、智慧屏、车机、智能穿戴。 | 字符串 | 可缺省,缺省为空。 |
| writePermission | 表示向Ability写数据所需的权限。该标签仅适用于data类型的Ability。取值为长度不超过255字节的字符串。该标签仅适用于手机、平板、智慧屏、车机、智能穿戴。 | 字符串 | 可缺省,缺省为空。 |
| configChanges | 表示Ability关注的系统配置集合。当已关注的配置发生变更后,Ability会收到onConfigurationUpdated回调。取值范围:<br />mcc:表示IMSI移动设备国家/地区代码(MCC)发生变更。典型场景:检测到SIM并更新MCC。<br />mnc:IMSI移动设备网络代码(MNC)发生变更。典型场景:检测到SIM并更新MNC。<br />locale:表示语言区域发生变更。典型场景:用户已为设备文本的文本显示选择新的语言类型。<br />layout:表示屏幕布局发生变更。典型场景:当前有不同的显示形态都处于活跃状态。<br />fontSize:表示字号发生变更。典型场景:用户已设置新的全局字号。<br />orientation:表示屏幕方向发生变更。典型场景:用户旋转设备。<br />density:表示显示密度发生变更。典型场景:用户可能指定不同的显示比例,或当前有不同的显示形态同时处于活跃状态。<br />size:显示窗口大小发生变更。<br />smallestSize:显示窗口较短边的边长发生变更。<br />colorMode:颜色模式发生变更。 | 字符串数组 | 可缺省,缺省为空。 |
| mission | 表示Ability指定的任务栈。该标签仅适用于page类型的Ability。默认情况下应用中所有Ability同属一个任务栈。该标签仅适用于手机、平板、智慧屏、车机、智能穿戴。 | 字符串 | 可缺省,缺省为应用的包名。 |
| targetAbility | 表示当前Ability重用的目标Ability。该标签仅适用于page类型的Ability。如果配置了targetAbility属性,则当前Ability(即别名Ability)的属性中仅name、icon、label、visible、permissions、skills生效,其它属性均沿用targetAbility中的属性值。目标Ability必须与别名Ability在同一应用中,且在配置文件中目标Ability必须在别名之前进行声明。该标签仅适用于手机、平板、智慧屏、车机、智能穿戴。 | 字符串 | 可缺省,缺省值为空。表示当前Ability不是一个别名Ability。 |
| multiUserShared | 表示Ability是否支持多用户状态进行共享,该标签仅适用于data类型的Ability。配置为“true”时,表示在多用户下只有一份存储数据。需要注意的是,该属性会使visible属性失效。该标签仅适用于手机、平板、智慧屏、车机、智能穿戴。 | 布尔类型 | 可缺省,缺省值为“false”。 |
| supportPipMode | 表示Ability是否支持用户进入PIP模式(用于在页面最上层悬浮小窗口,俗称“画中画”,常见于视频播放等场景)。该标签仅适用于page类型的Ability。该标签仅适用于手机、平板、智慧屏、车机、智能穿戴。 | 布尔类型 | 可缺省,缺省值为“false”。 |
| formsEnabled | 表示Ability是否支持卡片(forms)功能。该标签仅适用于page类型的Ability。<br />true:支持卡片能力。<br />false:不支持卡片能力。 | 布尔类型 | 可缺省,缺省值为“false”。 |
| forms | 表示服务卡片的属性。该标签仅当formsEnabled为“true”时,才能生效。参考表27。 | 对象数组 | 可缺省,缺省值为空。 |
| srcLanguage | Ability开发语言的类型。 | 字符串 | 取值为java、js或ets |
| srcPath | 该标签表示Ability对应的JS组件代码路径 | 字符串 | 可缺省,缺省值为空。 |
| uriPermission | 表示该Ability有权访问的应用程序数据。此属性由模式和路径子属性组成。此属性仅对类型提供的能力有效。运行OHOS的设备不支持此属性。参考表18。 | 对象 | 可缺省,缺省值为空。 |
- "package"字段命名要保证在相同bundleName的应用内唯一。 表18 uriPermission对象的内部结构说明
- "abilities"字段下只能声明一个ability。 | 属性名称 | 含义 | 数据类型 | 是否可缺省 |
| -------- | ----------------------- | -------- | ----------------------- |
| path | uriPermission标识的路径 | 字符串 | 不可缺省 |
| mode | uriPeimission的匹配模式 | 字符串 | 可缺省,缺省值为false。 |
- "abilities"字段中ability的"name"字段命名要保证在相同bundleName的应用内唯一。 abilities示例:
```json
"abilities": [
{
"name": ".MainAbility",
"description": "test main ability",
"icon": "$media:ic_launcher",
"label": "example",
"launchType": "standard",
"orientation": "unspecified",
"permissions": [
],
"visible": true,
"skills": [
{
"actions": [
"action.system.home"
],
"entities": [
"entity.system.home"
]
}
],
"configChanges": [
"locale",
"layout",
"fontSize",
"orientation"
],
"type": "page"
},
{
"name": ".PlayService",
"description": "example play ability",
"icon": "$media:ic_launcher",
"label": "example",
"launchType": "standard",
"orientation": "unspecified",
"visible": false,
"skills": [
{
"actions": [
"action.play.music",
"action.stop.music"
],
"entities": [
"entity.audio"
]
}
],
"type": "service",
"backgroundModes": [
"audioPlayback"
]
},
{
"name": ".UserADataAbility",
"type": "data",
"uri": "dataability://com.example.world.test.UserADataAbility",
"visible": true
}
]
```
表19 skills对象的内部结构说明
| 属性名称 | 含义 | 数据类型 | 是否可缺省 |
| -------- | ------------------------------------------------------------ | ---------- | -------------------- |
| actions | 表示能够接收的Intent的action值,可以包含一个或多个action。取值通常为系统预定义的action值。 | 字符串数组 | 可缺省,缺省值为空。 |
| entities | 表示能够接收的Intent的Ability的类别(如视频、桌面应用等),可以包含一个或多个entity。 | 字符串数组 | 可缺省,缺省值为空。 |
| uris | 表示能够接收的Intent的uri,可以包含一个或者多个uri。参考表20。 | 对象数组 | 可缺省,缺省值为空。 |
表20 uris对象的内部结构说明
| 属性名称 | 含义 | 数据类型 | 是否可缺省 |
| -------- | ------------------- | -------- | -------------------- |
| scheme | 表示uri的scheme值。 | 字符串 | 不可缺省。 |
| host | 表示uri的host值。 | 字符串 | 可缺省,缺省值为空。 |
| port | 表示uri的port值。 | 字符串 | 可缺省,缺省值为空。 |
| path | 表示uri的path值。 | 字符串 | 可缺省,缺省值为空。 |
| type | 表示uri的type值。 | 字符串 | 可缺省,缺省值为空。 |
skills示例:
```json
"skills": [
{
"actions": [
"action.system.home"
],
"entities": [
"entity.system.home"
],
"uris": [
{
"scheme": "http",
"host": "www.example.com",
"port": "8080",
"path": "query/student/name",
"type": "text/*"
}
]
}
]
```
表21 reqPermissions权限申请字段说明
| 属性名称 | 含义 | **类型** | **取值范围** | **默认值** | **规则约束** |
| --------- | ------------------------------------------------------------ | ------------------------------- | ----------------------------------------------------------- | ---------------------- | ------------------------------------------------------------ |
| name | 必须,填写需要使用的权限名称。 | 字符串 | 自定义 | 无 | 未填写时,解析失败。 |
| reason | 可选,当申请的权限为user_grant权限时此字段必填。描述申请权限的原因。 | 字符串 | 显示文字长度不能超过256个字节。 | 空 | user_grant权限必填,否则不允许在应用市场上架。需做多语种适配。 |
| usedScene | 可选,当申请的权限为user_grant权限时此字段必填。描述权限使用的场景和时机。场景类型有:ability、when(调用时机)。可配置多个ability。 | ability:字符串数组when:字符串 | ability:ability的名称when:inuse(使用时)、always(始终) | ability:空when:inuse | user_grant权限必填ability,可选填when。 |
表22 js对象的内部结构说明
| 属性名称 | 含义 | 数据类型 | 是否可缺省 |
| -------- | ------------------------------------------------------------ | -------- | ------------------------ |
| name | 表示JS Component的名字。该标签不可缺省,默认值为default。 | 字符串 | 否 |
| pages | 表示JS Component的页面用于列举JS Component中每个页面的路由信息[页面路径+页面名称]。该标签不可缺省,取值为数组,数组第一个元素代表JS FA首页。 | 数组 | 否 |
| window | 用于定义与显示窗口相关的配置。该标签仅适用于手机、平板、智慧屏、车机、智能穿戴。参考表23。 | 对象 | 可缺省 |
| type | 表示JS应用的类型。取值范围如下:<br />normal:标识该JS Component为应用实例。<br />form:标识该JS Component为卡片实例。 | 字符串 | 可缺省,缺省值为“normal” |
| mode | 定义JS组件的开发模式。参考表24。 | 对象 | 可缺省,缺省值为空 |
表23 window对象的内部结构说明
| 属性名称 | 含义 | 数据类型 | 是否可缺省 |
| --------------- | ------------------------------------------------------------ | -------- | ----------------------- |
| designWidth | 表示页面设计基准宽度。以此为基准,根据实际设备宽度来缩放元素大小。 | 数值 | 可缺省,缺省值为720px |
| autoDesignWidth | 表示页面设计基准宽度是否自动计算。当配置为true时,designWidth将会被忽略,设计基准宽度由设备宽度与屏幕密度计算得出。 | 布尔类型 | 可缺省,缺省值为“false” |
表24 mode对象的内部结构说明
| 属性名称 | 含义 | 数据类型 | 是否可缺省 |
| -------- | -------------------- | ----------------------------------- | -------------------------- |
| type | 定义JS组件的功能类型 | 字符串,取值为"pageAbility"、"form" | 可缺省,缺省值为pageAbilit |
| syntax | 定义JS组件的语法类型 | 字符串,取值为"hml","ets" | 是,默认值为"hml" |
js示例:
```json
"js": [
{
"name": "default",
"pages": [
"pages/index/index",
"pages/detail/detail"
],
"window": {
"designWidth": 720,
"autoDesignWidth": false
},
"type": "form"
}
]
```
表25 shortcuts对象的内部结构说明
| 属性名称 | 含义 | 数据类型 | 是否可缺省 |
| ---------- | ------------------------------------------------------------ | -------- | ------------------ |
| shortcutId | 表示快捷方式的ID。字符串的最大长度为63字节。 | 字符串 | 否 |
| label | 表示快捷方式的标签信息,即快捷方式对外显示的文字描述信息。取值可以是描述性内容,也可以是标识label的资源索引。字符串最大长度为63字节。 | 字符串 | 可缺省,缺省为空。 |
| intents | 表示快捷方式内定义的目标intent信息集合,每个intent可配置两个子标签,targetClass, targetBundle。参考表26。 | 对象数组 | 可缺省,缺省为空。 |
表26 intents对象的内部结构说明
| 属性名称 | 含义 | 数据类型 | 是否可缺省 |
| ------------ | --------------------------------------- | -------- | -------------------- |
| targetClass | 表示快捷方式目标类名。 | 字符串 | 可缺省,缺省值为空。 |
| targetBundle | 表示快捷方式目标Ability所在应用的包名。 | 字符串 | 可缺省,缺省值为空。 |
shortcuts示例:
```json
"shortcuts": [
{
"shortcutId": "id",
"label": "$string:shortcut",
"intents": [
{
"targetBundle": "com.example.world.test",
"targetClass": "com.example.world.test.entry.MainAbility"
}
]
}
]
```
表27 forms对象的内部结构说明
| 属性名称 | 含义 | 数据类型 | 是否可缺省 |
| ------------------- | ------------------------------------------------------------ | ---------- | ------------------------ |
| name | 表示卡片的类名。字符串最大长度为127字节。 | 字符串 | 否 |
| description | 表示卡片的描述。取值可以是描述性内容,也可以是对描述性内容的资源索引,以支持多语言。字符串最大长度为255字节。 | 字符串 | 可缺省,缺省为空。 |
| isDefault | 表示该卡片是否为默认卡片,每个Ability有且只有一个默认卡片。<br />true:默认卡片。<br />false:非默认卡片。 | 布尔值 | 否 |
| type | 表示卡片的类型。取值范围如下:<br />Java:Java卡片。<br />JS:JS卡片。 | 字符串 | 否 |
| colorMode | 表示卡片的主题样式,取值范围如下:<br />auto:自适应。<br />dark:深色主题。<br />light:浅色主题。 | 字符串 | 可缺省,缺省值为“auto”。 |
| supportDimensions | 表示卡片支持的外观规格,取值范围:<br />1 * 2:表示1行2列的二宫格。<br />2 * 2:表示2行2列的四宫格。<br />2 * 4:表示2行4列的八宫格。<br />4 * 4:表示4行4列的十六宫格。 | 字符串数组 | 否 |
| defaultDimension | 表示卡片的默认外观规格,取值必须在该卡片supportDimensions配置的列表中。 | 字符串 | 否 |
| landscapeLayouts | 表示卡片外观规格对应的横向布局文件,与supportDimensions中的规格一一对应。仅当卡片类型为Java卡片时,需要配置该标签。 | 字符串数组 | 否 |
| portraitLayouts | 表示卡片外观规格对应的竖向布局文件,与supportDimensions中的规格一一对应。仅当卡片类型为Java卡片时,需要配置该标签。 | 字符串数组 | 否 |
| updateEnabled | 表示卡片是否支持周期性刷新,取值范围:<br />true:表示支持周期性刷新,可以在定时刷新(updateDuration)和定点刷新(scheduledUpdateTime)两种方式任选其一,优先选择定时刷新。<br />false:表示不支持周期性刷新。 | 布尔类型 | 否 |
| scheduledUpdateTime | 表示卡片的定点刷新的时刻,采用24小时制,精确到分钟。 | 字符串 | 可缺省,缺省值为“0:0”。 |
| updateDuration | 表示卡片定时刷新的更新周期,单位为30分钟,取值为自然数。<br />当取值为0时,表示该参数不生效。<br />当取值为正整数N时,表示刷新周期为30*N分钟。 | 数值 | 可缺省,缺省值为“0”。 |
| formConfigAbility | 表示卡片的配置跳转链接,采用URI格式。 | 字符串 | 可缺省,缺省值为空。 |
| formVisibleNotify | 标识是否允许卡片使用卡片可见性通知 | 字符串 | 可缺省,缺省值为空。 |
| jsComponentName | 表示JS卡片的Component名称。字符串最大长度为127字节。仅当卡片类型为JS卡片时,需要配置该标签。 | 字符串 | 否 |
| metaData | 表示卡片的自定义信息,包含customizeData数组标签。参考表13。 | 对象 | 可缺省,缺省值为空。 |
| customizeData | 表示自定义的卡片信息。参考表28。 | 对象数组 | 可缺省,缺省值为空。 |
表28 customizeData对象内部结构说明
| 属性名称 | 含义 | 数据类型 | 是否可缺省 |
| -------- | --------------------------------------------- | -------- | -------------------- |
| name | 表示数据项的键名称。字符串最大长度为255字节。 | 字符串 | 可缺省,缺省值为空。 |
| value | 表示数据项的值。字符串最大长度为255字节。 | 字符串 | 可缺省,缺省值为空。 |
forms示例:
```json
"forms": [
{
"name": "Form_Js",
"description": "It's Js Form",
"type": "JS",
"jsComponentName": "card",
"colorMode": "auto",
"isDefault": true,
"updateEnabled": true,
"scheduledUpdateTime": "11:00",
"updateDuration": 1,
"defaultDimension": "2*2",
"supportDimensions": [
"2*2",
"2*4",
"4*4"
]
},
{
"name": "Form_Java",
"description": "It's Java Form",
"type": "Java",
"colorMode": "auto",
"isDefault": false,
"updateEnabled": true,
"scheduledUpdateTime": "21:05",
"updateDuration": 1,
"defaultDimension": "1*2",
"supportDimensions": [
"1*2"
],
"landscapeLayouts": [
"$layout:ability_form"
],
"portraitLayouts": [
"$layout:ability_form"
],
"formConfigAbility": "ability://com.example.myapplication.fa/.MainAbility",
"metaData": {
"customizeData": [
{
"name": "originWidgetName",
"value": "com.example.weather.testWidget"
}
]
}
}
]
```
表29 distroFilter对象的内部结构说明
| 属性名称 | 含义 | 数据类型 | 是否可缺省 |
| ------------ | ------------------------------------------------------------ | -------- | ---------- |
| apiVersion | 表示支持的apiVersion范围。参考表30。 | 对象数组 | 可选 |
| screenShape | 表示屏幕形状的支持策略。参考表31。 | 对象数组 | 可选 |
| screenWindow | 表示应用运行时窗口的分辨率支持策略。该字段仅支持对轻量级智能穿戴设备进行配置。参考表32。 | 对象数组 | 可选 |
表30 apiVersion对象的内部结构说明
| 属性名称 | 含义 | 数据类型 | 是否可缺省 |
| -------- | ------------------------------------------------------------ | -------- | -------------------- |
| policy | 表示该子属性取值的黑白名单规则。配置为“exclude”或“include”。“include”表示该字段取值为白名单,满足value枚举值匹配规则的表示匹配该属性。 | 字符串 | 可缺省,缺省值为空。 |
| value | 支持的取值为API Version存在的整数值,例如4、5、6。场景示例:某应用,针对相同设备型号,同时在网的为使用API 5和API 6开发的两个软件版本,则允许上架2个entry类型的安装包,分别支持到对应设备侧软件版本的分发。 | 数组 | 可缺省,缺省值为空。 |
表31 screenShape对象的内部结构说明
| 属性名称 | 含义 | 数据类型 | 是否可缺省 |
| -------- | ------------------------------------------------------------ | -------- | -------------------- |
| policy | 表示该子属性取值的黑白名单规则。配置为“exclude”或“include”。“include”表示该字段取值为白名单,满足value枚举值匹配规则的表示匹配该属性。 | 字符串 | 可缺省,缺省值为空。 |
| value | 支持的取值为circle(圆形)、rect(矩形)。场景示例:针对智能穿戴设备,可为圆形表盘和矩形表盘分别提供不同的HAP。 | 数组 | 可缺省,缺省值为空。 |
表32 screenWindow对象的内部结构说明
| 属性名称 | 含义 | 数据类型 | 是否可缺省 |
| -------- | ------------------------------------------------------------ | -------- | -------------------- |
| policy | 表示该子属性取值的黑白名单规则。配置为“exclude”或“include”。“include”表示该字段取值为白名单,满足value枚举值匹配规则的表示匹配该属性。 | 字符串 | 可缺省,缺省值为空。 |
| value | 单个字符串的取值格式为:“宽 * 高”,取值为整数像素值,例如“454 * 454”。 | 数组 | 可缺省,缺省值为空。 |
distroFilter示例:
```json
"distroFilter": [
{
"apiVersion": {
"policy": "include",
"value": [4,5]
},
"screenShape": {
"policy": "include",
"value": ["circle","rect"]
},
"screenWindow": {
"policy": "include",
"value": ["454*454","466*466"]
}
}
]
```
表33 commonEvents对象的内部结构说明
| 属性名称 | 含义 | 数据类型 | 是否可缺省 |
| ---------- | ------------------------------------------------------------ | ---------- | ------------------ |
| name | 表示静态广播名称 | 字符串 | 不可缺省 |
| permission | 此标签表示实现静态公共事件所需要申请的权限 | 字符串数组 | 可缺省,缺省值为空 |
| data | 此标记配置当前静态公共事件要携带的附加数据数组 | 字符串数组 | 可缺省,缺省值为空 |
| type | 该标签用于配置当前静态公共事件的分类数组 | 字符串数组 | 可缺省,缺省值为空 |
| events | 此标签标记可接收的意图的一组事件值。一般由系统预定义,也可以自定义。 | 字符串数组 | 不可缺省 |
commonEvents示例:
```json
"commonEvents": [
{
"name":"MainAbility",
"permission": "string",
"data":[
"string",
"string"
],
"events": [
"string",
"string"
]
}
]
```
...@@ -45,6 +45,7 @@ ...@@ -45,6 +45,7 @@
- [短信服务](js-apis-sms.md) - [短信服务](js-apis-sms.md)
- [SIM卡管理](js-apis-sim.md) - [SIM卡管理](js-apis-sim.md)
- [网络搜索](js-apis-radio.md) - [网络搜索](js-apis-radio.md)
- [observer](js-apis-observer.md)
- 网络与连接 - 网络与连接
- [WLAN](js-apis-wifi.md) - [WLAN](js-apis-wifi.md)
- [Bluetooth](js-apis-bluetooth.md) - [Bluetooth](js-apis-bluetooth.md)
...@@ -73,6 +74,7 @@ ...@@ -73,6 +74,7 @@
- [动画](js-apis-basic-features-animator.md) - [动画](js-apis-basic-features-animator.md)
- [WebGL](js-apis-webgl.md) - [WebGL](js-apis-webgl.md)
- [WebGL2](js-apis-webgl2.md) - [WebGL2](js-apis-webgl2.md)
- [屏幕截图](js-apis-screenshot.md)
- DFX - DFX
- [应用打点](js-apis-hiappevent.md) - [应用打点](js-apis-hiappevent.md)
- [性能打点](js-apis-hitracemeter.md) - [性能打点](js-apis-hitracemeter.md)
......
...@@ -63,7 +63,7 @@ getOrCreateLocalDir(): Promise\<string> ...@@ -63,7 +63,7 @@ getOrCreateLocalDir(): Promise\<string>
```js ```js
import featureAbility from '@ohos.ability.featureAbility' import featureAbility from '@ohos.ability.featureAbility'
var context = featureAbility.getContext(); var context = featureAbility.getContext();
context.getOrCreateLocalDir().then((void) => { context.getOrCreateLocalDir().then(() => {
console.info("==========================>getOrCreateLocalDirCallback=======================>"); console.info("==========================>getOrCreateLocalDirCallback=======================>");
}); });
``` ```
...@@ -91,9 +91,9 @@ verifyPermission(permission: string, options: PermissionOptions, callback: Async ...@@ -91,9 +91,9 @@ verifyPermission(permission: string, options: PermissionOptions, callback: Async
import featureAbility from '@ohos.ability.featureAbility' import featureAbility from '@ohos.ability.featureAbility'
import bundle from '@ohos.bundle' import bundle from '@ohos.bundle'
var context = featureAbility.getContext(); var context = featureAbility.getContext();
var datainfo = await bundle.getBundleInfo('com.context.test',1); bundle.getBundleInfo('com.context.test', 1, (datainfo) =>{
context.verifyPermission("com.example.permission",datainfo.uid) context.verifyPermission("com.example.permission", datainfo.uid);
});
``` ```
...@@ -146,7 +146,7 @@ verifyPermission(permission: string, options?: PermissionOptions): Promise\<numb ...@@ -146,7 +146,7 @@ verifyPermission(permission: string, options?: PermissionOptions): Promise\<numb
import featureAbility from '@ohos.ability.featureAbility' import featureAbility from '@ohos.ability.featureAbility'
var context = featureAbility.getContext(); var context = featureAbility.getContext();
var Permission = context.PermissionOptions(1,1); var Permission = context.PermissionOptions(1,1);
context.getOrCreateLocalDir('com.context.permission',Permission).then((void) => { context.getOrCreateLocalDir('com.context.permission',Permission).then(() => {
console.info("==========================>verifyPermissionCallback=======================>"); console.info("==========================>verifyPermissionCallback=======================>");
}); });
``` ```
...@@ -223,7 +223,7 @@ getApplicationInfo(): Promise\<ApplicationInfo> ...@@ -223,7 +223,7 @@ getApplicationInfo(): Promise\<ApplicationInfo>
```js ```js
import featureAbility from '@ohos.ability.featureAbility' import featureAbility from '@ohos.ability.featureAbility'
var context = featureAbility.getContext(); var context = featureAbility.getContext();
context.getApplicationInfo().then((void) => { context.getApplicationInfo().then(() => {
console.info("==========================>getApplicationInfoCallback=======================>"); console.info("==========================>getApplicationInfoCallback=======================>");
}); });
``` ```
...@@ -269,7 +269,7 @@ getBundleName(): Promise\<string> ...@@ -269,7 +269,7 @@ getBundleName(): Promise\<string>
```js ```js
import featureAbility from '@ohos.ability.featureAbility' import featureAbility from '@ohos.ability.featureAbility'
var context = featureAbility.getContext(); var context = featureAbility.getContext();
context.getBundleName().then((void) => { context.getBundleName().then(() => {
console.info("==========================>getBundleNameCallback=======================>"); console.info("==========================>getBundleNameCallback=======================>");
}); });
``` ```
...@@ -315,7 +315,7 @@ getProcessInfo(): Promise\<ProcessInfo> ...@@ -315,7 +315,7 @@ getProcessInfo(): Promise\<ProcessInfo>
```js ```js
import featureAbility from '@ohos.ability.featureAbility' import featureAbility from '@ohos.ability.featureAbility'
var context = featureAbility.getContext(); var context = featureAbility.getContext();
context.getProcessInfo().then((void) => { context.getProcessInfo().then(() => {
console.info("==========================>getProcessInfoCallback=======================>"); console.info("==========================>getProcessInfoCallback=======================>");
}); });
``` ```
...@@ -365,7 +365,7 @@ getElementName(): Promise\<ElementName> ...@@ -365,7 +365,7 @@ getElementName(): Promise\<ElementName>
```js ```js
import featureAbility from '@ohos.ability.featureAbility' import featureAbility from '@ohos.ability.featureAbility'
var context = featureAbility.getContext(); var context = featureAbility.getContext();
context.getElementName().then((void) => { context.getElementName().then(() => {
console.info("==========================>getElementNameCallback=======================>"); console.info("==========================>getElementNameCallback=======================>");
}); });
``` ```
...@@ -407,7 +407,7 @@ getProcessName(): Promise\<string> ...@@ -407,7 +407,7 @@ getProcessName(): Promise\<string>
```js ```js
import featureAbility from '@ohos.ability.featureAbility' import featureAbility from '@ohos.ability.featureAbility'
var context = featureAbility.getContext(); var context = featureAbility.getContext();
context.getProcessName().then((void) => { context.getProcessName().then(() => {
console.info("==========================>getProcessNameCallback=======================>"); console.info("==========================>getProcessNameCallback=======================>");
}); });
``` ```
...@@ -453,7 +453,7 @@ getCallingBundle(): Promise\<string> ...@@ -453,7 +453,7 @@ getCallingBundle(): Promise\<string>
```js ```js
import featureAbility from '@ohos.ability.featureAbility' import featureAbility from '@ohos.ability.featureAbility'
var context = featureAbility.getContext(); var context = featureAbility.getContext();
context.getCallingBundle().then((void) => { context.getCallingBundle().then(() => {
console.info("==========================>getCallingBundleCallback=======================>"); console.info("==========================>getCallingBundleCallback=======================>");
}); });
``` ```
......
...@@ -27,7 +27,6 @@ getId(uri: string): number ...@@ -27,7 +27,6 @@ getId(uri: string): number
**示例:** **示例:**
```js ```js
import dataUriUtils from '@ohos.ability.datauriutils'
dataUriUtils.getIdSync("com.example.dataUriUtils/1221") dataUriUtils.getIdSync("com.example.dataUriUtils/1221")
``` ```
...@@ -55,10 +54,9 @@ attachId(uri: string, id: number): string ...@@ -55,10 +54,9 @@ attachId(uri: string, id: number): string
**示例:** **示例:**
```js ```js
import dataUriUtils from '@ohos.ability.datauriutils'
var idint = 1122; var idint = 1122;
dataUriUtils.attachId( dataUriUtils.attachId(
"com.example.dataUriUtils" "com.example.dataUriUtils",
idint, idint,
) )
``` ```
...@@ -85,7 +83,6 @@ deleteId(uri: string): string ...@@ -85,7 +83,6 @@ deleteId(uri: string): string
**示例:** **示例:**
```js ```js
import dataUriUtils from '@ohos.ability.datauriutils'
dataUriUtils.deleteId("com.example.dataUriUtils/1221") dataUriUtils.deleteId("com.example.dataUriUtils/1221")
``` ```
...@@ -112,11 +109,10 @@ updateId(uri: string, id: number): string ...@@ -112,11 +109,10 @@ updateId(uri: string, id: number): string
**示例:** **示例:**
```js ```js
import dataUriUtils from '@ohos.ability.datauriutils'
var idint = 1122; var idint = 1122;
dataUriUtils.updateId( dataUriUtils.updateId(
"com.example.dataUriUtils" "com.example.dataUriUtils",
idint, idint
) )
``` ```
# AbilityContext # AbilityContext
- [使用说明](#使用说明)
- [属性](#属性)
- [startAbility](#startAbility)
- [startAbility](#startAbility)
- [startAbility](#startAbility)
- [startAbilityForResult](#startAbilityForResult)
- [startAbilityForResult](#startAbilityForResult)
- [startAbilityForResult](#startAbilityForResult)
- [terminateSelf](#terminateSelf)
- [terminateSelf](#terminateSelf)
- [terminateSelfWithResult](#terminateSelfWithResult)
- [terminateSelfWithResult](#terminateSelfWithResult)
- [startAbilityByCall](#startAbilityByCall)
- [requestPermissionsFromUser](#requestPermissionsFromUser)
- [requestPermissionsFromUser](#requestPermissionsFromUser)
- [setMissionLabel](#setMissionLabel)
- [setMissionLabel](#setMissionLabel)
> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
> 本模块首批接口从API 8开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 > 本模块首批接口从API 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
Ability的上下文环境,继承自Context。 Ability的上下文环境,继承自Context。
## 使用说明
​在使用AbilityContext的功能前,需要通过Ability子类实例获取。
```
import Ability from '@ohos.application.Ability'
class MainAbility extends Ability {
onWindowStageCreate(windowStage) {
let context = this.context;
}
}
```
## 属性 ## 属性
| 名称 | 参数类型 | 可读 | 可写 | 说明 | | 名称 | 参数类型 | 可读 | 可写 | 说明 |
...@@ -42,7 +78,37 @@ startAbility(want: Want, callback: AsyncCallback&lt;void&gt;): void ...@@ -42,7 +78,37 @@ startAbility(want: Want, callback: AsyncCallback&lt;void&gt;): void
## startAbility ## startAbility
startAbility(want: Want): Promise&lt;void&gt;; startAbility(want: Want, options: StartOptions, callback: AsyncCallback&lt;void&gt;): void
启动Ability。
- 参数:
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| want | [Want](js-apis-featureAbility.md#Want类型说明) | 是 | 启动Ability的want信息。 |
| options | StartOptions | 是 | 启动Ability所携带的参数。 |
| callback | AsyncCallback&lt;void&gt; | 是 | callback形式返回启动结果。 |
- 示例:
```
var want = {
"deviceId": "",
"bundleName": "com.extreme.test",
"abilityName": "com.extreme.test.MainAbility"
};
var options = {
windowMode: 0,
};
this.context.startAbility(want, options, (error) => {
console.log("error.code = " + error.code)
})
```
## startAbility
startAbility(want: Want, options: StartOptions): Promise&lt;void&gt;;
启动Ability。通过Promise返回结果。 启动Ability。通过Promise返回结果。
...@@ -50,6 +116,7 @@ startAbility(want: Want): Promise&lt;void&gt;; ...@@ -50,6 +116,7 @@ startAbility(want: Want): Promise&lt;void&gt;;
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
| want | [Want](js-apis-featureAbility.md#Want类型说明) | 是 | 启动Ability的want信息。 | | want | [Want](js-apis-featureAbility.md#Want类型说明) | 是 | 启动Ability的want信息。 |
| options | StartOptions | 是 | 启动Ability所携带的参数。 |
- 返回值: - 返回值:
| 类型 | 说明 | | 类型 | 说明 |
...@@ -63,7 +130,10 @@ startAbility(want: Want): Promise&lt;void&gt;; ...@@ -63,7 +130,10 @@ startAbility(want: Want): Promise&lt;void&gt;;
"bundleName": "com.extreme.test", "bundleName": "com.extreme.test",
"abilityName": "com.extreme.test.MainAbility" "abilityName": "com.extreme.test.MainAbility"
}; };
this.context.startAbility(want) var options = {
windowMode: 0,
};
this.context.startAbility(want, options)
.then((data) => { .then((data) => {
console.log('Operation successful.') console.log('Operation successful.')
}).catch((error) => { }).catch((error) => {
...@@ -82,7 +152,7 @@ startAbilityForResult(want: Want, callback: AsyncCallback&lt;AbilityResult&gt;): ...@@ -82,7 +152,7 @@ startAbilityForResult(want: Want, callback: AsyncCallback&lt;AbilityResult&gt;):
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
| want |[Want](js-apis-featureAbility.md#Want类型说明) | 是 | 启动Ability的want信息。 | | want |[Want](js-apis-featureAbility.md#Want类型说明) | 是 | 启动Ability的want信息。 |
| callback | Callback&lt;[AbilityResult](js-apis-featureAbility.md#abilityresult)&gt; | 是 | 执行结果回调函数。 | | callback | AsyncCallback&lt;[AbilityResult](js-apis-featureAbility.md#abilityresult)&gt; | 是 | 执行结果回调函数。 |
- 示例: - 示例:
...@@ -96,17 +166,47 @@ startAbilityForResult(want: Want, callback: AsyncCallback&lt;AbilityResult&gt;): ...@@ -96,17 +166,47 @@ startAbilityForResult(want: Want, callback: AsyncCallback&lt;AbilityResult&gt;):
); );
``` ```
## startAbilityForResult
startAbilityForResult(want: Want, options: StartOptions, callback: AsyncCallback&lt;AbilityResult&gt;): void;
启动Ability并在结束的时候返回执行结果。
- 参数:
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| want |[Want](js-apis-featureAbility.md#Want类型说明) | 是 | 启动Ability的want信息。 |
| options | StartOptions | 是 | 启动Ability所携带的参数。 |
| callback | AsyncCallback&lt;[AbilityResult](js-apis-featureAbility.md#abilityresult)&gt; | 是 | 执行结果回调函数。 |
- 示例:
```
var options = {
windowMode: 0,
};
this.context.startAbilityForResult(
{bundleName: "com.extreme.myapplication", abilityName: "MainAbilityDemo2"}, options,
(error, result) => {
console.log("startAbilityForResult AsyncCallback is called, error.code = " + error.code)
console.log("startAbilityForResult AsyncCallback is called, result.resultCode = " + result.resultCode)
}
);
```
## startAbilityForResult ## startAbilityForResult
startAbilityForResult(want: Want): Promise&lt;AbilityResult&gt;; startAbilityForResult(want: Want, options: StartOptions): Promise&lt;AbilityResult&gt;;
启动Ability并在结束的时候返回执行结果。 启动Ability并在结束的时候返回执行结果。
- 参数: - 参数:
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
| want | [Want](js-apis-featureAbility.md#Want类型说明) | 是 | 启动Ability的want信息。 | | want | [Want](js-apis-featureAbility.md#Want类型说明) | 是 | 启动Ability的want信息。 |
| options | StartOptions | 是 | 启动Ability所携带的参数。 |
- 返回值 - 返回值
| 类型 | 说明 | | 类型 | 说明 |
...@@ -115,7 +215,10 @@ startAbilityForResult(want: Want): Promise&lt;AbilityResult&gt;; ...@@ -115,7 +215,10 @@ startAbilityForResult(want: Want): Promise&lt;AbilityResult&gt;;
- 示例: - 示例:
``` ```
this.context.startAbilityForResult({bundleName: "com.extreme.myapplication", abilityName: "MainAbilityDemo2"}).then((result) => { var options = {
windowMode: 0,
};
this.context.startAbilityForResult({bundleName: "com.extreme.myapplication", abilityName: "MainAbilityDemo2"}, options).then((result) => {
console.log("startAbilityForResult Promise.resolve is called, result.resultCode = " + result.resultCode) console.log("startAbilityForResult Promise.resolve is called, result.resultCode = " + result.resultCode)
}, (error) => { }, (error) => {
console.log("startAbilityForResult Promise.Reject is called, error.code = " + error.code) console.log("startAbilityForResult Promise.Reject is called, error.code = " + error.code)
...@@ -132,13 +235,13 @@ terminateSelf(callback: AsyncCallback&lt;void&gt;): void; ...@@ -132,13 +235,13 @@ terminateSelf(callback: AsyncCallback&lt;void&gt;): void;
- 参数: - 参数:
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
| callback | AsyncCallback&lt;void&gt; | | 回调函数,返回接口调用是否成功的结果。 | | callback | AsyncCallback&lt;void&gt; | | 回调函数,返回接口调用是否成功的结果。 |
- 示例: - 示例:
``` ```
this.context.terminateSelf((err) => { this.context.terminateSelf((err) => {
console.log('terminateSelf result:' + JSON.stringfy(err); console.log('terminateSelf result:' + JSON.stringfy(err));
} });
``` ```
...@@ -157,7 +260,7 @@ terminateSelf(): Promise&lt;void&gt;; ...@@ -157,7 +260,7 @@ terminateSelf(): Promise&lt;void&gt;;
``` ```
this.context.terminateSelf(want).then((data) => { this.context.terminateSelf(want).then((data) => {
console.log('success:' + JSON.stringfy(data)); console.log('success:' + JSON.stringfy(data));
)).catch((error) => { }).catch((error) => {
console.log('failed:' + JSON.stringfy(error)); console.log('failed:' + JSON.stringfy(error));
}); });
``` ```
...@@ -173,7 +276,7 @@ terminateSelfWithResult(parameter: AbilityResult, callback: AsyncCallback&lt;voi ...@@ -173,7 +276,7 @@ terminateSelfWithResult(parameter: AbilityResult, callback: AsyncCallback&lt;voi
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
| parameter | [AbilityResult](js-apis-featureAbility.md#abilityresult) | 是 | 返回给调用startAbilityForResult&nbsp;接口调用方的相关信息。 | | parameter | [AbilityResult](js-apis-featureAbility.md#abilityresult) | 是 | 返回给调用startAbilityForResult&nbsp;接口调用方的相关信息。 |
| callback | Callback&lt;void&gt; | 否 | callback形式返回停止结果 | | callback | AsyncCallback&lt;void&gt; | 是 | callback形式返回停止结果。 |
- 示例: - 示例:
``` ```
...@@ -202,7 +305,7 @@ terminateSelfWithResult(parameter: AbilityResult): Promise&lt;void&gt;; ...@@ -202,7 +305,7 @@ terminateSelfWithResult(parameter: AbilityResult): Promise&lt;void&gt;;
- 返回值: - 返回值:
| 类型 | 说明 | | 类型 | 说明 |
| -------- | -------- | | -------- | -------- |
| Promise&lt;void&gt; | promise形式返回停止结果 | | Promise&lt;void&gt; | promise形式返回停止结果 |
- 示例: - 示例:
``` ```
...@@ -215,3 +318,138 @@ terminateSelfWithResult(parameter: AbilityResult): Promise&lt;void&gt;; ...@@ -215,3 +318,138 @@ terminateSelfWithResult(parameter: AbilityResult): Promise&lt;void&gt;;
} }
) )
``` ```
## startAbilityByCall
startAbilityByCall(want: Want): Promise&lt;Caller&gt;;
获取指定通用组件服务端的caller通信接口, 并且将指定通用组件服务端拉起并切换到后台。
- 参数:
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| want | [Want](js-apis-featureAbility.md#Want类型说明) | 是 | 传入需要启动的ability的信息,包含ability名称、包名、设备ID,设备ID缺省或为空表示启动本地ability。 |
- 返回值:
| 类型 | 说明 |
| -------- | -------- |
| Promise&lt;&gt; | 获取要通讯的caller对象。 |
- 示例:
```
import Ability from '@ohos.application.Ability';
var caller;
export default class MainAbility extends Ability {
onWindowStageCreate(windowStage) {
this.context.startAbilityByCall({
bundleName: "com.example.myservice",
abilityName: "com.example.myservice.MainAbility",
deviceId: ""
}).then((obj) => {
caller = obj;
console.log('Caller GetCaller Get ' + call);
}).catch((e) => {
console.log('Caller GetCaller error ' + e);
});
}
}
```
## requestPermissionsFromUser
requestPermissionsFromUser(permissions: Array&lt;string&gt;, requestCallback: AsyncCallback&lt;PermissionRequestResult&gt;) : void;
拉起弹窗请求用户授权。
- 参数:
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| permissions | Array&lt;string&gt; | 是 | 权限列表。 |
| callback | AsyncCallback&lt;[PermissionRequestResult](js-apis-permissionrequestresult.md)&gt; | 是 | 回调函数,返回接口调用是否成功的结果。 |
- 示例:
```
this.context.requestPermissionsFromUser(permissions,(result) => {
console.log('requestPermissionsFromUserresult:' + JSON.stringfy(result));
});
```
## requestPermissionsFromUser
requestPermissionsFromUser(permissions: Array&lt;string&gt;) : Promise&lt;PermissionRequestResult&gt;;
拉起弹窗请求用户授权。通过Promise返回结果。
- 参数:
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| permissions | Array&lt;string&gt; | 是 | 权限列表。 |
- 返回值:
| 类型 | 说明 |
| -------- | -------- |
| Promise&lt;[PermissionRequestResult](js-apis-permissionrequestresult.md)&gt; | 返回一个Promise,包含接口的结果。 |
- 示例:
```
this.context.requestPermissionsFromUser(permissions).then((data) => {
console.log('success:' + JSON.stringfy(data));
}).catch((error) => {
console.log('failed:' + JSON.stringfy(error));
});
```
## setMissionLabel
setMissionLabel(label: string, callback:AsyncCallback&lt;void&gt;): void;
设置ability在任务中显示的名称。
- 参数:
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| label | string | 是 | 显示名称。 |
| callback | AsyncCallback&lt;void&gt; | 是 | 回调函数,返回接口调用是否成功的结果。 |
- 示例:
```
this.context.setMissionLabel("test",(result) => {
console.log('requestPermissionsFromUserresult:' + JSON.stringfy(result));
});
```
## setMissionLabel
setMissionLabel(label: string, callback:AsyncCallback&lt;void&gt;): void;
设置ability在任务中显示的名称。
- 参数:
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| label | string | 是 | 显示名称。 |
- 返回值:
| 类型 | 说明 |
| -------- | -------- |
| Promise&lt;void&gt; | 返回一个Promise,包含接口的结果。 |
- 示例:
```
this.context.setMissionLabel("test").then((data) => {
console.log('success:' + JSON.stringfy(data));
}).catch((error) => {
console.log('failed:' + JSON.stringfy(error));
});
```
# AbilityRunningInfo
- [使用说明](#使用说明)
- [属性](#属性)
- [abilityManager.AbilityState](#abilityManagerAbilityState)
> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
> 本模块首批接口从API 8开始支持。
Ability运行相关信息。
## 使用说明
通过abilityManager中getAbilityRunningInfos方法获取。
```
import abilitymanager from '@ohos.application.abilityManager';
abilitymanager.getAbilityRunningInfos((err,data) => {
console.log("getAbilityRunningInfos err: " + err + " data: " + JSON.stringify(data));
});
```
## 属性
| 名称 | 参数类型 | 可读 | 可写 | 说明 |
| -------- | -------- | -------- | -------- | -------- |
| ability | ElementName | 是 | 否 | Ability匹配信息。 |
| pid | number | 是 | 否 | 进程ID。 |
| uid | number | 是 | 否 | 用户ID。 |
| processName | string | 是 | 否 | 进程名称。 |
| startTime | number | 是 | 否 | Ability启动时间。 |
| abilityState | [abilityManager.AbilityState](#abilitymanager-abilitystate) | 是 | 否 | Ability状态。 |
## abilityManager.AbilityState
Ability的状态信息。
| 名称 | 值 | 说明 |
| -------- | -------- | -------- |
| INITIAL | 0 | 表示ability为initial状态。 |
| FOREGROUND | 9 | 表示ability为foreground状态。 |
| BACKGROUND | 10 | 表示ability为background状态。 |
| FOREGROUNDING | 11 | 表示ability为foregrounding状态。 |
| BACKGROUNDING | 12 | 表示ability为backgrounding状态。 |
# AbilityStageContext
- [使用说明](#使用说明)
- [属性](#属性)
> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
> 本模块首批接口从API 9开始支持。
AbilityStage的上下文环境,继承自[Context](js-apis-application-context.md)
## 使用说明
通过AbilityStage实例来获取。
```
import AbilityStage from '@ohos.application.AbilityStage';
class MyAbilityStage extends AbilityStage {
onCreate() {
let abilityStageContext = this.context;
}
}
```
## 属性
| 名称 | 参数类型 | 可读 | 可写 | 说明 |
| -------- | -------- | -------- | -------- | -------- |
| currentHapModuleInfo | HapModuleInfo | 是 | 否 | AbilityStage对应的ModuleInfo对象。 |
| config | [Configuration](js-apis-configuration.md) | 是 | 否 | 环境变化对象。 |
# Ability
- [导入模块](#导入模块)
- [属性](#属性)
- [onCreate](#onCreate)
- [onWindowStageCreate](#onWindowStageCreate)
- [onWindowStageDestroy](#onWindowStageDestroy)
- [onWindowStageRestore](#onWindowStageRestore)
- [onDestroy](#onDestroy)
- [onForeground](#onForeground)
- [onBackground](#onBackground)
- [onContinue](#onContinue)
- [onNewWant](#onNewWant)
- [onConfigurationUpdated](#onConfigurationUpdated)
- [Caller](#Caller)
- [call](#call)
- [callWithResult](#callWithResult)
- [release](#release)
- [onRelease](#onRelease)
- [Callee](#Callee)
- [on](#on)
- [off](#off)
> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
> 从API Version 8 开始支持。
Ability模块,提供对Ability生命周期、上下文环境等调用管理。
## 导入模块
```
import Ability from '@ohos.application.Ability';
```
## 属性
| 名称 | 参数类型 | 可读 | 可写 | 说明 |
| -------- | -------- | -------- | -------- | -------- |
| context | [AbilityContext](js-apis-ability-context.md) | 是 | 否 | 上下文。 |
| launchWant | [Want](js-apis-featureAbility.md#Want类型说明) | 是 | 否 | Ability启动时的参数。 |
| lastRequestWant | [Want](js-apis-featureAbility.md#Want类型说明) | 是 | 否 | Ability最后请求时的参数。 |
## onCreate
onCreate(want: Want,param:LaunchParam): void
Ability创建时回调,执行初始化业务逻辑操作。
- 参数:
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| want | [Want](js-apis-featureAbility.md#Want类型说明) | 是 | 当前Ability的Want类型信息,包括ability名称、bundle名称等。 |
| param | LaunchParam | 是 | 创建&nbsp;ability、上次异常退出的原因信息。 |
- 示例:
```
class myAbility extends Ability {
onCreate(want, param) {
console.log('onCreate, want:' + want.abilityName);
}
}
```
## onWindowStageCreate
onWindowStageCreate(windowStage: window.WindowStage): void
当WindowStage创建后调用。
- 参数:
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| windowStage | window.WindowStage | 是 | WindowStage相关信息。 |
- 示例:
```
class myAbility extends Ability {
onWindowStageCreate(windowStage) {
console.log('onWindowStageCreate');
}
}
```
## onWindowStageDestroy
onWindowStageDestroy(): void
当WindowStage销毁后调用。
- 示例:
```
class myAbility extends Ability {
onWindowStageDestroy() {
console.log('onWindowStageDestroy');
}
}
```
## onWindowStageRestore
onWindowStageRestore(windowStage: window.WindowStage): void
当迁移多实例ability时,恢复WindowStage后调用。
- 参数:
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| windowStage | window.WindowStage | 是 | WindowStage相关信息。 |
- 示例:
```
class myAbility extends Ability {
onWindowStageRestore(windowStage) {
console.log('onWindowStageRestore');
}
}
```
## onDestroy
onDestroy(): void;
Ability生命周期回调,在销毁时回调,执行资源清理等操作。
- 示例:
```
class myAbility extends Ability {
onDestroy() {
console.log('onDestroy');
}
}
```
## onForeground
onForeground(): void;
Ability生命周期回调,当应用处于前台时触发。
- 示例:
```
class myAbility extends Ability {
onForeground() {
console.log('onForeground');
}
}
```
## onBackground
onBackground(): void;
Ability生命周期回调,当应用处于后台时触发。
- 示例:
```
class myAbility extends Ability {
onBackground() {
console.log('onBackground');
}
}
```
## onContinue
onContinue(wantParam : {[key: string]: any}): boolean;
当ability迁移准备迁移时触发,保存数据。
- 参数:
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| wantParam | {[key:&nbsp;string]:&nbsp;any} | 是 | want相关参数。 |
- 返回值:
| 类型 | 说明 |
| -------- | -------- |
| boolean | true表示同意迁移,false表示拒绝迁移。 |
- 示例:
```
class myAbility extends Ability {
onContinue(wantParams) {
console.log('onContinue');
wantParams["myData"] = "my1234567";
return true;
}
}
```
## onNewWant
onNewWant(want: Want): void;
当ability的启动模式设置为单例时回调会被调用。
- 参数:
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| want | [Want](js-apis-featureAbility.md#Want类型说明) | 是 | Want类型参数,如ability名称,包名等。 |
- 示例:
```
class myAbility extends Ability {
onNewWant(want) {
console.log('onNewWant, want:' + want.abilityName);
}
}
```
## onConfigurationUpdated
onConfigurationUpdated(config: Configuration): void;
当系统配置更新时调用。
- 参数:
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| config | [Configuration](#section188911144124715) | 是 | 表示需要更新的配置信息。 |
- 示例:
```
class myAbility extends Ability {
onConfigurationUpdated(config) {
console.log('onConfigurationUpdated, config:' + JSON.stringify(config));
}
}
```
## Caller
通用组件Caller通信客户端调用接口, 用来向通用组件服务端发送约定数据。
### call
call(method, data: rpc.Sequenceable): Promise&lt;void&gt;;
向通用组件服务端发送约定序列化数据。
- 参数:
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| method | string | 是 | 约定的服务端注册事件字符串。 |
| data | rpc.Sequenceable | 是 | 由开发者实现的Sequenceable可序列化数据。 |
- 返回值:
| 类型 | 说明 |
| -------- | -------- |
| Promise&lt;void&gt; | Promise形式返回应答。 |
- 示例:
```
import Ability from '@ohos.application.Ability';
class MyMessageAble{ // 自定义的Sequenceable数据结构
num: 0
str: ''
constructor() {}
marshalling(messageParcel) {
messageParcel.writeInt(this.num);
messageParcel.writeString(this.str);
console.log('MyMessageAble marshalling num[' + this.num + '] str[' + this.str + ']');
return true;
}
unmarshalling(messageParcel) {
this.num = messageParcel.readInt();
this.str = messageParcel.readString();
console.log('MyMessageAble unmarshalling num[' + this.num + '] str[' + this.str + ']');
return true;
}
};
var method = 'call_Function'; // 约定的通知消息字符串
var caller;
export default class MainAbility extends Ability {
onWindowStageCreate(windowStage) {
caller = await this.context.startAbilityByCall({
bundleName: "com.example.myservice",
abilityName: "com.example.myservice.MainAbility",
deviceId: ""
});
let msg = new MyMessageAble(1, "world"); // 参考Sequenceable数据定义
caller.call(method, msg)
.then(() => {
console.log('Caller call() called');
}).catch((e) => {
console.log('Caller call() catch error ' + e);
});
}
}
```
### callWithResult
callWithResult(method, data: rpc.Sequenceable): Promise&lt;rpc.MessageParcel&gt;;
向通用组件服务端发送约定序列化数据, 并将服务端返回的约定序列化数据带回。
- 参数:
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| method | string | 是 | 约定的服务端注册事件字符串。 |
| data | rpc.Sequenceable | 是 | 由开发者实现的Sequenceable可序列化数据。 |
- 返回值:
| 类型 | 说明 |
| -------- | -------- |
| Promise&lt;rpc.MessageParcel&gt; | Promise形式返回通用组件服务端应答数据。 |
- 示例:
```
import Ability from '@ohos.application.Ability';
class MyMessageAble{
num: 0
str: ''
constructor() {}
marshalling(messageParcel) {
messageParcel.writeInt(this.num);
messageParcel.writeString(this.str);
console.log('MyMessageAble marshalling num[' + this.num + '] str[' + this.str + ']');
return true;
}
unmarshalling(messageParcel) {
this.num = messageParcel.readInt();
this.str = messageParcel.readString();
console.log('MyMessageAble unmarshalling num[' + this.num + '] str[' + this.str + ']');
return true;
}
};
var method = 'call_Function';
var caller;
export default class MainAbility extends Ability {
onWindowStageCreate(windowStage) {
caller = await this.context.startAbilityByCall({
bundleName: "com.example.myservice",
abilityName: "com.example.myservice.MainAbility",
deviceId: ""
});
let msg = new MyMessageAble(1, "world");
caller.callWithResult(method, msg)
.then((data) => {
console.log('Caller call() called');
let retmsg = new MyMessageAble(0, "");
data.readSequenceable(retmsg);
}).catch((e) => {
console.log('Caller call() catch error ' + e);
});
}
}
```
### release
release(): void;
主动释放通用组件服务端的通信接口。
- 示例:
```
import Ability from '@ohos.application.Ability';
var caller;
export default class MainAbility extends Ability {
onWindowStageCreate(windowStage) {
caller = await this.context.startAbilityByCall({
bundleName: "com.example.myservice",
abilityName: "com.example.myservice.MainAbility",
deviceId: ""
});
try {
caller.release();
} catch (e) {
console.log('Caller Release error ' + e);
}
}
}
```
### onRelease
onRelease(callback: function): void;
注册通用组件服务端Stub断开监听通知。
- 参数:
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| callback | function | 是 | 返回onRelease回调结果。 |
- 示例:
```
import Ability from '@ohos.application.Ability';
var caller;
export default class MainAbility extends Ability {
onWindowStageCreate(windowStage) {
caller = await this.context.startAbilityByCall({
bundleName: "com.example.myservice",
abilityName: "com.example.myservice.MainAbility",
deviceId: ""
});
try {
caller.onRelease((str) => {
console.log(' Caller OnRelease CallBack is called ' + str);
});
} catch (e) {
console.log('Caller Release error ' + e);
}
}
}
```
## Callee
通用组件服务端注册和解除客户端caller通知送信的callback接口。
### on
on(method: string, callback: function): void;
通用组件服务端注册消息通知callback。
- 参数:
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| method | string | 是 | 与客户端约定的通知消息字符串。 |
| callback | function | 是 | 一个rpc.MessageParcel类型入参的js通知同步回调函数,&nbsp;回调函数至少要返回一个空的rpc.Sequenceable数据对象,&nbsp;其他视为函数执行错误。 |
- 示例:
```
import Ability from '@ohos.application.Ability';
class MyMessageAble{
num: 0
str: ''
constructor() {}
marshalling(messageParcel) {
messageParcel.writeInt(this.num);
messageParcel.writeString(this.str);
console.log('MyMessageAble marshalling num[' + this.num + '] str[' + this.str + ']');
return true;
}
unmarshalling(messageParcel) {
this.num = messageParcel.readInt();
this.str = messageParcel.readString();
console.log('MyMessageAble unmarshalling num[' + this.num + '] str[' + this.str + ']');
return true;
}
};
var method = 'call_Function';
function funcCallBack(pdata) {
console.log('Callee funcCallBack is called ' + pdata);
let msg = new MyMessageAble(0, "");
pdata.readSequenceable(msg);
return new MyMessageAble(10, "Callee test");
}
export default class MainAbility extends Ability {
onCreate(want, launchParam) {
console.log('Callee onCreate is called');
this.callee.on(method, funcCallBack);
}
}
```
### off
off(method: string): void;
解除通用组件服务端注册消息通知callback。
- 参数:
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| method | string | 是 | 已注册的通知事件字符串。 |
- 示例:
```
import Ability from '@ohos.application.Ability';
var method = 'call_Function';
export default class MainAbility extends Ability {
onCreate(want, launchParam) {
console.log('Callee onCreate is called');
this.callee.off(method);
}
}
```
# AbilityStage
- [导入模块](#导入模块)
- [onCreate](#onCreate)
- [onAcceptWant](#onAcceptWant)
- [onConfigurationUpdated](#onConfigurationUpdated)
> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
> 本模块首批接口从API 9开始支持。
AbilityStage是HAP包的运行时类。在HAP加载的时候,通知开发者,开发者可以在此进行该HAP的初始化(如资源预加载,线程创建等)。
## 导入模块
```
import AbilityStage from '@ohos.application.AbilityStage';
```
## onCreate
onCreate(): void
当应用创建时调用。
- 示例
```
class MyAbilityStage extends AbilityStage {
onCreate() {
console.log("MyAbilityStage.onCreate is called")
}
}
```
## onAcceptWant
onAcceptWant(want: Want): string;
启动一个specified ability时触发的事件。
- 参数:
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| want | [Want](js-apis-featureAbility.md#Want类型说明) | 是 | Want类型参数,传入需要启动的ability的信息,如ability名称,包名等。 |
- 返回值:
| 类型 | 说明 |
| -------- | -------- |
| string | 用户返回一个ability标识,如果之前启动过次标识的ability,不创建新的实例并拉回栈顶,否则创建新的实例并启动。 |
- 示例
```
class MyAbilityStage extends AbilityStage {
onAcceptWant(want) {
console.log("MyAbilityStage.onAcceptWant called");
return "com.example.test";
}
}
```
## onConfigurationUpdated
onConfigurationUpdated(config: Configuration): void;
环境变化通知接口,发生全局配置变更时回调。
- 参数:
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| config | [Configuration](js-apis-configuration.md) | 是 | 发生全局配置变更时触发回调,当前全局配置包括系统语言、深浅色模式。 |
- 示例:
```
class MyAbilityStage extends AbilityStage {
onConfigurationUpdated(config) {
console.log('onConfigurationUpdated, language:' + config.language);
}
}
```
# Context
- [使用说明](#使用说明)
- [属性](#属性)
- [createBundleContext](#createBundleContext)
- [getApplicationContext](#getApplicationContext)
> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
> 本模块首批接口从API version 9开始支持。
提供开发者运行代码的上下文环境,包括应用信息、ResourceManager等信息。
## 使用说明
通过AbilityContext等集成实现。
## 属性
| 名称 | 参数类型 | 可读 | 可写 | 说明 |
| -------- | -------- | -------- | -------- | -------- |
| resourceManager | ResourceManager | 是 | 否 | ResourceManager对象。 |
| applicationInfo | ApplicationInfo | 是 | 否 | 当前应用信息。 |
| cacheDir | string | 是 | 否 | 应用在内部存储上的缓存路径。 |
| tempDir | string | 是 | 否 | 应用的临时文件路径。 |
| filesDir | string | 是 | 否 | 应用在内部存储上的文件路径。 |
| databaseDir | string | 是 | 否 | 获取本地数据存储路径。 |
| storageDir | string | 是 | 否 | 获取轻量级数据存储路径。 |
| bundleCodeDir | string | 是 | 否 | 应用安装路径。 |
| distributedFilesDir | string | 是 | 否 | 应用的分布式文件路径。 |
| eventHub | [EventHub](js-apis-eventhub.md) | 是 | 否 | 事件中心信息。|
## createBundleContext
createBundleContext(bundleName: string): Context;
创建指定应用上下文。
- 参数:
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| bundleName | string | 是 | 应用bundle名。 |
- 返回值:
| 类型 | 说明 |
| -------- | -------- |
| Context | 对应创建应用的上下文context。 |
- 示例:
```
let test = "com.huawei.test";
let context = this.context.createBundleContext(test);
```
## getApplicationContext
getApplicationContext(): Context;
获取当前context。
- 返回值:
| 类型 | 说明 |
| -------- | -------- |
| Context | 当前Context&nbsp;信息。 |
- 示例:
```
// 必选项。
let context = this.context.getApplicationContext();
```
# appManager
- [导入模块](#导入模块)
- [isRunningInStabilityTest](#isRunningInStabilityTest)
- [isRunningInStabilityTest](#isRunningInStabilityTest)
> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
> 本模块首批接口从API 8开始支持。
App运行相关信息。
## 导入模块
```
import app from '@ohos.application.appManager';
```
## isRunningInStabilityTest
static isRunningInStabilityTest(callback: AsyncCallback&lt;boolean&gt;): void
查询当前用户是否是一个稳定性测试。
- 参数:
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| callback | AsyncCallback&lt;boolean&gt; | 否 | 返回当前是否处于稳定性测试场景。 |
- 示例:
```
import app from '@ohos.application.appManager';
app.isRunningInStabilityTest((err, flag) => {
console.log('startAbility result:' + JSON.stringfy(err);
}
```
## isRunningInStabilityTest
static isRunningInStabilityTest(): Promise&lt;boolean&gt;
查询当前是否处于稳定性测试场景。
- 返回值:
| 类型 | 说明 |
| -------- | -------- |
| Promise&lt;boolean&gt; | 返回当前是否处于稳定性测试场景。 |
- 示例:
```
import app from '@ohos.application.appManager';
app.isRunningInStabilityTest().then((flag) => {
console.log('success:' + JSON.stringfy(flag));
)).catch((error) => {
console.log('failed:' + JSON.stringfy(error));
});
```
# 蓝牙
> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
> 本模块首批接口从API version 8开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 > 本模块首批接口从API version 8开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
> >
...@@ -155,7 +157,7 @@ pairDevice(deviceId: string): boolean ...@@ -155,7 +157,7 @@ pairDevice(deviceId: string): boolean
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
| deviceId | string | 是 | 表示配对的远端设备地址,例如:"8F:8F:8E:8E:6D:6D"。 | | deviceId | string | 是 | 表示配对的远端设备地址,例如:"XX:XX:XX:XX:XX:XX"。 |
**返回值:** **返回值:**
...@@ -167,7 +169,82 @@ pairDevice(deviceId: string): boolean ...@@ -167,7 +169,82 @@ pairDevice(deviceId: string): boolean
``` ```
// 实际的地址可由扫描流程获取 // 实际的地址可由扫描流程获取
let result = bluetooth.pairDevice("8F:8F:8E:8E:6D:6D"); let result = bluetooth.pairDevice("XX:XX:XX:XX:XX:XX");
```
## bluetooth.cancelPairedDevice
cancelPairedDevice(deviceId: string): boolean
删除配对的远程设备。
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| deviceId | string | 是 | 表示要删除的远程设备的地址,例如:"XX:XX:XX:XX:XX:XX"。 |
**返回值:**
| 类型 | 说明 |
| -------- | -------- |
| boolean | 启动取消配对,成功返回true,否则返回false。 |
**示例:**
```
let result = bluetooth.cancelPairedDevice("XX:XX:XX:XX:XX:XX");
```
## bluetooth.getRemoteDeviceName
getRemoteDeviceName(deviceId: string): string
获取对端蓝牙设备的名称。
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| deviceId | string | 是 | 表示远程设备的地址,例如:"XX:XX:XX:XX:XX:XX"。 |
**返回值:**
| 类型 | 说明 |
| -------- | -------- |
| string | 以字符串格式返回设备名称。 |
**示例:**
```
let remoteDeviceName = bluetooth.getRemoteDeviceName("XX:XX:XX:XX:XX:XX");
```
## bluetooth.getRemoteDeviceClass
getRemoteDeviceClass(deviceId: string): DeviceClass
获取对端蓝牙设备的类别。
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| deviceId | string | 是 | 表示远程设备的地址,例如:"XX:XX:XX:XX:XX:XX"。 |
**返回值:**
| 类型 | 说明 |
| -------- | -------- |
| [DeviceClass](#DeviceClass) | 远程设备的类别。 |
**示例:**
```
let remoteDeviceClass = bluetooth.getRemoteDeviceClass("XX:XX:XX:XX:XX:XX");
``` ```
...@@ -289,7 +366,7 @@ setDevicePairingConfirmation(device: string, accept: boolean): boolean ...@@ -289,7 +366,7 @@ setDevicePairingConfirmation(device: string, accept: boolean): boolean
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
| device | string | 是 | 表示远端设备地址,例如:"8F:8F:8E:8E:6D:6D"。 | | device | string | 是 | 表示远端设备地址,例如:"XX:XX:XX:XX:XX:XX"。 |
| accept | boolean | 是 | 接受配对请求设置为true,否则设置为false。 | | accept | boolean | 是 | 接受配对请求设置为true,否则设置为false。 |
**返回值:** **返回值:**
...@@ -600,7 +677,7 @@ sppConnect(device: string, option: SppOption, callback: AsyncCallback&lt;number& ...@@ -600,7 +677,7 @@ sppConnect(device: string, option: SppOption, callback: AsyncCallback&lt;number&
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
| device | string | 是 | 对端设备地址,例如:"8F:8F:8E:8E:6D:6D"。 | | device | string | 是 | 对端设备地址,例如:"XX:XX:XX:XX:XX:XX"。 |
| option | [SppOption](#sppoption) | 是 | spp客户端连接配置参数。 | | option | [SppOption](#sppoption) | 是 | spp客户端连接配置参数。 |
| callback | AsyncCallback&lt;number&gt; | 是 | 表示回调函数的入参,客户端socket的id。 | | callback | AsyncCallback&lt;number&gt; | 是 | 表示回调函数的入参,客户端socket的id。 |
...@@ -617,7 +694,7 @@ function clientSocket(code, number) { ...@@ -617,7 +694,7 @@ function clientSocket(code, number) {
clientNumber = number; clientNumber = number;
} }
let sppOption = {uuid: '00001810-0000-1000-8000-00805F9B34FB', secure: false, type: 0}; let sppOption = {uuid: '00001810-0000-1000-8000-00805F9B34FB', secure: false, type: 0};
bluetooth.sppConnect('8F:8F:8E:8E:6D:6D', sppOption, clientSocket); bluetooth.sppConnect('XX:XX:XX:XX:XX:XX', sppOption, clientSocket);
``` ```
...@@ -780,7 +857,7 @@ createGattClientDevice(deviceId: string): GattClientDevice ...@@ -780,7 +857,7 @@ createGattClientDevice(deviceId: string): GattClientDevice
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
| deviceId | string | 是 | 对端设备地址,&nbsp;例如:"8F:8F:8E:8E:6D:6D"。 | | deviceId | string | 是 | 对端设备地址,&nbsp;例如:"XX:XX:XX:XX:XX:XX"。 |
**返回值:** **返回值:**
...@@ -791,7 +868,7 @@ createGattClientDevice(deviceId: string): GattClientDevice ...@@ -791,7 +868,7 @@ createGattClientDevice(deviceId: string): GattClientDevice
**示例:** **示例:**
``` ```
let device = bluetooth.BLE.createGattClientDevice('8F:8F:8E:8E:6D:6D'); let device = bluetooth.BLE.createGattClientDevice('XX:XX:XX:XX:XX:XX');
``` ```
...@@ -840,7 +917,7 @@ function onReceiveEvent(data) { ...@@ -840,7 +917,7 @@ function onReceiveEvent(data) {
bluetooth.BLE.on("BLEDeviceFind", onReceiveEvent); bluetooth.BLE.on("BLEDeviceFind", onReceiveEvent);
bluetooth.BLE.startBLEScan( bluetooth.BLE.startBLEScan(
[{ [{
deviceId:"8F:8F:8E:8E:6D:6D", deviceId:"XX:XX:XX:XX:XX:XX",
name:"test", name:"test",
serviceUuid:"00001888-0000-1000-8000-00805f9b34fb" serviceUuid:"00001888-0000-1000-8000-00805f9b34fb"
}], }],
...@@ -1117,7 +1194,7 @@ server端特征值发生变化时,主动通知已连接的client设备。 ...@@ -1117,7 +1194,7 @@ server端特征值发生变化时,主动通知已连接的client设备。
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
| deviceId | string | 是 | 接收通知的client端设备地址,例如“8F:8F:8E:8E:6D:6D”。 | | deviceId | string | 是 | 接收通知的client端设备地址,例如“XX:XX:XX:XX:XX:XX”。 |
| notifyCharacteristic | [NotifyCharacteristic](#notifycharacteristic) | 是 | 通知的特征值数据。 | | notifyCharacteristic | [NotifyCharacteristic](#notifycharacteristic) | 是 | 通知的特征值数据。 |
**返回值:** **返回值:**
...@@ -1133,7 +1210,7 @@ server端特征值发生变化时,主动通知已连接的client设备。 ...@@ -1133,7 +1210,7 @@ server端特征值发生变化时,主动通知已连接的client设备。
let notifyCharacteristic = {serviceUuid: '00001810-0000-1000-8000-00805F9B34FB', let notifyCharacteristic = {serviceUuid: '00001810-0000-1000-8000-00805F9B34FB',
characteristicUuid: '00001821-0000-1000-8000-00805F9B34FB', characteristicValue: notifyCcc.characteristicValue, confirm: false}; characteristicUuid: '00001821-0000-1000-8000-00805F9B34FB', characteristicValue: notifyCcc.characteristicValue, confirm: false};
let server = bluetooth.BLE.createGattServer(); let server = bluetooth.BLE.createGattServer();
server.notifyCharacteristicChanged('8F:8F:8E:8E:6D:6D', notifyCharacteristic); server.notifyCharacteristicChanged('XX:XX:XX:XX:XX:XX', notifyCharacteristic);
``` ```
...@@ -1164,7 +1241,7 @@ let arrayBufferCCC = new ArrayBuffer(8); ...@@ -1164,7 +1241,7 @@ let arrayBufferCCC = new ArrayBuffer(8);
let cccValue = new Uint8Array(arrayBufferCCC); let cccValue = new Uint8Array(arrayBufferCCC);
cccValue[0] = 1123; cccValue[0] = 1123;
let serverResponse = { let serverResponse = {
"deviceId": "8F:8F:8E:8E:6D:6D", "deviceId": "XX:XX:XX:XX:XX:XX",
"transId": 0, "transId": 0,
"status": 0, "status": 0,
"offset": 0, "offset": 0,
...@@ -1538,7 +1615,7 @@ client端发起连接远端蓝牙低功耗设备。 ...@@ -1538,7 +1615,7 @@ client端发起连接远端蓝牙低功耗设备。
**示例:** **示例:**
``` ```
let device = bluetooth.BLE.createGattClientDevice('8F:8F:8E:8E:6D:6D'); let device = bluetooth.BLE.createGattClientDevice('XX:XX:XX:XX:XX:XX');
let ret = device.connect(); let ret = device.connect();
``` ```
...@@ -1558,7 +1635,7 @@ client端断开与远端蓝牙低功耗设备的连接。 ...@@ -1558,7 +1635,7 @@ client端断开与远端蓝牙低功耗设备的连接。
**示例:** **示例:**
``` ```
let device = bluetooth.BLE.createGattClientDevice('8F:8F:8E:8E:6D:6D'); let device = bluetooth.BLE.createGattClientDevice('XX:XX:XX:XX:XX:XX');
let ret = device.disconnect(); let ret = device.disconnect();
``` ```
...@@ -1578,7 +1655,7 @@ close(): boolean ...@@ -1578,7 +1655,7 @@ close(): boolean
**示例:** **示例:**
``` ```
let device = bluetooth.BLE.createGattClientDevice('8F:8F:8E:8E:6D:6D'); let device = bluetooth.BLE.createGattClientDevice('XX:XX:XX:XX:XX:XX');
let ret = device.close(); let ret = device.close();
``` ```
...@@ -1617,7 +1694,7 @@ function getServices(code, gattServices) { ...@@ -1617,7 +1694,7 @@ function getServices(code, gattServices) {
} }
} }
let device = bluetooth.BLE.createGattClientDevice('8F:8F:8E:8E:6D:6D'); let device = bluetooth.BLE.createGattClientDevice('XX:XX:XX:XX:XX:XX');
device.connect(); device.connect();
device.getServices(getServices); device.getServices(getServices);
``` ```
...@@ -1641,7 +1718,7 @@ client端获取蓝牙低功耗设备的所有服务,即服务发现。 ...@@ -1641,7 +1718,7 @@ client端获取蓝牙低功耗设备的所有服务,即服务发现。
``` ```
// Promise 模式 // Promise 模式
let device = bluetooth.BLE.createGattClientDevice('8F:8F:8E:8E:6D:6D'); let device = bluetooth.BLE.createGattClientDevice('XX:XX:XX:XX:XX:XX');
device.connect(); device.connect();
let services = device.getServices(); let services = device.getServices();
console.log("bluetooth services size is ", services.length); console.log("bluetooth services size is ", services.length);
...@@ -1681,7 +1758,7 @@ function readCcc(code, BLECharacteristic) { ...@@ -1681,7 +1758,7 @@ function readCcc(code, BLECharacteristic) {
console.log('bluetooth characteristic value: ' + value[0] +','+ value[1]+','+ value[2]+','+ value[3]); console.log('bluetooth characteristic value: ' + value[0] +','+ value[1]+','+ value[2]+','+ value[3]);
} }
let device = bluetooth.BLE.createGattClientDevice('8F:8F:8E:8E:6D:6D'); let device = bluetooth.BLE.createGattClientDevice('XX:XX:XX:XX:XX:XX');
let descriptors = []; let descriptors = [];
let bufferDesc = new ArrayBuffer(8); let bufferDesc = new ArrayBuffer(8);
let descV = new Uint8Array(bufferDesc); let descV = new Uint8Array(bufferDesc);
...@@ -1724,7 +1801,7 @@ client端读取蓝牙低功耗设备特定服务的特征值。 ...@@ -1724,7 +1801,7 @@ client端读取蓝牙低功耗设备特定服务的特征值。
**示例:** **示例:**
``` ```
let device = bluetooth.BLE.createGattClientDevice('8F:8F:8E:8E:6D:6D'); let device = bluetooth.BLE.createGattClientDevice('XX:XX:XX:XX:XX:XX');
let descriptors = []; let descriptors = [];
let bufferDesc = new ArrayBuffer(8); let bufferDesc = new ArrayBuffer(8);
let descV = new Uint8Array(bufferDesc); let descV = new Uint8Array(bufferDesc);
...@@ -1774,7 +1851,7 @@ function readDesc(code, BLEDescriptor) { ...@@ -1774,7 +1851,7 @@ function readDesc(code, BLEDescriptor) {
console.log('bluetooth descriptor value: ' + value[0] +','+ value[1]+','+ value[2]+','+ value[3]); console.log('bluetooth descriptor value: ' + value[0] +','+ value[1]+','+ value[2]+','+ value[3]);
} }
let device = bluetooth.BLE.createGattClientDevice('8F:8F:8E:8E:6D:6D'); let device = bluetooth.BLE.createGattClientDevice('XX:XX:XX:XX:XX:XX');
let bufferDesc = new ArrayBuffer(8); let bufferDesc = new ArrayBuffer(8);
let descV = new Uint8Array(bufferDesc); let descV = new Uint8Array(bufferDesc);
descV[0] = 11; descV[0] = 11;
...@@ -1807,7 +1884,7 @@ client端读取蓝牙低功耗设备特定的特征包含的描述符。 ...@@ -1807,7 +1884,7 @@ client端读取蓝牙低功耗设备特定的特征包含的描述符。
**示例:** **示例:**
``` ```
let device = bluetooth.BLE.createGattClientDevice('8F:8F:8E:8E:6D:6D'); let device = bluetooth.BLE.createGattClientDevice('XX:XX:XX:XX:XX:XX');
let bufferDesc = new ArrayBuffer(8); let bufferDesc = new ArrayBuffer(8);
let descV = new Uint8Array(bufferDesc); let descV = new Uint8Array(bufferDesc);
descV[0] = 11; descV[0] = 11;
...@@ -1839,7 +1916,7 @@ client端向低功耗蓝牙设备写入特定的特征值。 ...@@ -1839,7 +1916,7 @@ client端向低功耗蓝牙设备写入特定的特征值。
**示例:** **示例:**
``` ```
let device = bluetooth.BLE.createGattClientDevice('8F:8F:8E:8E:6D:6D'); let device = bluetooth.BLE.createGattClientDevice('XX:XX:XX:XX:XX:XX');
let descriptors = []; let descriptors = [];
let bufferDesc = new ArrayBuffer(8); let bufferDesc = new ArrayBuffer(8);
let descV = new Uint8Array(bufferDesc); let descV = new Uint8Array(bufferDesc);
...@@ -1885,7 +1962,7 @@ client端向低功耗蓝牙设备特定的描述符写入二进制数据。 ...@@ -1885,7 +1962,7 @@ client端向低功耗蓝牙设备特定的描述符写入二进制数据。
**示例:** **示例:**
``` ```
let device = bluetooth.BLE.createGattClientDevice('8F:8F:8E:8E:6D:6D'); let device = bluetooth.BLE.createGattClientDevice('XX:XX:XX:XX:XX:XX');
let bufferDesc = new ArrayBuffer(8); let bufferDesc = new ArrayBuffer(8);
let descV = new Uint8Array(bufferDesc); let descV = new Uint8Array(bufferDesc);
descV[0] = 22; descV[0] = 22;
...@@ -1922,7 +1999,7 @@ client协商远端蓝牙低功耗设备的最大传输单元(Maximum Transmiss ...@@ -1922,7 +1999,7 @@ client协商远端蓝牙低功耗设备的最大传输单元(Maximum Transmiss
**示例:** **示例:**
``` ```
let device = bluetooth.BLE.createGattClientDevice('8F:8F:8E:8E:6D:6D'); let device = bluetooth.BLE.createGattClientDevice('XX:XX:XX:XX:XX:XX');
device.setBLEMtuSize(128); device.setBLEMtuSize(128);
``` ```
...@@ -1949,7 +2026,7 @@ setNotifyCharacteristicChanged(characteristic: BLECharacteristic, enable: boolea ...@@ -1949,7 +2026,7 @@ setNotifyCharacteristicChanged(characteristic: BLECharacteristic, enable: boolea
**示例:** **示例:**
``` ```
let device = bluetooth.BLE.createGattClientDevice('8F:8F:8E:8E:6D:6D'); let device = bluetooth.BLE.createGattClientDevice('XX:XX:XX:XX:XX:XX');
device.setNotifyCharacteristicChanged(notifyCcc, false); device.setNotifyCharacteristicChanged(notifyCcc, false);
``` ```
...@@ -1979,7 +2056,7 @@ function CharacteristicChange(CharacteristicChangeReq) { ...@@ -1979,7 +2056,7 @@ function CharacteristicChange(CharacteristicChangeReq) {
let characteristicUuid = CharacteristicChangeReq.characteristicUuid; let characteristicUuid = CharacteristicChangeReq.characteristicUuid;
let value = new Uint8Array(CharacteristicChangeReq.characteristicValue); let value = new Uint8Array(CharacteristicChangeReq.characteristicValue);
} }
let device = bluetooth.BLE.createGattClientDevice('8F:8F:8E:8E:6D:6D'); let device = bluetooth.BLE.createGattClientDevice('XX:XX:XX:XX:XX:XX');
device.on('BLECharacteristicChange', CharacteristicChange); device.on('BLECharacteristicChange', CharacteristicChange);
``` ```
...@@ -2004,7 +2081,7 @@ off(type: "BLECharacteristicChange", callback?: Callback&lt;BLECharacteristic&gt ...@@ -2004,7 +2081,7 @@ off(type: "BLECharacteristicChange", callback?: Callback&lt;BLECharacteristic&gt
**示例:** **示例:**
``` ```
let device = bluetooth.BLE.createGattClientDevice('8F:8F:8E:8E:6D:6D'); let device = bluetooth.BLE.createGattClientDevice('XX:XX:XX:XX:XX:XX');
device.off('BLECharacteristicChange'); device.off('BLECharacteristicChange');
``` ```
...@@ -2033,7 +2110,7 @@ function ConnectStateChanged(state) { ...@@ -2033,7 +2110,7 @@ function ConnectStateChanged(state) {
console.log('bluetooth connect state changed'); console.log('bluetooth connect state changed');
let connectState = state.state; let connectState = state.state;
} }
let device = bluetooth.BLE.createGattClientDevice('8F:8F:8E:8E:6D:6D'); let device = bluetooth.BLE.createGattClientDevice('XX:XX:XX:XX:XX:XX');
device.on('BLEConnectionStateChange', ConnectStateChanged); device.on('BLEConnectionStateChange', ConnectStateChanged);
``` ```
...@@ -2058,7 +2135,7 @@ off(type: "BLEConnectionStateChange", callback?: Callback&lt;BLEConnectChangedSt ...@@ -2058,7 +2135,7 @@ off(type: "BLEConnectionStateChange", callback?: Callback&lt;BLEConnectChangedSt
**示例:** **示例:**
``` ```
let device = bluetooth.BLE.createGattClientDevice('8F:8F:8E:8E:6D:6D'); let device = bluetooth.BLE.createGattClientDevice('XX:XX:XX:XX:XX:XX');
device.off('BLEConnectionStateChange'); device.off('BLEConnectionStateChange');
``` ```
...@@ -2083,7 +2160,7 @@ client获取远端蓝牙低功耗设备名。 ...@@ -2083,7 +2160,7 @@ client获取远端蓝牙低功耗设备名。
``` ```
// callback // callback
let gattClient = bluetooth.BLE.createGattClientDevice("8F:8F:8E:8E:6D:6D"); let gattClient = bluetooth.BLE.createGattClientDevice("XX:XX:XX:XX:XX:XX");
let deviceName = gattClient.getDeviceName((err, data)=> { let deviceName = gattClient.getDeviceName((err, data)=> {
console.info('device name err ' + JSON.stringify(err)); console.info('device name err ' + JSON.stringify(err));
console.info('device name' + JSON.stringify(data)); console.info('device name' + JSON.stringify(data));
...@@ -2107,7 +2184,7 @@ client获取远端蓝牙低功耗设备名。 ...@@ -2107,7 +2184,7 @@ client获取远端蓝牙低功耗设备名。
``` ```
// promise // promise
let gattClient = bluetooth.BLE.createGattClientDevice("8F:8F:8E:8E:6D:6D"); let gattClient = bluetooth.BLE.createGattClientDevice("XX:XX:XX:XX:XX:XX");
let ret = device.connect(); let ret = device.connect();
let deviceName = gattClient.getDeviceName().then((data) => { let deviceName = gattClient.getDeviceName().then((data) => {
console.info('device name' + JSON.stringify(data)); console.info('device name' + JSON.stringify(data));
...@@ -2135,7 +2212,7 @@ client获取远端蓝牙低功耗设备的信号强度 (Received Signal Strength ...@@ -2135,7 +2212,7 @@ client获取远端蓝牙低功耗设备的信号强度 (Received Signal Strength
``` ```
// callback // callback
let gattClient = bluetooth.BLE.createGattClientDevice("8F:8F:8E:8E:6D:6D"); let gattClient = bluetooth.BLE.createGattClientDevice("XX:XX:XX:XX:XX:XX");
let ret = device.connect(); let ret = device.connect();
let rssi = gattClient.getRssiValue((err, data)=> { let rssi = gattClient.getRssiValue((err, data)=> {
console.info('rssi err ' + JSON.stringify(err)); console.info('rssi err ' + JSON.stringify(err));
...@@ -2160,7 +2237,7 @@ client获取远端蓝牙低功耗设备的信号强度 (Received Signal Strength ...@@ -2160,7 +2237,7 @@ client获取远端蓝牙低功耗设备的信号强度 (Received Signal Strength
``` ```
// promise // promise
let gattClient = bluetooth.BLE.createGattClientDevice("8F:8F:8E:8E:6D:6D"); let gattClient = bluetooth.BLE.createGattClientDevice("XX:XX:XX:XX:XX:XX");
let rssi = gattClient.getRssiValue().then((data) => { let rssi = gattClient.getRssiValue().then((data) => {
console.info('rssi' + JSON.stringify(data)); console.info('rssi' + JSON.stringify(data));
}) })
...@@ -2266,7 +2343,7 @@ let rssi = gattClient.getRssiValue().then((data) => { ...@@ -2266,7 +2343,7 @@ let rssi = gattClient.getRssiValue().then((data) => {
| 名称 | 参数类型 | 可读 | 可写 | 说明 | | 名称 | 参数类型 | 可读 | 可写 | 说明 |
| -------- | -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- | -------- |
| deviceId | string | 是 | 否 | 表示发送特征值读请求的远端设备地址,例如:"8F:8F:8E:8E:6D:6D"。 | | deviceId | string | 是 | 否 | 表示发送特征值读请求的远端设备地址,例如:"XX:XX:XX:XX:XX:XX"。 |
| transId | number | 是 | 否 | 表示读请求的传输ID,server端回复响应时需填写相同的传输ID。 | | transId | number | 是 | 否 | 表示读请求的传输ID,server端回复响应时需填写相同的传输ID。 |
| offset | number | 是 | 否 | 表示读特征值数据的起始位置。例如:k表示从第k个字节开始读,server端回复响应时需填写相同的offset。 | | offset | number | 是 | 否 | 表示读特征值数据的起始位置。例如:k表示从第k个字节开始读,server端回复响应时需填写相同的offset。 |
| characteristicUuid | string | 是 | 否 | 特定特征(characteristic)的UUID,例如:00002a11-0000-1000-8000-00805f9b34fb。 | | characteristicUuid | string | 是 | 否 | 特定特征(characteristic)的UUID,例如:00002a11-0000-1000-8000-00805f9b34fb。 |
...@@ -2279,7 +2356,7 @@ let rssi = gattClient.getRssiValue().then((data) => { ...@@ -2279,7 +2356,7 @@ let rssi = gattClient.getRssiValue().then((data) => {
| 名称 | 参数类型 | 可读 | 可写 | 说明 | | 名称 | 参数类型 | 可读 | 可写 | 说明 |
| -------- | -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- | -------- |
| deviceId | string | 是 | 否 | 表示发送特征值写请求的远端设备地址,例如:"8F:8F:8E:8E:6D:6D"。 | | deviceId | string | 是 | 否 | 表示发送特征值写请求的远端设备地址,例如:"XX:XX:XX:XX:XX:XX"。 |
| transId | number | 是 | 否 | 表示写请求的传输ID,server端回复响应时需填写相同的传输ID。 | | transId | number | 是 | 否 | 表示写请求的传输ID,server端回复响应时需填写相同的传输ID。 |
| offset | number | 是 | 否 | 表示写特征值数据的起始位置。例如:k表示从第k个字节开始写,server端回复响应时需填写相同的offset。 | | offset | number | 是 | 否 | 表示写特征值数据的起始位置。例如:k表示从第k个字节开始写,server端回复响应时需填写相同的offset。 |
| descriptorUuid | string | 是 | 否 | 表示描述符(descriptor)的UUID,例如:00002902-0000-1000-8000-00805f9b34fb。 | | descriptorUuid | string | 是 | 否 | 表示描述符(descriptor)的UUID,例如:00002902-0000-1000-8000-00805f9b34fb。 |
...@@ -2293,7 +2370,7 @@ let rssi = gattClient.getRssiValue().then((data) => { ...@@ -2293,7 +2370,7 @@ let rssi = gattClient.getRssiValue().then((data) => {
| 名称 | 参数类型 | 可读 | 可写 | 说明 | | 名称 | 参数类型 | 可读 | 可写 | 说明 |
| -------- | -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- | -------- |
| deviceId | string | 是 | 否 | 表示发送描述符读请求的远端设备地址,例如:"8F:8F:8E:8E:6D:6D"。 | | deviceId | string | 是 | 否 | 表示发送描述符读请求的远端设备地址,例如:"XX:XX:XX:XX:XX:XX"。 |
| transId | number | 是 | 否 | 表示读请求的传输ID,server端回复响应时需填写相同的传输ID。 | | transId | number | 是 | 否 | 表示读请求的传输ID,server端回复响应时需填写相同的传输ID。 |
| offset | number | 是 | 否 | 表示读描述符数据的起始位置。例如:k表示从第k个字节开始读,server端回复响应时需填写相同的offset。 | | offset | number | 是 | 否 | 表示读描述符数据的起始位置。例如:k表示从第k个字节开始读,server端回复响应时需填写相同的offset。 |
| descriptorUuid | string | 是 | 否 | 表示描述符(descriptor)的UUID,例如:00002902-0000-1000-8000-00805f9b34fb。 | | descriptorUuid | string | 是 | 否 | 表示描述符(descriptor)的UUID,例如:00002902-0000-1000-8000-00805f9b34fb。 |
...@@ -2307,7 +2384,7 @@ let rssi = gattClient.getRssiValue().then((data) => { ...@@ -2307,7 +2384,7 @@ let rssi = gattClient.getRssiValue().then((data) => {
| 名称 | 参数类型 | 可读 | 可写 | 说明 | | 名称 | 参数类型 | 可读 | 可写 | 说明 |
| -------- | -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- | -------- |
| deviceId | string | 是 | 否 | 表示发送描述符写请求的远端设备地址,例如:"8F:8F:8E:8E:6D:6D"。 | | deviceId | string | 是 | 否 | 表示发送描述符写请求的远端设备地址,例如:"XX:XX:XX:XX:XX:XX"。 |
| transId | number | 是 | 否 | 表示写请求的传输ID,server端回复响应时需填写相同的传输ID。 | | transId | number | 是 | 否 | 表示写请求的传输ID,server端回复响应时需填写相同的传输ID。 |
| offset | number | 是 | 否 | 表示写描述符数据的起始位置。例如:k表示从第k个字节开始写,server端回复响应时需填写相同的offset。 | | offset | number | 是 | 否 | 表示写描述符数据的起始位置。例如:k表示从第k个字节开始写,server端回复响应时需填写相同的offset。 |
| isPrep | boolean | 是 | 否 | 表示写请求是否立即执行。 | | isPrep | boolean | 是 | 否 | 表示写请求是否立即执行。 |
...@@ -2324,7 +2401,7 @@ let rssi = gattClient.getRssiValue().then((data) => { ...@@ -2324,7 +2401,7 @@ let rssi = gattClient.getRssiValue().then((data) => {
| 名称 | 参数类型 | 可读 | 可写 | 说明 | | 名称 | 参数类型 | 可读 | 可写 | 说明 |
| -------- | -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- | -------- |
| deviceId | string | 是 | 否 | 表示远端设备地址,例如:"8F:8F:8E:8E:6D:6D"。 | | deviceId | string | 是 | 否 | 表示远端设备地址,例如:"XX:XX:XX:XX:XX:XX"。 |
| transId | number | 是 | 否 | 表示请求的传输ID,与订阅的读/写请求事件携带的ID保持一致。 | | transId | number | 是 | 否 | 表示请求的传输ID,与订阅的读/写请求事件携带的ID保持一致。 |
| status | number | 是 | 否 | 表示响应的状态,设置为0即可,表示正常。 | | status | number | 是 | 否 | 表示响应的状态,设置为0即可,表示正常。 |
| offset | number | 是 | 否 | 表示请求的读/写起始位置,与订阅的读/写请求事件携带的offset保持一致。 | | offset | number | 是 | 否 | 表示请求的读/写起始位置,与订阅的读/写请求事件携带的offset保持一致。 |
...@@ -2337,7 +2414,7 @@ let rssi = gattClient.getRssiValue().then((data) => { ...@@ -2337,7 +2414,7 @@ let rssi = gattClient.getRssiValue().then((data) => {
| 名称 | 参数类型 | 可读 | 可写 | 说明 | | 名称 | 参数类型 | 可读 | 可写 | 说明 |
| -------- | -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- | -------- |
| deviceId | string | 是 | 否 | 表示远端设备地址,例如:"8F:8F:8E:8E:6D:6D"。 | | deviceId | string | 是 | 否 | 表示远端设备地址,例如:"XX:XX:XX:XX:XX:XX"。 |
| state | [ProfileConnectionState](#ProfileConnectionState) | 是 | 是 | 表示BLE连接状态的枚举。 | | state | [ProfileConnectionState](#ProfileConnectionState) | 是 | 是 | 表示BLE连接状态的枚举。 |
...@@ -2359,7 +2436,7 @@ let rssi = gattClient.getRssiValue().then((data) => { ...@@ -2359,7 +2436,7 @@ let rssi = gattClient.getRssiValue().then((data) => {
| 名称 | 参数类型 | 可读 | 可写 | 说明 | | 名称 | 参数类型 | 可读 | 可写 | 说明 |
| -------- | -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- | -------- |
| deviceId | string | 是 | 是 | 表示过滤的BLE设备地址,例如:"8F:8F:8E:8E:6D:6D"。 | | deviceId | string | 是 | 是 | 表示过滤的BLE设备地址,例如:"XX:XX:XX:XX:XX:XX"。 |
| name | string | 是 | 是 | 表示过滤的BLE设备名。 | | name | string | 是 | 是 | 表示过滤的BLE设备名。 |
| serviceUuid | string | 是 | 是 | 表示过滤包含该UUID服务的设备,例如:00001888-0000-1000-8000-00805f9b34fb。 | | serviceUuid | string | 是 | 是 | 表示过滤包含该UUID服务的设备,例如:00001888-0000-1000-8000-00805f9b34fb。 |
...@@ -2402,7 +2479,7 @@ let rssi = gattClient.getRssiValue().then((data) => { ...@@ -2402,7 +2479,7 @@ let rssi = gattClient.getRssiValue().then((data) => {
| 名称 | 参数类型 | 可读 | 可写 | 说明 | | 名称 | 参数类型 | 可读 | 可写 | 说明 |
| -------- | -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- | -------- |
| deviceId | string | 是 | 否 | 表示扫描到的设备地址,例如:"8F:8F:8E:8E:6D:6D"。 | | deviceId | string | 是 | 否 | 表示扫描到的设备地址,例如:"XX:XX:XX:XX:XX:XX"。 |
| rssi | number | 是 | 否 | 表示扫描到的设备的rssi值。 | | rssi | number | 是 | 否 | 表示扫描到的设备的rssi值。 |
| data | ArrayBuffer | 是 | 否 | 表示扫描到的设备发送的广播包。 | | data | ArrayBuffer | 是 | 否 | 表示扫描到的设备发送的广播包。 |
...@@ -2472,3 +2549,127 @@ let rssi = gattClient.getRssiValue().then((data) => { ...@@ -2472,3 +2549,127 @@ let rssi = gattClient.getRssiValue().then((data) => {
| -------- | -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- | -------- |
| deviceId | string | 是 | 否 | 表示要配对的设备ID。 | | deviceId | string | 是 | 否 | 表示要配对的设备ID。 |
| pinCode | string | 是 | 否 | 表示要配对的密钥。 | | pinCode | string | 是 | 否 | 表示要配对的密钥。 |
## DeviceClass
描述蓝牙设备的类别。
| 名称 | 参数类型 | 可读 | 可写 | 说明 |
| -------- | -------- | -------- | -------- | -------- |
| majorClass | [MajorClass](#MajorClass) | 是 | 否 | 表示蓝牙设备主要类别的枚举。 |
| majorMinorClass | [MajorMinorClass](#MajorMinorClass) | 是 | 否 | 表示主要次要蓝牙设备类别的枚举。 |
| classOfDevice | number | 是 | 否 | 表示设备类别。 |
## MajorClass
枚举,蓝牙设备主要类别。
| 名称 | 默认值 | 说明 |
| -------- | -------- | -------- |
| MAJOR_MISC | 0x0000 | 表示杂项设备。 |
| MAJOR_COMPUTER | 0x0100 | 表示计算机设备。 |
| MAJOR_PHONE | 0x0200 | 表示手机设备。 |
| MAJOR_NETWORKING | 0x0300 | 表示网络设备。 |
| MAJOR_AUDIO_VIDEO | 0x0400 | 表示音频和视频设备。 |
| MAJOR_PERIPHERAL | 0x0500 | 表示外围设备。 |
| MAJOR_IMAGING | 0x0600 | 表示成像设备。 |
| MAJOR_WEARABLE | 0x0700 | 表示可穿戴设备。 |
| MAJOR_TOY | 0x0800 | 表示玩具设备。 |
| MAJOR_HEALTH | 0x0900 | 表示健康设备。 |
| MAJOR_UNCATEGORIZED | 0x1F00 | 表示未分类设备。 |
## MajorMinorClass
枚举,主要次要蓝牙设备类别。
| 名称 | 默认值 | 说明 |
| -------- | -------- | -------- |
| COMPUTER_UNCATEGORIZED | 0x0100 | 表示未分类计算机设备。 |
| COMPUTER_DESKTOP | 0x0104 | 表示台式计算机设备。 |
| COMPUTER_SERVER | 0x0108 | 表示服务器设备。 |
| COMPUTER_LAPTOP | 0x010C | 表示便携式计算机设备。 |
| COMPUTER_HANDHELD_PC_PDA | 0x0110 | 表示手持式计算机设备。 |
| COMPUTER_PALM_SIZE_PC_PDA | 0x0114 | 表示掌上电脑设备。 |
| COMPUTER_WEARABLE | 0x0118 | 表示可穿戴计算机设备。 |
| COMPUTER_TABLET | 0x011C | 表示平板电脑设备。 |
| PHONE_UNCATEGORIZED | 0x0200 | 表示未分类手机设备。 |
| PHONE_CELLULAR | 0x0204 | 表示便携式手机设备。 |
| PHONE_CORDLESS | 0x0208 | 表示无线电话设备。 |
| PHONE_SMART | 0x020C | 表示智能手机设备。 |
| PHONE_MODEM_OR_GATEWAY | 0x0210 | 表示调制解调器或网关手机设备。 |
| PHONE_ISDN | 0x0214 | 表示ISDN手机设备。 |
| NETWORK_FULLY_AVAILABLE | 0x0300 | 表示网络完全可用设备。 |
| NETWORK_1_TO_17_UTILIZED | 0x0320 | 表示使用网络1到17设备。 |
| NETWORK_17_TO_33_UTILIZED | 0x0340 | 表示使用网络17到33设备。 |
| NETWORK_33_TO_50_UTILIZED | 0x0360 | 表示使用网络33到50设备。 |
| NETWORK_60_TO_67_UTILIZED | 0x0380 | 表示使用网络60到67设备。 |
| NETWORK_67_TO_83_UTILIZED | 0x03A0 | 表示使用网络67到83设备。 |
| NETWORK_83_TO_99_UTILIZED | 0x03C0 | 表示使用网络83到99设备。 |
| NETWORK_NO_SERVICE | 0x03E0 | 表示网络无服务设备。
| AUDIO_VIDEO_UNCATEGORIZED | 0x0400 | 表示未分类音频视频设备。 |
| AUDIO_VIDEO_WEARABLE_HEADSET | 0x0404 | 表示可穿戴式音频视频设备。 |
| AUDIO_VIDEO_HANDSFREE | 0x0408 | 表示免提音频视频设备。 |
| AUDIO_VIDEO_MICROPHONE | 0x0410 | 表示麦克风音频视频设备。 |
| AUDIO_VIDEO_LOUDSPEAKER | 0x0414 | 表示扬声器音频视频设备。 |
| AUDIO_VIDEO_HEADPHONES | 0x0418 | 表示头戴式音频视频设备。 |
| AUDIO_VIDEO_PORTABLE_AUDIO | 0x041C | 表示便携式音频视频设备。 |
| AUDIO_VIDEO_CAR_AUDIO | 0x0420 | 表示汽车音频视频设备。 |
| AUDIO_VIDEO_SET_TOP_BOX | 0x0424 | 表示机顶盒音频视频设备。 |
| AUDIO_VIDEO_HIFI_AUDIO | 0x0428 | 表示高保真音响设备。 |
| AUDIO_VIDEO_VCR| 0x042C | 表示录像机音频视频设备。 |
| AUDIO_VIDEO_VIDEO_CAMERA | 0x0430 | 表示照相机音频视频设备。 |
| AUDIO_VIDEO_CAMCORDER | 0x0434 | 表示摄像机音频视频设备。 |
| AUDIO_VIDEO_VIDEO_MONITOR | 0x0438 | 表示监视器音频视频设备。 |
| AUDIO_VIDEO_VIDEO_DISPLAY_AND_LOUDSPEAKER | 0x043C | 表示视频显示器和扬声器设备。 |
| AUDIO_VIDEO_VIDEO_CONFERENCING | 0x0440 | 表示音频视频会议设备。 |
| AUDIO_VIDEO_VIDEO_GAMING_TOY | 0x0448 | 表示游戏玩具音频视频设备。 |
| PERIPHERAL_NON_KEYBOARD_NON_POINTING | 0x0500 | 表示非键盘非指向外围设备。 |
| PERIPHERAL_KEYBOARD | 0x0540 | 表示外设键盘设备。 |
| PERIPHERAL_POINTING_DEVICE | 0x0580 | 表示定点装置外围设备。 |
| PERIPHERAL_KEYBOARD_POINTING| 0x05C0 | 表示键盘指向外围设备。 |
| PERIPHERAL_UNCATEGORIZED | 0x0500 | 表示未分类外围设备。 |
| PERIPHERAL_JOYSTICK | 0x0504 | 表示周边操纵杆设备。 |
| PERIPHERAL_GAMEPAD | 0x0508 | 表示周边游戏板设备。 |
| PERIPHERAL_REMOTE_CONTROL | 0x05C0 | 表示远程控制外围设备。 |
| PERIPHERAL_SENSING_DEVICE | 0x0510 | 表示外围传感设备设备。 |
| PERIPHERAL_DIGITIZER_TABLET | 0x0514 | 表示外围数字化仪平板电脑设备。 |
| PERIPHERAL_CARD_READER | 0x0518 | 表示外围读卡器设备。 |
| PERIPHERAL_DIGITAL_PEN | 0x051C | 表示外设数码笔设备。 |
| PERIPHERAL_SCANNER_RFID | 0x0520 | 表示射频识别扫描仪外围设备。 |
| PERIPHERAL_GESTURAL_INPUT | 0x0522 | 表示手势输入外围设备。 |
| IMAGING_UNCATEGORIZED | 0x0600 | 表示未分类的图像设备。 |
| IMAGING_DISPLAY | 0x0610 | 表示图像显示设备。 |
| IMAGING_CAMERA | 0x0620 | 表示成像照相机设备。 |
| IMAGING_SCANNER | 0x0640 | 表示成像扫描仪设备。 |
| IMAGING_PRINTER | 0x0680 | 表示成像打印机设备。 |
| WEARABLE_UNCATEGORIZED | 0x0700 | 表示未分类的可穿戴设备。 |
| WEARABLE_WRIST_WATCH | 0x0704 | 表示可穿戴腕表设备。 |
| WEARABLE_PAGER | 0x0708 | 表示可穿戴寻呼机设备。 |
| WEARABLE_JACKET | 0x070C | 表示夹克可穿戴设备。 |
| WEARABLE_HELMET | 0x0710 | 表示可穿戴头盔设备。 |
| WEARABLE_GLASSES | 0x0714 | 表示可穿戴眼镜设备。 |
| TOY_UNCATEGORIZED | 0x0800 | 表示未分类的玩具设备。 |
| TOY_ROBOT| 0x0804 | 表示玩具机器人设备。 |
| TOY_VEHICLE | 0x0808 | 表示玩具车设备。 |
| TOY_DOLL_ACTION_FIGURE | 0x080C | 表示人形娃娃玩具设备。 |
| TOY_CONTROLLER | 0x0810 | 表示玩具控制器设备。 |
| TOY_GAME | 0x0814 | 表示玩具游戏设备。 |
| HEALTH_UNCATEGORIZED | 0x0900 | 表示未分类健康设备。 |
| HEALTH_BLOOD_PRESSURE | 0x0904 | 表示血压健康设备。 |
| HEALTH_THERMOMETER | 0x0908 | 表示温度计健康设备。 |
| HEALTH_WEIGHING | 0x090C | 表示体重健康设备。 |
| HEALTH_GLUCOSE | 0x0910 | 表示葡萄糖健康设备。 |
| HEALTH_PULSE_OXIMETER | 0x0914 | 表示脉搏血氧仪健康设备。 |
| HEALTH_PULSE_RATE | 0x0918 | 表示脉搏率健康设备。 |
| HEALTH_DATA_DISPLAY | 0x091C | 表示数据显示健康设备。 |
| HEALTH_STEP_COUNTER | 0x0920 | 表示阶梯计数器健康设备。 |
| HEALTH_BODY_COMPOSITION_ANALYZER | 0x0924 | 表示身体成分分析仪健康设备。 |
| HEALTH_PEAK_FLOW_MOITOR | 0x0928 | 表示湿度计健康设备。 |
| HEALTH_MEDICATION_MONITOR | 0x092C | 表示药物监视仪健康设备。 |
| HEALTH_KNEE_PROSTHESIS | 0x0930 | 表示膝盖假肢健康设备。 |
| HEALTH_ANKLE_PROSTHESIS | 0x0934 | 表示脚踝假肢健康设备。 |
| HEALTH_GENERIC_HEALTH_MANAGER | 0x0938 | 表示通用健康管理设备。 |
| HEALTH_PERSONAL_MOBILITY_DEVICE | 0x093C | 表示个人移动健康设备。 |
...@@ -17,7 +17,9 @@ dial\(phoneNumber: string, callback: AsyncCallback<boolean\>\): void ...@@ -17,7 +17,9 @@ dial\(phoneNumber: string, callback: AsyncCallback<boolean\>\): void
拨打电话,使用callback方式作为异步方法。 拨打电话,使用callback方式作为异步方法。
需要权限:ohos.permission.PLACE\_CALL权限,该权限为系统权限。 **需要权限**:ohos.permission.PLACE\_CALL,该权限为系统权限
**系统能力**:SystemCapability.Telephony.CallManager
**参数:** **参数:**
...@@ -41,7 +43,9 @@ dial\(phoneNumber: string, options: DialOptions, callback: AsyncCallback<boolean ...@@ -41,7 +43,9 @@ dial\(phoneNumber: string, options: DialOptions, callback: AsyncCallback<boolean
拨打电话,可设置通话参数,使用callback方式作为异步方法。 拨打电话,可设置通话参数,使用callback方式作为异步方法。
需要权限:ohos.permission.PLACE\_CALL权限,该权限为系统权限。 **需要权限**:ohos.permission.PLACE\_CALL,该权限为系统权限
**系统能力**:SystemCapability.Telephony.CallManager
**参数:** **参数:**
...@@ -68,7 +72,9 @@ dial\(phoneNumber: string, options?: DialOptions\): Promise<boolean\> ...@@ -68,7 +72,9 @@ dial\(phoneNumber: string, options?: DialOptions\): Promise<boolean\>
拨打电话,可设置通话参数,使用promise方式作为异步方法。 拨打电话,可设置通话参数,使用promise方式作为异步方法。
需要权限:ohos.permission.PLACE\_CALL权限,该权限为系统权限。 **需要权限**:ohos.permission.PLACE\_CALL,该权限为系统权限
**系统能力**:SystemCapability.Telephony.CallManager
**参数:** **参数:**
...@@ -102,6 +108,8 @@ hasCall\(callback: AsyncCallback<boolean\>\): void ...@@ -102,6 +108,8 @@ hasCall\(callback: AsyncCallback<boolean\>\): void
判断是否存在通话,使用callback方式作为异步方法。 判断是否存在通话,使用callback方式作为异步方法。
**系统能力**:SystemCapability.Telephony.CallManager
**参数:** **参数:**
| 参数 | 类型 | 必填 | 说明 | | 参数 | 类型 | 必填 | 说明 |
...@@ -123,6 +131,8 @@ hasCall\(\): Promise<boolean\> ...@@ -123,6 +131,8 @@ hasCall\(\): Promise<boolean\>
判断是否存在通话,使用Promise方式作为异步方法。 判断是否存在通话,使用Promise方式作为异步方法。
**系统能力**:SystemCapability.Telephony.CallManager
**返回值:** **返回值:**
| 类型 | 说明 | | 类型 | 说明 |
...@@ -147,6 +157,8 @@ getCallState\(callback: AsyncCallback<CallState\>\): void ...@@ -147,6 +157,8 @@ getCallState\(callback: AsyncCallback<CallState\>\): void
获取通话状态,使用callback方式作为异步方法。 获取通话状态,使用callback方式作为异步方法。
**系统能力**:SystemCapability.Telephony.CallManager
**参数:** **参数:**
| 参数 | 类型 | 必填 | 说明 | | 参数 | 类型 | 必填 | 说明 |
...@@ -168,6 +180,8 @@ getCallState\(\): Promise<CallState\> ...@@ -168,6 +180,8 @@ getCallState\(\): Promise<CallState\>
获取通话状态,使用Promise方式作为异步方法。 获取通话状态,使用Promise方式作为异步方法。
**系统能力**:SystemCapability.Telephony.CallManager
**返回值:** **返回值:**
| 类型 | 说明 | | 类型 | 说明 |
...@@ -191,6 +205,8 @@ isEmergencyPhoneNumber\(phoneNumber: string, callback: AsyncCallback<boolean\>\) ...@@ -191,6 +205,8 @@ isEmergencyPhoneNumber\(phoneNumber: string, callback: AsyncCallback<boolean\>\)
判断是否是紧急电话号码,使用callback方式作为异步方法。 判断是否是紧急电话号码,使用callback方式作为异步方法。
**系统能力**:SystemCapability.Telephony.CallManager
**参数:** **参数:**
| 参数 | 类型 | 必填 | 说明 | | 参数 | 类型 | 必填 | 说明 |
...@@ -213,6 +229,8 @@ isEmergencyPhoneNumber\(phoneNumber: string, options: EmergencyNumberOptions, ca ...@@ -213,6 +229,8 @@ isEmergencyPhoneNumber\(phoneNumber: string, options: EmergencyNumberOptions, ca
判断是否是紧急电话号码,使用callback方式作为异步方法。 判断是否是紧急电话号码,使用callback方式作为异步方法。
**系统能力**:SystemCapability.Telephony.CallManager
**参数:** **参数:**
| 参数 | 类型 | 必填 | 说明 | | 参数 | 类型 | 必填 | 说明 |
...@@ -236,6 +254,8 @@ isEmergencyPhoneNumber\(phoneNumber: string, options?: EmergencyNumberOptions\): ...@@ -236,6 +254,8 @@ isEmergencyPhoneNumber\(phoneNumber: string, options?: EmergencyNumberOptions\):
判断是否是紧急电话号码,使用promise方式作为异步方法。 判断是否是紧急电话号码,使用promise方式作为异步方法。
**系统能力**:SystemCapability.Telephony.CallManager
**参数:** **参数:**
| 参数 | 类型 | 必填 | 说明 | | 参数 | 类型 | 必填 | 说明 |
...@@ -266,6 +286,8 @@ formatPhoneNumber\(phoneNumber: string, callback: AsyncCallback<string\>\): void ...@@ -266,6 +286,8 @@ formatPhoneNumber\(phoneNumber: string, callback: AsyncCallback<string\>\): void
格式化电话号码,使用callback方式作为异步方法。 格式化电话号码,使用callback方式作为异步方法。
**系统能力**:SystemCapability.Telephony.CallManager
**参数:** **参数:**
| 参数 | 类型 | 必填 | 说明 | | 参数 | 类型 | 必填 | 说明 |
...@@ -288,6 +310,8 @@ formatPhoneNumber\(phoneNumber: string, options: NumberFormatOptions, callback: ...@@ -288,6 +310,8 @@ formatPhoneNumber\(phoneNumber: string, options: NumberFormatOptions, callback:
格式化电话号码,可设置格式化参数,使用callback方式作为异步方法。 格式化电话号码,可设置格式化参数,使用callback方式作为异步方法。
**系统能力**:SystemCapability.Telephony.CallManager
**参数:** **参数:**
| 参数 | 类型 | 必填 | 说明 | | 参数 | 类型 | 必填 | 说明 |
...@@ -313,6 +337,8 @@ formatPhoneNumber\(phoneNumber: string, options?: NumberFormatOptions\): Promise ...@@ -313,6 +337,8 @@ formatPhoneNumber\(phoneNumber: string, options?: NumberFormatOptions\): Promise
格式化电话号码,可设置格式化参数,使用promise方式作为异步方法。 格式化电话号码,可设置格式化参数,使用promise方式作为异步方法。
**系统能力**:SystemCapability.Telephony.CallManager
**参数:** **参数:**
| 参数 | 类型 | 必填 | 说明 | | 参数 | 类型 | 必填 | 说明 |
...@@ -349,6 +375,8 @@ formatPhoneNumberToE164\(phoneNumber: string, countryCode: string, callback: Asy ...@@ -349,6 +375,8 @@ formatPhoneNumberToE164\(phoneNumber: string, countryCode: string, callback: Asy
支持所有国家码。 支持所有国家码。
**系统能力**:SystemCapability.Telephony.CallManager
**参数:** **参数:**
| 参数 | 类型 | 必填 | 说明 | | 参数 | 类型 | 必填 | 说明 |
...@@ -378,6 +406,8 @@ formatPhoneNumberToE164\(phoneNumber: string, countryCode: string\): Promise<str ...@@ -378,6 +406,8 @@ formatPhoneNumberToE164\(phoneNumber: string, countryCode: string\): Promise<str
支持所有国家码。 支持所有国家码。
**系统能力**:SystemCapability.Telephony.CallManager
**参数:** **参数:**
| 参数 | 类型 | 必填 | 说明 | | 参数 | 类型 | 必填 | 说明 |
...@@ -407,6 +437,9 @@ promise.then(data => { ...@@ -407,6 +437,9 @@ promise.then(data => {
## DialOptions<a name=DialOptions></a> ## DialOptions<a name=DialOptions></a>
拨打电话的可选参数。 拨打电话的可选参数。
**系统能力**:SystemCapability.Telephony.CallManager
| 参数 | 类型 | 必填 | 说明 | | 参数 | 类型 | 必填 | 说明 |
| ------ | ------- | ---- | ------------------------------------------------------------ | | ------ | ------- | ---- | ------------------------------------------------------------ |
| extras | boolean | 否 | 根据extras的值判断是否为视频通话,默认为语音通话。<br/>- true:视频通话。<br/>- fasle:语音通话。 | | extras | boolean | 否 | 根据extras的值判断是否为视频通话,默认为语音通话。<br/>- true:视频通话。<br/>- fasle:语音通话。 |
...@@ -414,16 +447,20 @@ promise.then(data => { ...@@ -414,16 +447,20 @@ promise.then(data => {
## CallState<a name=CallState></a> ## CallState<a name=CallState></a>
通话状态码。 通话状态码。
| 变量 | 值 | 说明 | | 变量 | 值 | 说明 |
| ------------------ | ---- | ------------------------------------------------------------ | | ------------------ | ---- | ------------------------------------------------------------ |
| CALL_STATE_UNKNOWN | -1 | 无效状态,当获取呼叫状态失败时返回。 | | CALL_STATE_UNKNOWN | -1 | 无效状态,当获取呼叫状态失败时返回。<br />**系统能力**:SystemCapability.Telephony.CallManager |
| CALL_STATE_IDLE | 0 | 表示没有正在进行的呼叫。 | | CALL_STATE_IDLE | 0 | 表示没有正在进行的呼叫。<br />**系统能力**:SystemCapability.Telephony.CallManager |
| CALL_STATE_RINGING | 1 | 表示来电正在振铃或等待。 | | CALL_STATE_RINGING | 1 | 表示来电正在振铃或等待。<br />**系统能力**:SystemCapability.Telephony.CallManager |
| CALL_STATE_OFFHOOK | 2 | 表示至少有一个呼叫处于拨号、通话中或呼叫保持状态,并且没有新的来电振铃或等待。 | | CALL_STATE_OFFHOOK | 2 | 表示至少有一个呼叫处于拨号、通话中或呼叫保持状态,并且没有新的来电振铃或等待。<br />**系统能力**:SystemCapability.Telephony.CallManager |
## EmergencyNumberOptions<sup>7+</sup><a name=EmergencyNumberOptions></a> ## EmergencyNumberOptions<sup>7+</sup><a name=EmergencyNumberOptions></a>
判断是否是紧急电话号码的可选参数。 判断是否是紧急电话号码的可选参数。
**系统能力**:SystemCapability.Telephony.CallManager
| 参数 | 类型 | 必填 | 说明 | | 参数 | 类型 | 必填 | 说明 |
| ------ | ------ | ---- | ------------------------------------------ | | ------ | ------ | ---- | ------------------------------------------ |
| slotId | number | 否 | 卡槽ID:<br/>- 0:卡槽1。<br/>- 1:卡槽2。 | | slotId | number | 否 | 卡槽ID:<br/>- 0:卡槽1。<br/>- 1:卡槽2。 |
...@@ -431,6 +468,9 @@ promise.then(data => { ...@@ -431,6 +468,9 @@ promise.then(data => {
## NumberFormatOptions<sup>7+</sup><a name=NumberFormatOptions></a> ## NumberFormatOptions<sup>7+</sup><a name=NumberFormatOptions></a>
格式化号码的可选参数。 格式化号码的可选参数。
**系统能力**:SystemCapability.Telephony.CallManager
| 参数 | 类型 | 必填 | 说明 | | 参数 | 类型 | 必填 | 说明 |
| ----------- | ------ | ---- | ---------------------------------------------------------- | | ----------- | ------ | ---- | ---------------------------------------------------------- |
| countryCode | string | 否 | 国家码,支持所有国家的国家码,如:中国(CN)。默认为:CN。 | | countryCode | string | 否 | 国家码,支持所有国家的国家码,如:中国(CN)。默认为:CN。 |
\ No newline at end of file
# Configuration
- [导入模块](#导入模块)
- [属性](#属性)
> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
> 本模块首批接口从API version 8开始支持。
环境变化信息。
## 导入模块
```
import Configuration from '@ohos.application.Configuration';
```
## 属性
| 名称 | 参数类型 | 可读 | 可写 | 说明 |
| -------- | -------- | -------- | -------- | -------- |
| language | string | 是 | 是 | 表示应用程序的当前语言。 |
| colorMode | [ColorMode](js-apis-configurationconstant.md) | 是 | 是 | 表示深浅色模式,取值范围:浅色模式(COLOR_MODE_LIGHT),深色模式(COLOR_MODE_DARK)。默认为浅色。 |
| direction | Direction | 是 | 否 | 表示屏幕方向,取值范围:水平方向(DIRECTION_HORIZONTAL),垂直方向(DIRECTION_VERTICAL)。 |
| screenDensity | ScreenDensity | 是 | 否 | 表示屏幕分辨率,取值范围:SCREEN_DENSITY_SDPI(120)、SCREEN_DENSITY_MDPI(160)、SCREEN_DENSITY_LDPI(240)、SCREEN_DENSITY_XLDPI(320)、SCREEN_DENSITY_XXLDPI(480)、SCREEN_DENSITY_XXXLDPI(640)。 |
| displayId | number | 是 | 否 | 表示应用所在的displayId。 |
# ConfigurationConstant
- [导入模块](#导入模块)
- [ColorMode](#ColorMode)
- [Direction](#Direction)
- [ScreenDensity](#ScreenDensity)
> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
> 本模块首批接口从API version 8开始支持。
配置信息枚举值定义。
## 导入模块
```
import ConfigurationConstant from '@ohos.application.ConfigurationConstant';
```
## ColorMode
使用时通过ConfigurationConstant.ColorMode获取,示例:ConfigurationConstant.ColorMode.COLOR_MODE_LIGHT。
| 名称 | 值 | 说明 |
| -------- | -------- | -------- |
| COLOR_MODE_NOT_SET | -1 | 未设置颜色模式。 |
| COLOR_MODE_DARK | 0 | 深色模式。 |
| COLOR_MODE_LIGHT | 1 | 浅色模式。 |
## Direction
使用时通过ConfigurationConstant.Direction获取,示例:ConfigurationConstant.Direction.DIRECTION_VERTICAL。
| 名称 | 值 | 说明 |
| -------- | -------- | -------- |
| DIRECTION_NOT_SET | -1 | 未设置方向。 |
| DIRECTION_VERTICAL | 0 | 垂直方向。 |
| DIRECTION_HORIZONTAL | 1 | 水平方向。 |
## ScreenDensity
使用时通过ConfigurationConstant.ScreenDensity获取,示例:ConfigurationConstant.ScreenDensity.SCREEN_DENSITY_NOT_SET。
| 名称 | 值 | 说明 |
| -------- | -------- | -------- |
| SCREEN_DENSITY_NOT_SET | 0 | 未设置屏幕分辨率。 |
| SCREEN_DENSITY_SDPI | 120 | 屏幕分辨率为"sdpi"。 |
| SCREEN_DENSITY_MDPI | 160 | 屏幕分辨率为"mdpi"。 |
| SCREEN_DENSITY_LDPI | 240 | 屏幕分辨率为"ldpi"。 |
| SCREEN_DENSITY_XLDPI | 320 | 屏幕分辨率为"xldpi"。 |
| SCREEN_DENSITY_XXLDPI | 480 | 屏幕分辨率为"xxldpi"。 |
| SCREEN_DENSITY_XXXLDPI | 640 | 屏幕分辨率为"xxxldpi"。 |
...@@ -65,8 +65,8 @@ var DAHelper = featureAbility.acquireDataAbilityHelper( ...@@ -65,8 +65,8 @@ var DAHelper = featureAbility.acquireDataAbilityHelper(
); );
var mode = "rwt"; var mode = "rwt";
DAHelper.openFile( DAHelper.openFile(
"dataability:///com.example.DataAbility" "dataability:///com.example.DataAbility",
mode).then((void) => { mode).then((data) => {
console.info("==========================>openFileCallback=======================>"); console.info("==========================>openFileCallback=======================>");
}); });
``` ```
...@@ -338,7 +338,7 @@ var DAHelper = featureAbility.acquireDataAbilityHelper( ...@@ -338,7 +338,7 @@ var DAHelper = featureAbility.acquireDataAbilityHelper(
"dataability:///com.example.DataAbility" "dataability:///com.example.DataAbility"
); );
DAHelper.denormalizeUri( DAHelper.denormalizeUri(
"dataability:///com.example.DataAbility",, "dataability:///com.example.DataAbility",
(err, data) => { (err, data) => {
console.info("==========================>Called=======================>"); console.info("==========================>Called=======================>");
}); });
...@@ -398,7 +398,7 @@ var helper = featureAbility.acquireDataAbilityHelper( ...@@ -398,7 +398,7 @@ var helper = featureAbility.acquireDataAbilityHelper(
"dataability:///com.example.DataAbility" "dataability:///com.example.DataAbility"
); );
helper.notifyChange( helper.notifyChange(
"dataability:///com.example.DataAbility",, "dataability:///com.example.DataAbility",
(err) => { (err) => {
console.info("==========================>Called=======================>"); console.info("==========================>Called=======================>");
}); });
...@@ -430,7 +430,7 @@ var DAHelper = featureAbility.acquireDataAbilityHelper( ...@@ -430,7 +430,7 @@ var DAHelper = featureAbility.acquireDataAbilityHelper(
); );
DAHelper.notifyChange( DAHelper.notifyChange(
"dataability:///com.example.DataAbility", "dataability:///com.example.DataAbility",
).then((void) => { ).then(() => {
console.info("==========================>notifyChangeCallback=======================>"); console.info("==========================>notifyChangeCallback=======================>");
}); });
``` ```
...@@ -747,7 +747,7 @@ import ohos_data_ability from '@ohos.data.dataability' ...@@ -747,7 +747,7 @@ import ohos_data_ability from '@ohos.data.dataability'
var DAHelper = featureAbility.acquireDataAbilityHelper( var DAHelper = featureAbility.acquireDataAbilityHelper(
"dataability:///com.example.DataAbility" "dataability:///com.example.DataAbility"
); );
var cars=new Array({"value1"}, {"value2"}, {"value3"}, {"value4"}); var cars=new Array("value1", "value2", "value3", "value4");
let da = new ohos_data_ability.DataAbilityPredicates() let da = new ohos_data_ability.DataAbilityPredicates()
DAHelper.query( DAHelper.query(
"dataability:///com.example.DataAbility", "dataability:///com.example.DataAbility",
...@@ -787,7 +787,7 @@ import ohos_data_ability from '@ohos.data.dataability' ...@@ -787,7 +787,7 @@ import ohos_data_ability from '@ohos.data.dataability'
var DAHelper = featureAbility.acquireDataAbilityHelper( var DAHelper = featureAbility.acquireDataAbilityHelper(
"dataability:///com.example.DataAbility" "dataability:///com.example.DataAbility"
); );
var cars=new Array({"value1"}, {"value2"}, {"value3"}, {"value4"}); var cars=new Array("value1", "value2", "value3", "value4");
let da = new ohos_data_ability.DataAbilityPredicates() let da = new ohos_data_ability.DataAbilityPredicates()
DAHelper.query( DAHelper.query(
"dataability:///com.example.DataAbility", "dataability:///com.example.DataAbility",
......
...@@ -3,7 +3,6 @@ ...@@ -3,7 +3,6 @@
> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
> 本模块首批接口从API version 7开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 > 本模块首批接口从API version 7开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
## 导入模块 ## 导入模块
``` ```
...@@ -11,24 +10,19 @@ import display from '@ohos.display'; ...@@ -11,24 +10,19 @@ import display from '@ohos.display';
``` ```
## 权限列表
## DisplayState ## DisplayState
用于表示显示设备的状态。 用于表示显示设备的状态。
| 名称 | 默认值 | 说明 | | 名称 | 默认值 | 说明 |
| -------- | -------- | -------- | | -------- | -------- | -------- |
| STATE_UNKNOWN | 0 | 表示显示设备状态未知。 | | STATE_UNKNOWN | 0 | 表示显示设备状态未知。<br/>**系统能力**:SystemCapability.WindowManager.WindowManager.Core |
| STATE_OFF | 1 | 表示显示设备状态为关闭。 | | STATE_OFF | 1 | 表示显示设备状态为关闭。<br/>**系统能力**:SystemCapability.WindowManager.WindowManager.Core |
| STATE_ON | 2 | 表示显示设备状态为开启。 | | STATE_ON | 2 | 表示显示设备状态为开启。<br/>**系统能力**:SystemCapability.WindowManager.WindowManager.Core |
| STATE_DOZE | 3 | 表示显示设备为低电耗模式。 | | STATE_DOZE | 3 | 表示显示设备为低电耗模式。<br/>**系统能力**:SystemCapability.WindowManager.WindowManager.Core |
| STATE_DOZE_SUSPEND | 4 | 表示显示设备为睡眠模式,CPU为挂起状态&nbsp;。 | | STATE_DOZE_SUSPEND | 4 | 表示显示设备为睡眠模式,CPU为挂起状态&nbsp;<br/>**系统能力**:SystemCapability.WindowManager.WindowManager.Core |
| STATE_VR | 5 | 表示显示设备为VR模式。 | | STATE_VR | 5 | 表示显示设备为VR模式。<br/>**系统能力**:SystemCapability.WindowManager.WindowManager.Core |
| STATE_ON_SUSPEND | 6 | 表示显示设备为开启状态,CPU为挂起状态。 | | STATE_ON_SUSPEND | 6 | 表示显示设备为开启状态,CPU为挂起状态。<br/>**系统能力**:SystemCapability.WindowManager.WindowManager.Core |
## Display ## Display
...@@ -37,31 +31,33 @@ import display from '@ohos.display'; ...@@ -37,31 +31,33 @@ import display from '@ohos.display';
| 名称 | 参数类型 | 可读 | 可写 | 说明 | | 名称 | 参数类型 | 可读 | 可写 | 说明 |
| -------- | -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- | -------- |
| id | number | 是 | 否 | 显示设备的id号。 | | id | number | 是 | 否 | 显示设备的id号。<br/>**系统能力**:SystemCapability.WindowManager.WindowManager.Core |
| name | string | 是 | 否 | 显示设备的名称。 | | name | string | 是 | 否 | 显示设备的名称。<br/>**系统能力**:SystemCapability.WindowManager.WindowManager.Core |
| alive | boolean | 是 | 否 | 显示设备是否启用。 | | alive | boolean | 是 | 否 | 显示设备是否启用。<br/>**系统能力**:SystemCapability.WindowManager.WindowManager.Core |
| state | [DisplayState](#displaystate) | 是 | 否 | 显示设备的状态。 | | state | [DisplayState](#DisplayState) | 是 | 否 | 显示设备的状态。<br/>**系统能力**:SystemCapability.WindowManager.WindowManager.Core |
| refreshRate | number | 是 | 否 | 显示设备的刷新率。 | | refreshRate | number | 是 | 否 | 显示设备的刷新率。<br/>**系统能力**:SystemCapability.WindowManager.WindowManager.Core |
| rotation | number | 是 | 否 | 显示设备的屏幕旋转角度。 | | rotation | number | 是 | 否 | 显示设备的屏幕旋转角度。<br/>**系统能力**:SystemCapability.WindowManager.WindowManager.Core |
| width | number | 是 | 否 | 显示设备的宽度,单位为像素。 | | width | number | 是 | 否 | 显示设备的宽度,单位为像素。<br/>**系统能力**:SystemCapability.WindowManager.WindowManager.Core |
| height | number | 是 | 否 | 显示设备的高度,单位为像素。 | | height | number | 是 | 否 | 显示设备的高度,单位为像素。<br/>**系统能力**:SystemCapability.WindowManager.WindowManager.Core |
| densityDPI | number | 是 | 否 | 显示设备的屏幕密度,单位为DPI。 | | densityDPI | number | 是 | 否 | 显示设备的屏幕密度,单位为DPI。<br/>**系统能力**:SystemCapability.WindowManager.WindowManager.Core |
| densityPixels | number | 是 | 否 | 显示设备的屏幕密度,单位为像素。 | | densityPixels | number | 是 | 否 | 显示设备的屏幕密度,单位为像素。<br/>**系统能力**:SystemCapability.WindowManager.WindowManager.Core |
| scaledDensity | number | 是 | 否 | 显示设备的显示字体的缩放因子。 | | scaledDensity | number | 是 | 否 | 显示设备的显示字体的缩放因子。<br/>**系统能力**:SystemCapability.WindowManager.WindowManager.Core |
| xDPI | number | 是 | 否 | x方向中每英寸屏幕的确切物理像素值。 | | xDPI | number | 是 | 否 | x方向中每英寸屏幕的确切物理像素值。<br/>**系统能力**:SystemCapability.WindowManager.WindowManager.Core |
| yDPI | number | 是 | 否 | y方向中每英寸屏幕的确切物理像素值。 | | yDPI | number | 是 | 否 | y方向中每英寸屏幕的确切物理像素值。<br/>**系统能力**:SystemCapability.WindowManager.WindowManager.Core |
## display.getDefaultDisplay ## display.getDefaultDisplay
getDefaultDisplay(callback: AsyncCallback&lt;Display&gt;): void; getDefaultDisplay(callback: AsyncCallback&lt;Display&gt;): void
获取当前默认的display对象。 获取当前默认的display对象。
**系统能力**:SystemCapability.WindowManager.WindowManager.Core
- 参数 - 参数
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
| callback | AsyncCallback&lt;[Display](#display)&gt; | 是 | 回调返回显示设备的属性。 | | callback | AsyncCallback&lt;[Display](#Display)&gt; | 是 | 回调返回当前默认的display对象。 |
- 示例 - 示例
``` ```
...@@ -76,19 +72,47 @@ getDefaultDisplay(callback: AsyncCallback&lt;Display&gt;): void; ...@@ -76,19 +72,47 @@ getDefaultDisplay(callback: AsyncCallback&lt;Display&gt;): void;
}); });
``` ```
## display.getDefaultDisplay
getDefaultDisplay(): Promise&lt;Display&gt;
获取当前默认的display对象。
**系统能力**:SystemCapability.WindowManager.WindowManager.Core
- 返回值
| 类型 | 说明 |
| ---------------------------------- | ---------------------------------------------- |
| Promise&lt;[Display](#Display)&gt; | 以Promise形式返回结果,返回默认的display对象。 |
- 示例
```
let promise = display.getDefaultDisplay();
promise.then(() => {
console.log('getDefaultDisplay success');
}).catch((err) => {
console.log('getDefaultDisplay fail: ' + JSON.stringify(err));
});
```
## display.getAllDisplay ## display.getAllDisplay
getAllDisplay(callback: AsyncCallback&lt;Array&lt;Display&gt;&gt;): void; getAllDisplay(callback: AsyncCallback&lt;Array&lt;Display&gt;&gt;): void
获取当前所有的display对象。 获取当前所有的display对象。
**系统能力**:SystemCapability.WindowManager.WindowManager.Core
- 参数 - 参数
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | 参数名 | 类型 | 必填 | 说明 |
| callback | AsyncCallback&lt;Array&lt;[Display](#display)&gt;&gt; | 是 | 回调返回多个显示设备的属性。 | | -------- | ---------------------------------------------------- | ---- | ------------------------------- |
| callback | AsyncCallback&lt;Array&lt;[Display](Display)&gt;&gt; | 是 | 回调返回当前所有的display对象。 |
- 示例 - 示例
``` ```
display.getAllDisplay((err, data) => { display.getAllDisplay((err, data) => {
if (err) { if (err) {
...@@ -99,13 +123,39 @@ getAllDisplay(callback: AsyncCallback&lt;Array&lt;Display&gt;&gt;): void; ...@@ -99,13 +123,39 @@ getAllDisplay(callback: AsyncCallback&lt;Array&lt;Display&gt;&gt;): void;
}); });
``` ```
## display.getAllDisplay
getAllDisplay(): Promise&lt;Array&lt;Display&gt;&gt;
获取当前所有的display对象。
**系统能力**:SystemCapability.WindowManager.WindowManager.Core
- 返回值
| 类型 | 说明 |
| ----------------------------------------------- | ------------------------------------------------------- |
| Promise&lt;Array&lt;[Display](#Display)&gt;&gt; | 以Promise形式返回结果,返回包含所有Display对象的Array。 |
- 示例
```
let promise = display.getAllDisplay();
promise.then(() => {
console.log('getAllDisplay success');
}).catch((err) => {
console.log('getAllDisplay fail: ' + JSON.stringify(err));
});
```
## display.on('add'|'remove'|'change') ## display.on('add'|'remove'|'change')
on(type: 'add'|'remove'|'change', callback: Callback&lt;number&gt;): void; on(type: 'add'|'remove'|'change', callback: Callback&lt;number&gt;): void
开启监听。 开启监听。
**系统能力**:SystemCapability.WindowManager.WindowManager.Core
- 参数 - 参数
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
...@@ -124,10 +174,12 @@ on(type: 'add'|'remove'|'change', callback: Callback&lt;number&gt;): void; ...@@ -124,10 +174,12 @@ on(type: 'add'|'remove'|'change', callback: Callback&lt;number&gt;): void;
## display.off('add'|'remove'|'change') ## display.off('add'|'remove'|'change')
off(type: 'add'|'remove'|'change', callback?: Callback&lt;number&gt;): void; off(type: 'add'|'remove'|'change', callback?: Callback&lt;number&gt;): void
关闭监听。 关闭监听。
**系统能力**:SystemCapability.WindowManager.WindowManager.Core
- 参数 - 参数
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
......
# EventHub
- [使用说明](#使用说明)
- [on](#on)
- [off](#off)
- [emit](#emit)
> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
> 本模块首批接口从API 9开始支持。
事件中心。提供订阅、取消订阅、触发事件能力。
## 使用说明
​在使用eventHub的功能前,需要通过Ability实例的成员变量context获取。
```
import Ability from '@ohos.application.Ability'
export default class MainAbility extends Ability {
onForeground() {
this.context.eventHub.on("123", this.func1);
}
}
```
## on
on(event: string, callback: Function): void;
订阅指定事件。
- 参数:
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| event | string | 是 | 事件名称。 |
| callback | Function | 是 | 事件回调,事件触发后运行。 |
- 示例:
```
import Ability from '@ohos.application.Ability'
export default class MainAbility extends Ability {
onForeground() {
this.context.eventHub.on("123", this.func1);
this.context.eventHub.on("123", () => {
console.log("call anonymous func 1");
});
// 结果:
// func1 is called
// call anonymous func 1
this.context.eventHub.emit("123");
}
func1() {
console.log("func1 is called");
}
}
```
## off
off(event: string, callback?: Function): void;
取消订阅指定事件。当callback传值时,取消订阅指定的callback;未传值时,取消订阅该事件下所有callback。
- 参数:
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| event | string | 是 | 事件名称。 |
| callback | Function | 否 | 事件回调。如果不传callback,则取消订阅该事件下所有callback。 |
- 示例:
```
import Ability from '@ohos.application.Ability'
export default class MainAbility extends Ability {
onForeground() {
this.context.eventHub.on("123", this.func1);
this.context.eventHub.off("123", this.func1); //取消订阅func1
this.context.eventHub.on("123", this.func1);
this.context.eventHub.on("123", this.func2);
this.context.eventHub.off("123"); //取消订阅func1和func2
}
func1() {
console.log("func1 is called");
}
func2() {
console.log("func2 is called");
}
}
```
## emit
emit(event: string, ...args: Object[]): void;
触发指定事件。
- 参数:
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| event | string | 是 | 事件名称。 |
| ...args | Object[] | 是 | 可变参数,事件触发时,传递给回调函数的参数。 |
- 示例:
```
import Ability from '@ohos.application.Ability'
export default class MainAbility extends Ability {
onForeground() {
this.context.eventHub.on("123", this.func1);
// 结果:
// func1 is called,undefined,undefined
this.context.eventHub.emit("123");
// 结果:
// func1 is called,1,undefined
this.context.eventHub.emit("123", 1);
// 结果:
// func1 is called,1,2
this.context.eventHub.emit("123", 1, 2);
}
func1(a: string, b: string) {
console.log("func1 is called," + a + "," + b);
}
}
```
# ExtensionRunningInfo
- [使用说明](#使用说明)
- [属性](#属性)
- [bundle.ExtensionAbilityType](#bundleExtensionAbilityType)
> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
> 本模块首批接口从API 8开始支持。
Extension运行相关信息。
## 使用说明
通过abilityManager中方法获取。
```
import abilitymanager from '@ohos.application.abilityManager';
abilitymanager.getExtensionRunningInfos(upperLimit, (err,data) => {
console.log("getExtensionRunningInfos err: " + err + " data: " + JSON.stringify(data));
});
```
### 属性
| 名称 | 参数类型 | 可读 | 可写 | 说明 |
| -------- | -------- | -------- | -------- | -------- |
| extension | ElementName | 是 | 否 | Extension匹配信息。 |
| pid | number | 是 | 否 | 进程ID。 |
| uid | number | 是 | 否 | 用户ID。 |
| processName | string | 是 | 否 | 进程名称。 |
| startTime | number | 是 | 否 | Extension启动时间。 |
| clientPackage | Array&lt;String&gt; | 是 | 否 | 连接客户端包名。 |
| type | [bundle.ExtensionAbilityType](#bundle-extensionabilitytype) | 是 | 否 | Extension类型。 |
## bundle.ExtensionAbilityType
Extension类型。
| 名称 | 值 | 说明 |
| -------- | -------- | -------- |
| FORM | 0 | 表示带有form类型的扩展信息。 |
| WORK_SCHEDULER | 1 | 表示带有work&nbsp;schedule类型的扩展信息。 |
| INPUT_METHOD | 2 | 表示用输入法类型的扩展信息。 |
| SERVICE | 3 | 表示带有service类型的扩展信息。 |
| ACCESSIBILITY | 4 | 表示具有可访问性类型的扩展信息。 |
| DATA_SHARE | 5 | 表示带有datashare类型的扩展信息。 |
| FILE_SHARE | 6 | 表示带有fileshare类型的扩展信息。 |
| STATIC_SUBSCRIBER | 7 | 表示带有静态订阅者类型的扩展信息。 |
| WALLPAPER | 8 | 表示带有wallpaper类型的扩展信息。 |
| UNSPECIFIED | 9 | 表示未指定类型信息。 |
...@@ -42,14 +42,16 @@ onCreate(want: Want): formBindingData.FormBindingData ...@@ -42,14 +42,16 @@ onCreate(want: Want): formBindingData.FormBindingData
- 示例: - 示例:
``` ```
onCreate(want) { export default class MyFormExtension extends FormExtension {
console.log('FormExtension onCreate, want:' + want.abilityName); onCreate(want) {
let dataObj1 = { console.log('FormExtension onCreate, want:' + want.abilityName);
temperature:"11c", let dataObj1 = {
"time":"11:00" temperature:"11c",
}; "time":"11:00"
let obj1 = formBindingData.createFormBindingData(dataObj1); };
return obj1; let obj1 = formBindingData.createFormBindingData(dataObj1);
return obj1;
}
} }
``` ```
...@@ -68,8 +70,10 @@ onCastToNormal(formId: string): void ...@@ -68,8 +70,10 @@ onCastToNormal(formId: string): void
- 示例: - 示例:
``` ```
onCastToNormal(formId) { export default class MyFormExtension extends FormExtension {
console.log('FormExtension onCastToNormal, formId:' + formId); onCastToNormal(formId) {
console.log('FormExtension onCastToNormal, formId:' + formId);
}
} }
``` ```
...@@ -88,14 +92,16 @@ onUpdate(formId: string): void ...@@ -88,14 +92,16 @@ onUpdate(formId: string): void
- 示例: - 示例:
``` ```
onUpdate(formId) { export default class MyFormExtension extends FormExtension {
console.log('FormExtension onUpdate, formId:' + formId); onUpdate(formId) {
let obj2 = formBindingData.createFormBindingData({temperature:"22c", time:"22:00"}); console.log('FormExtension onUpdate, formId:' + formId);
this.context.updateForm(formId, obj2) let obj2 = formBindingData.createFormBindingData({temperature:"22c", time:"22:00"});
.then((data)=>{ this.context.updateForm(formId, obj2)
console.log('FormExtension context updateForm, data:' + data); .then((data)=>{
}).catch((error) => { console.log('FormExtension context updateForm, data:' + data);
console.error('Operation updateForm failed. Cause: ' + error);}); }).catch((error) => {
console.error('Operation updateForm failed. Cause: ' + error);});
}
} }
``` ```
...@@ -114,17 +120,19 @@ onVisibilityChange(newStatus: { [key: string]: number }): void ...@@ -114,17 +120,19 @@ onVisibilityChange(newStatus: { [key: string]: number }): void
- 示例: - 示例:
``` ```
onVisibilityChange(newStatus) { export default class MyFormExtension extends FormExtension {
console.log('FormExtension onVisibilityChange, newStatus:' + newStatus); onVisibilityChange(newStatus) {
let obj2 = formBindingData.createFormBindingData({temperature:"22c", time:"22:00"}); console.log('FormExtension onVisibilityChange, newStatus:' + newStatus);
let obj2 = formBindingData.createFormBindingData({temperature:"22c", time:"22:00"});
for (let key in newStatus) {
console.log('FormExtension onVisibilityChange, key:' + key + ", value=" + newStatus[key]); for (let key in newStatus) {
this.context.updateForm(key, obj2) console.log('FormExtension onVisibilityChange, key:' + key + ", value=" + newStatus[key]);
.then((data)=>{ this.context.updateForm(key, obj2)
console.log('FormExtension context updateForm, data:' + data); .then((data)=>{
}).catch((error) => { console.log('FormExtension context updateForm, data:' + data);
console.error('Operation updateForm failed. Cause: ' + error);}); }).catch((error) => {
console.error('Operation updateForm failed. Cause: ' + error);});
}
} }
} }
``` ```
...@@ -145,8 +153,10 @@ onEvent(formId: string, message: string): void ...@@ -145,8 +153,10 @@ onEvent(formId: string, message: string): void
- 示例: - 示例:
``` ```
onEvent(formId, message) { export default class MyFormExtension extends FormExtension {
console.log('FormExtension onEvent, formId:' + formId + ", message:" + message); onEvent(formId, message) {
console.log('FormExtension onEvent, formId:' + formId + ", message:" + message);
}
} }
``` ```
...@@ -165,7 +175,9 @@ onDestroy(formId: string): void ...@@ -165,7 +175,9 @@ onDestroy(formId: string): void
- 示例: - 示例:
``` ```
onDestroy(formId) { export default class MyFormExtension extends FormExtension {
console.log('FormExtension onDestroy, formId:' + formId); onDestroy(formId) {
console.log('FormExtension onDestroy, formId:' + formId);
}
} }
``` ```
\ No newline at end of file
图片处理
==========
导入模块
---------
```
import image from './@ohos.multimedia.image';
```
## PixelMap<a name="PixelMap"></a>
图像像素类,用于读取或写入图像数据以及获取图像信息。在调用PixelMap的方法前,需要先通过createPixelMap创建一个PixelMap实例。
**属性**
| 名称 | 类型 | 可读 | 可写 | 说明 |
| ---------- | ------- | ---- | ---- | ------------------------------------------------------------ |
| isEditable | boolean | 是 | 否 | 设定是否图像像素可被编辑。<br/>**系统能力:** SystemCapability.Multimedia.Image |
## PixelMap.createPixelMap
```
createPixelMap(colors: ArrayBuffer, opts: InitializetionOptions): Promise<PixelMap>
```
通过colors和opts创建pixelmap。
**系统能力:** SystemCapability.Multimedia.Image
**参数:**
| 名称 | 类型 | 必填 | 说明 |
| ------ | ----------------------------------------------- | ---- | ------------------------------------------------------------ |
| colors | ArrayBuffer | 是 | 颜色数组。 |
| opts | [InitializetionOptions](#InitializationOptions) | 是 | 创建像素的属性,包括透明度,尺寸,缩略值,像素格式和是否可编辑。 |
**返回值:**
| 类型 | 说明 |
| ----------------- | -------------- |
| Promise<PixelMap> | 返回pixelmap。 |
**示例:**
```js
image.createPixelMap(Color, opts)
.then((pixelmap) => {
expect(pixelmap !== null).assertTrue()
done()
})
```
## PixelMap.createPixelMap
```
createPixelMap(colors: ArrayBuffer, opts: InitializetionOptions) callback: AsyncCallback<PixelMap>): void
```
通过属性创建pixelmap。
**系统能力:** SystemCapability.Multimedia.Image
**参数:**
| 名称 | 类型 | 必填 | 说明 |
| -------- | ----------------------------------------------- | ---- | -------------------- |
| colors | ArrayBuffer | 是 | 颜色数组。 |
| opts | [InitializetionOptions](#InitializationOptions) | 是 | 属性。 |
| callback | AsyncCallback<PixelMap> | 是 | 回调表示成功或失败。 |
**返回值:**
| 类型 | 说明 |
| ---- | -------------- |
| void | callback返回空 |
**示例:**
```js
image.createPixelMap(Color, opts, (pixelmap) => {
expect(pixelmap !== null).assertTrue()
done()
})
```
## PixelMap.readPixelsToBuffer
```
readPixelsToBuffer(dst: ArrayBuffer): Promise<void>
```
读取图像像素数据,结果写入ArrayBuffer里,使用Promise形式返回。
**系统能力:** SystemCapability.Multimedia.Image
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ------ | ----------- | ---- | ------------------------------------------------------------ |
| dst | ArrayBuffer | 是 | 缓冲区,函数执行结束后获取的图像像素数据写入到该内存区域内。 |
**返回值:**
| 类型 | 说明 |
| :------------ | :---------------------------------------------- |
| Promise<void> | Promise实例,用于获取结果,失败时返回错误信息。 |
**示例:**
```js
pixelmap.readPixelsToBuffer(readBuffer).then(() => {
var bufferArr = new Uint8Array(readBuffer)
var res = true
for (var i = 0; i < bufferArr.length; i++) {
if (res) {
if (bufferArr[i] !== 0) {
res = false
console.info('TC_020 Success')
expect(true).assertTrue()
done()
break
}
}
}
if (res) {
console.info('TC_020 buffer is all empty')
expect(false).assertTrue()
done()
}
})
```
## PixelMap.readPixelsToBuffer
```
readPixelsToBuffer(dst: ArrayBuffer, callback: AsyncCallback<void>): void
```
读取图像像素数据,结果写入ArrayBuffer里,使用callback形式返回。
**系统能力:** SystemCapability.Multimedia.Image
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | ------------------- | ---- | ------------------------------------------------------------ |
| dst | ArrayBuffer | 是 | 缓冲区,函数执行结束后获取的图像像素数据写入到该内存区域内。 |
| callback | AsyncCallback<void> | 是 | 获取回调,失败时返回错误信息。 |
**示例:**
```js
pixelmap.readPixelsToBuffer(readBuffer, () => {
var bufferArr = new Uint8Array(readBuffer)
var res = true
for (var i = 0; i < bufferArr.length; i++) {
if (res) {
if (bufferArr[i] !== 0) {
res = false
console.info('TC_020-1 Success')
expect(true).assertTrue()
done()
break
}
}
}
if (res) {
console.info('TC_020-1 buffer is all empty')
expect(false).assertTrue()
done()
}
})
```
## PixelMap.readPixels
```
readPixels(area: PositionArea): Promise<void>
```
读取区域内的图片数据,使用Promise形式返回读取结果。
**系统能力:** SystemCapability.Multimedia.Image
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ------ | ----------------------------- | ---- | ------------------------ |
| area | [PositionArea](#PositionArea) | 是 | 区域大小,根据区域读取。 |
**返回值:**
| 类型 | 说明 |
| :------------ | :-------------------------------------------------- |
| Promise<void> | Promise实例,用于获取读取结果,失败时返回错误信息。 |
**示例:**
```js
pixelmap.readPixels(area).then((data) => {
if(data !== null){
var bufferArr = new Uint8Array(area.pixels);
var res = true;
for (var i = 0; i < bufferArr.length; i++) {
console.info('TC_021 buffer ' + bufferArr[i]);
if(res) {
if (bufferArr[i] == 0) {
res = false;
console.info('TC_021 Success');
expect(true).assertTrue();
done();
break;
}
}
}
if (res) {
console.info('TC_021 buffer is all empty');
expect(false).assertTrue()
done();
}
}
})
```
## PixelMap.readPixels
```
readPixels(area: PositionArea, callback: AsyncCallback<void>): void
```
读区域的像素。
**系统能力:** SystemCapability.Multimedia.Image
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | ----------------------------- | ---- | ------------------------------ |
| area | [PositionArea](#PositionArea) | 是 | 区域大小,根据区域读取。 |
| callback | AsyncCallback<void> | 是 | 获取回调,失败时返回错误信息。 |
**示例:**
```js
pixelmap.readPixels(area,(data) => {
if(data !== null) {
var bufferArr = new Uint8Array(area.pixels);
var res = true;
for (var i = 0; i < bufferArr.length; i++) {
console.info('TC_021-1 buffer ' + bufferArr[i]);
if(res) {
if(bufferArr[i] == 0) {
res = false;
console.info('TC_021-1 Success');
expect(true).assertTrue();
done();
break;
}
}
}
```
## PixelMap.writePixels
```
writePixels(area: PositionArea): Promise<void>
```
先创建pixelmap,将pixelmap写入指定区域内,使用Promise形式返回写入结果。
**系统能力:** SystemCapability.Multimedia.Image
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ------ | ----------------------------- | ---- | -------------------- |
| area | [PositionArea](#PositionArea) | 是 | 区域,根据区域写入。 |
**返回值:**
| 类型 | 说明 |
| :------------ | :-------------------------------------------------- |
| Promise<void> | Promise实例,用于获取写入结果,失败时返回错误信息。 |
**示例:**
```js
pixelMap.writePixels(area).then(() => {
console.log("Succeeded in writing pixels.");
}).catch((err) => {
console.error("Failed to write pixels.");
});
```
## PixelMap.writePixels
```
writePixels(area: PositionArea, callback: AsyncCallback<void>): void
```
将指定的像素信息写入指定区域内。
**系统能力:** SystemCapability.Multimedia.Image
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| --------- | ----------------------------- | ---- | ------------------------------ |
| area | [PositionArea](#PositionArea) | 是 | 区域,根据区域写入。 |
| callback: | AsyncCallback<void> | 是 | 获取回调,失败时返回错误信息。 |
**示例:**
```js
pixelmap.writePixels(area, () => {
const readArea = {
pixels: new ArrayBuffer(20),
offset: 0,
stride: 8,
region: { size: { height: 1, width: 2 }, x: 0, y: 0 },
}
})
```
## PixelMap.writeBufferToPixels
```
writeBufferToPixels(src: ArrayBuffer): Promise<void>
```
将缓冲区的内容写入像素。
**系统能力:** SystemCapability.Multimedia.Image
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ------ | ----------- | ---- | -------- |
| src | ArrayBuffer | 是 | 缓冲区。 |
**返回值:**
| 类型 | 说明 |
| ------------- | ----------------------------------------------- |
| Promise<void> | Promise实例,用于获取结果,失败时返回错误信息。 |
**示例:**
```js
pixelMap.writeBufferToPixels(colorBuffer).then(() => {
console.log("Succeeded in writing data from a buffer to a PixelMap.");
}).catch((err) => {
console.error("Failed to write data from a buffer to a PixelMap.");
});
```
## PixelMap.writeBufferToPixels
```
writeBufferToPixels(src: ArrayBuffer, callback: AsyncCallback<void>): void
```
将缓冲区的内容写入像素。
**系统能力:** SystemCapability.Multimedia.Image
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | ------------------- | ---- | ------------------------------ |
| src | ArrayBuffer | 是 | 图像像素数据。 |
| callback | AsyncCallback<void> | 是 | 获取回调,失败时返回错误信息。 |
**示例:**
```js
pixelMap.writeBufferToPixels(colorBuffer, function(err) {
if (err) {
console.error("Failed to write data from a buffer to a PixelMap.");
return;
}
console.log("Succeeded in writing data from a buffer to a PixelMap.");
});
```
## PixelMap.getImageInfo
```
getImageInfo(): Promise<ImageInfo>
```
获取图像像素信息,使用Promise形式返回获取的图像像素信息。
**系统能力:** SystemCapability.Multimedia.Image
**返回值:**
| 类型 | 说明 |
| ------------------ | ----------------------------------------------------------- |
| Promise<ImageInfo> | Promise实例,用于异步获取图像像素信息,失败时返回错误信息。 |
**示例:**
```js
pixelMap.getImageInfo().then(function(info) {
console.log("Succeeded in obtaining the image pixel map information.");
}).catch((err) => {
console.error("Failed to obtain the image pixel map information.");
});
```
## PixelMap.getImageInfo
```
getImageInfo(callback: AsyncCallback<ImageInfo>): void
```
获取图像像素信息,使用callback形式返回获取的图像像素信息。
**系统能力:** SystemCapability.Multimedia.Image
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | ------------------- | ---- | ------------------------------------------------------------ |
| callback | AsyncCallback<void> | 是 | 获取图像像素信息回调,异步返回图像像素信息,失败时返回错误信息。 |
**示例:**
```js
pixelmap.getImageInfo((imageInfo) => {
if (imageInfo !== null) {
console.info('TC_024-1 imageInfo is ready')
expect(imageInfo.size.height == 4).assertTrue()
expect(imageInfo.size.width == 6).assertTrue()
expect(imageInfo.pixelFormat == 1).assertTrue()
done()
} else {
console.info('TC_024-1 imageInfo is empty')
expect(false).assertTrue()
done()
}
})
```
## PixelMap.getBytesNumberPerRow
```
getBytesNumberPerRow(): Promise<number>
```
获取图像像素每行字节数。
**系统能力:** SystemCapability.Multimedia.Image
**返回值:**
| 类型 | 说明 |
| ------ | -------------------- |
| number | 图像像素的行字节数。 |
**示例:**
```js
pixelmap.getBytesNumberPerRow().then((num) => {
console.info('TC_025 num is ' + num)
expect(num == expectNum).assertTrue()
done()
})
```
## PixelMap.getBytesNumberPerRow
```
getBytesNumberPerRow(callback: AsyncCallback<number>): void
```
获取图像像素每行字节数。
**系统能力:** SystemCapability.Multimedia.Image
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | --------------------- | ---- | -------------------- |
| callback | AsyncCallback<number> | 是 | 回调表示成功或失败。 |
**示例:**
```js
pixelmap.getBytesNumberPerRow( num => {
console.info('TC_025-1 num is ' + num);
expect(num == expectNum).assertTrue();
done();
})
```
## PixelMap.getPixelBytesNumber
```
getPixelBytesNumber(): Promise<number>
```
获取图像像素的总字节数。
**系统能力:** SystemCapability.Multimedia.Image
**返回值:**
| 类型 | 说明 |
| ------ | -------------------- |
| number | 图像像素的总字节数。 |
**示例:**
```js
pixelmap.getPixelBytesNumber().then((num) => {
console.info('TC_026 num is ' + num)
expect(num == expectNum).assertTrue()
done()
})
```
## PixelMap.getPixelBytesNumber
```
getPixelBytesNumber(callback: AsyncCallback<number>): void
```
获取图像像素的总字节数。
**系统能力:** SystemCapability.Multimedia.Image
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | --------------------- | ---- | -------------------- |
| callback | AsyncCallback<number> | 是 | 回调表示成功或失败。 |
**示例:**
```js
pixelmap.getPixelBytesNumber((num) => {
console.info('TC_026-1 num is ' + num)
expect(num == expectNum).assertTrue()
done()
})
```
## PixelMap.release
```
release(): void;
```
释放pixelmap对象,使用Promise形式返回释放结果。
**系统能力:** SystemCapability.Multimedia.Image
**示例:**
```js
pixelmap.release()
expect(true).assertTrue()
done()
```
## [ImageSource](#ImageSource)
图片源类,用于获取图片相关信息。在调用ImageSource的方法前,需要先通过createImageSource构建一个ImageSource实例。
**属性**
| 名称 | 类型 | 可读 | 可写 | 说明 |
| ---------------- | ------------- | ---- | ---- | ------------------------------------------------------------ |
| supportedFormats | Array<string> | 是 | 否 | 支持的图片格式,包括:png,jpeg,wbmp,bmp,gif,webp,heif等。<br/>**系统能力:** SystemCapability.Multimedia.Image |
## ImageSource.createImageSource
```
createImageSource(uri: string): ImageSource
```
创建图片源。
**系统能力:** SystemCapability.Multimedia.Image
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ------ | ------ | ---- | -------- |
| uri | string | 是 | 图片路径 |
**返回值:**
| 类型 | 说明 |
| ----------- | ---------- |
| ImageSource | 返回图片源 |
**示例:**
```js
const imageSourceApi = image.createImageSource('/data/local/tmp/test.jpg')
```
## ImageSource.createImageSource
```
createImageSource(fd: number): ImageSource
```
创建图片源。
**系统能力:** SystemCapability.Multimedia.Image
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ------ | ------ | ---- | ------------------ |
| fd | number | 是 | 基于fd创建图片源。 |
**返回值:**
| 类型 | 说明 |
| ----------- | ------------ |
| ImageSource | 返回图片源。 |
**示例:**
```js
const imageSourceApi = image.createImageSource(0)
```
## ImageSource.createImageSource
```
createImageSource(data: ArrayBuffer): ImageSource
```
创建图片源。
**系统能力:** SystemCapability.Multimedia.Image
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ------ | ----------- | ---- | ------ |
| data | ArrayBuffer | 是 | 数组。 |
**返回值:**
| 类型 | 说明 |
| ----------- | ------------ |
| ImageSource | 返回图片源。 |
**示例:**
```js
const data = new ArrayBuffer(96);
const imageSourceApi = image.createImageSource(data);
```
## ImageSource.createIncrementalSource
```
createIncrementalSource(data: ArrayBuffer): ImageSource
```
创建增量图片源。
**系统能力:** SystemCapability.Multimedia.Image
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ------ | ----------- | ---- | ---- |
| data | ArrayBuffer | 是 | 数组 |
**返回值:**
| 类型 | 说明 |
| ----------- | ------------ |
| ImageSource | 返回图片源。 |
**示例:**
```js
const data = new ArrayBuffer(96);
const imageSourceApi = image.createIncrementalSource(data);
```
## ImageSource.getImageInfo
```
getImageInfo(index: number, callback: AsyncCallback<ImageInfo>): void
```
获取指定序号的图片信息,使用callback形式返回图片信息。
**系统能力:** SystemCapability.Multimedia.Image
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------------------------------------- | ---- | ----------------------------------------------- |
| index | number | 是 | 图片序号,创建图片源时的序号,不选择时默认为0。 |
| callback | AsyncCallback<[ImageInfo](#ImageInfo)> | 是 | 获取图片信息回调,异步返回图片信息对象。 |
**示例:**
```js
it('TC_046', 0, async function (done) {
const imageSourceApi = image.createImageSource('/sdcard/test.jpg');
if (imageSourceApi == null) {
console.info('TC_046 create image source failed');
expect(false).assertTrue();
done();
} else {
imageSourceApi.getImageInfo(0,(error, imageInfo) => {
console.info('TC_046 imageInfo');
expect(imageInfo !== null).assertTrue();
done();
})
}
})
```
## ImageSource.getImageInfo
```
getImageInfo(callback: AsyncCallback<ImageInfo>): void
```
获取指定序号的图片信息,使用callback形式返回图片信息。
**系统能力:** SystemCapability.Multimedia.Image
**参数:**
| 名称 | 类型 | 必填 | 说明 |
| -------- | -------------------------------------- | ---- | ---------------------------------------- |
| callback | AsyncCallback<[ImageInfo](#ImageInfo)> | 是 | 获取图片信息回调,异步返回图片信息对象。 |
**示例:**
```js
imageSourceApi.getImageInfo(imageInfo => {
console.info('TC_045 imageInfo');
expect(imageInfo !== null).assertTrue();
done();
})
```
## ImageSource.getImageInfo
```
getImageInfo(index?: number): Promise<ImageInfo>
```
获取图片信息,使用Promise形式返回图片信息。
**系统能力:** SystemCapability.Multimedia.Image
**参数:**
| 名称 | 类型 | 必填 | 说明 |
| ----- | ------ | ---- | ----------------------------------------------- |
| index | number | 否 | 图片序号,创建图片源时的序号,不选择时默认为0。 |
**返回值:**
| 类型 | 说明 |
| ----------------------- | ---------------------- |
| [ImageInfo](#ImageInfo) | 返回获取到的图片信息。 |
**示例:**
```js
imageSourceApi.getImageInfo(0)
.then(imageInfo => {
console.info('TC_047 imageInfo');
expect(imageInfo !== null).assertTrue();
done();
})
```
## ImageSource.getImageProperty
```
getImageProperty(key:string, options?: GetImagePropertyOptions): Promise<string>
```
获取图片中给定索引处图像的指定属性键的值。
**系统能力:** SystemCapability.Multimedia.Image
**参数:**
| 名称 | 类型 | 必填 | 说明 |
| ------- | --------------------------------------------------- | ---- | ------------------------------------ |
| key | string | 是 | 图片属性名。 |
| options | [GetImagePropertyOptions](#GetImagePropertyOptions) | 否 | 图片属性,包括图片序号与默认属性值。 |
**返回值:**
| 类型 | 说明 |
| --------------- | ------------------------------------------------------------ |
| Promise<string> | Promise实例,用于异步获取图片属性值,如获取失败则返回属性默认值。 |
**示例:**
```js
const w = imageSourceApi.getImageProperty("ImageWidth")
```
## ImageSource.getImageProperty
```
getImageProperty(key:string, callback: AsyncCallback<string>): void
```
获取图片中给定索引处图像的指定属性键的值,使用callback形式返回结果。
**系统能力:** SystemCapability.Multimedia.Image
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | --------------------- | ---- | ------------------------------------------------------------ |
| key | string | 是 | 图片属性名。 |
| callback | AsyncCallback<string> | 是 | 获取图片属性回调,返回图片属性值,如获取失败则返回属性默认值。 |
**示例:**
```js
const w = imageSourceApi.getImageProperty("ImageWidth",w=>{})
```
## ImageSource.getImageProperty
```
getImageProperty(key:string, options: GetImagePropertyOptions, callback: AsyncCallback<string>): void
```
获取图片指定属性键的值,callback形式返回结果。
**系统能力:** SystemCapability.Multimedia.Image
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ------- | --------------------------------------------------- | ---- | ------------------------------------ |
| key | string | 是 | 图片属性名。 |
| options | [GetImagePropertyOptions](#GetImagePropertyOptions) | 是 | 图片属性,包括图片序号与默认属性值。 |
**返回值:**
| 类型 | 说明 |
| ------ | -------------------- |
| string | 返回string类型的值。 |
**示例:**
```js
imageSourceApi.getImageProperty("ImageWidth",PropertyOptions,(w)=>{})
```
## ImageSource.modifyImageProperty
```
modifyImageProperty(key:string, value:string, options?: GetImagePropertyOptions): Promise<void>
```
修改属性的值。
**系统能力:** SystemCapability.Multimedia.Image
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ------- | --------------------------------------------------- | ---- | ------------------------------------ |
| key | string | 是 | 图片属性名。 |
| value | string | 是 | 属性值。 |
| options | [GetImagePropertyOptions](#GetImagePropertyOptions) | 是 | 图片属性,包括图片序号与默认属性值。 |
**示例:**
```js
imageSourceApi.modifyImageProperty("ImageWidth", "abc")
.then(() => {
const w = imageSourceApi.getImageProperty("ImageWidth")
console.info('w', w);
expect(w == 'abc').assertTrue();
done();
})
```
## ImageSource.modifyImageProperty
```
modifyImageProperty(key:string, value:string, callback: AsyncCallback<void>): void
```
修改属性的值,callback返回结果。
**系统能力:** SystemCapability.Multimedia.Image
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | ------------------- | ---- | ------------------------------ |
| key | string | 是 | 图片属性名。 |
| value | string | 是 | 属性值。 |
| callback | AsyncCallback<void> | 是 | 修改属性值,callback返回结果。 |
**示例:**
```js
imageSourceApi.modifyImageProperty("ImageWidth", "abc",() => {})
```
## ImageSource.modifyImageProperty
```
modifyImageProperty(key:string, value:string, options: GetImagePropertyOptions,callback: AsyncCallback<void>): void
```
修改属性的值,callback返回结果。
**系统能力:** SystemCapability.Multimedia.Image
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | --------------------------------------------------- | ---- | ------------------------------------ |
| key | string | 是 | 图片属性名。 |
| value | string | 是 | 属性值。 |
| options | [GetImagePropertyOptions](#GetImagePropertyOptions) | 是 | 图片属性,包括图片序号与默认属性值。 |
| callback | AsyncCallback<void> | 是 | 修改属性值,callback返回结果。 |
**示例:**
```js
let PropertyOptions = {
index:0,
defaultValue:'a'
imageSourceApi.modifyImageProperty("ImageWidth", "abc",PropertyOptions,() => {
};
```
## ImageSource.createPixelMap
```
createPixelMap(index: number, options: DecodingOptions, callback: AsyncCallback<PixelMap>): void
```
通过图片解码参数创建pixelmap对象,使用callback形式返回结果。
**系统能力:** SystemCapability.Multimedia.Image
**参数:**
| 名称 | 类型 | 必填 | 说明 |
| ------------- | ------------------------------------ | ---- | -------------------- |
| options | [DecodingOptions](#DecodingOptions) | 是 | 解码参数。 |
| index | number | 是 | 图片索引。 |
| AsyncCallback | AsyncCallback<[PixelMap](#PixelMap)> | 是 | 回调表示成功或失败。 |
**示例:**
```js
imageSourceApi.createPixelMap().then(pixelmap => {
console.info('TC_050-11 createPixelMap ');
expect(pixelmap !== null ).assertTrue();
done();
})
```
## ImageSource.createPixelMap
```
createPixelMap(options: DecodingOptions, callback: AsyncCallback<PixelMap>): void
```
通过图片解码参数创建pixelmap对象。
**系统能力:** SystemCapability.Multimedia.Image
**参数:**
| 名称 | 类型 | 必填 | 说明 |
| -------- | ------------------------------------ | ---- | -------------------- |
| options | [DecodingOptions](#DecodingOptions) | 是 | 解码参数。 |
| callback | AsyncCallback<[PixelMap](#PixelMap)> | 是 | 回调表示成功或失败。 |
**示例:**
```js
let decodingOptions = {
sampleSize:1,
editable: true,
desiredSize:{ width:1, height:2},
rotateDegrees:10,
desiredPixelFormat:1,
desiredRegion: { size: { height: 1, width: 2 }, x: 0, y: 0 },
};
imageSourceApi.createPixelMap(0,decodingOptions, pixelmap => {
console.info('TC_050-1 createPixelMap ');
expect(pixelmap !== null ).assertTrue();
done();
})
```
## ImageSource.createPixelMap
```
createPixelMap(opts: DecodingOptions, callback: AsyncCallback<PixelMap>): void
```
通过图片解码参数创建pixelmap对象。
**系统能力:** SystemCapability.Multimedia.Image
**参数:**
| 名称 | 类型 | 必填 | 说明 |
| -------- | ------------------------------------ | ---- | -------------------- |
| opts | [DecodingOptions](#DecodingOptions) | 是 | 解码参数。 |
| callback | AsyncCallback<[PixelMap](#PixelMap)> | 是 | 回调表示成功或失败。 |
**示例:**
```js
let decodingOptions = {
sampleSize:1,
editable: true,
desiredSize:{ width:1, height:2},
rotateDegrees:10,
desiredPixelFormat:1,
desiredRegion: { size: { height: 1, width: 2 }, x: 0, y: 0 },
index:1
};
imageSourceApi.createPixelMap(decodingOptions, pixelmap => {
console.info('TC_050-1 createPixelMap ');
expect(pixelmap !== null ).assertTrue();
done();
})
```
## ImageSource.updateData
```
updateData(data: Array<number>, isFinal: boolean, offset: number, length: number, callback: AsyncCallback<boolean>): void
```
更新增量数据。
**系统能力:** SystemCapability.Multimedia.Image
**参数:**
| 名称 | 类型 | 必填 | 说明 |
| -------- | ---------------------- | ---- | -------------------- |
| data | Array<number> | 是 | 增量数据。 |
| isFinal | boolean | 是 | 是否更新完。 |
| offset | number | 是 | 偏移量。 |
| length | number | 是 | 数组长。 |
| callback | AsyncCallback<boolean> | 是 | 回调表示成功或失败。 |
**示例:**
```js
imageSourceIncrementalSApi.updateData(array, false, 0, 10,(error,data )=> {
if(data !== undefined){
expect(data).assertTrue();
console.info('TC_053-1 success');
done();
}
```
## ImageSource.updateData
```
updateData(data: Array<number>, isFinal: boolean, offset?: number, length?: number): Promise<boolean>
```
更新增量数据。
**系统能力:** SystemCapability.Multimedia.Image
**参数:**
| 名称 | 类型 | 必填 | 说明 |
| ------- | ------------- | ---- | ------------ |
| data | Array<number> | 是 | 增量数据。 |
| isFinal | boolean | 是 | 是否更新完。 |
| offset | boolean | 否 | 偏移量。 |
| length | number | 否 | 数组长。 |
**示例:**
```js
imageSourceIncrementalSApi.updateData(array, false, 0, 10).then(data => {
expect(data).assertTrue();
console.info('TC_053 success');
done();
})
```
## ImageSource.updateData
```
updateData(data: Array<number>, isFinal: boolean, callback: AsyncCallback<boolean>): void
```
更新增量数据。
**系统能力:** SystemCapability.Multimedia.Image
**参数:**
| 名称 | 类型 | 必填 | 说明 |
| -------- | ---------------------- | ---- | -------------------- |
| data | Array<number> | 是 | 增量数据。 |
| isFinal | boolean | 是 | 是否更新完。 |
| callback | AsyncCallback<boolean> | 是 | 回调表示成功或失败。 |
**示例:**
```js
imageSourceIncrementalSApi.updateData(array, false,(error,data) => {
if(data !== undefined){
expect(data).assertTrue();
console.info('TC_053-2 success');
done();
}
```
## ImageSource.release
```
release(callback: AsyncCallback<void>): void
```
释放图片源。
**系统能力:** SystemCapability.Multimedia.Image
**参数:**
| 名称 | 类型 | 必填 | 说明 |
| -------- | ------------------- | ---- | ---------------------------------- |
| callback | AsyncCallback<void> | 是 | 资源释放回调,失败时返回错误信息。 |
**示例:**
```js
imageSourceApi.release(() => {
console.info('TC_044-1 Success');
expect(true).assertTrue();
done();
})
}
```
## ImageSource.release
```
release(): Promise<void>
```
释放图片源。
**系统能力:** SystemCapability.Multimedia.Image
**示例:**
```js
imageSourceApi.release(() => {
console.info('TC_044-1 Success');
expect(true).assertTrue();
done();
})
```
## ImagePacker
图片打包器类,用于图片压缩和打包。在调用ImagePacker的方法前,需要先通过createImagePacker构建一个ImagePacker实例。
**属性**
| 名称 | 类型 | 可读 | 可写 | 说明 |
| ---------------- | ------------- | ---- | ---- | ------------------------------------------------------------ |
| supportedFormats | Array<string> | 是 | 否 | 图片打包支持的格式,jpg。<br/>**系统能力:** SystemCapability.Multimedia.Image |
## ImagePacker.createImagePacker
```
createImagePacker(): ImagePacker
```
创建imagepacker实例。
**系统能力:** SystemCapability.Multimedia.Image
**返回值:**
| 类型 | 说明 |
| ----------- | ----------------- |
| ImagePacker | 返回ImagePacker。 |
**示例:**
```js
const imagePackerApi = image.createImagePacker();
```
## ImagePacker.packing
```
packing(source: ImageSource, option: PackingOption, callback: AsyncCallback<Array<number>>): void
```
图片压缩或重新打包,使用callback形式返回结果。
**系统能力:** SystemCapability.Multimedia.Image
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | ------------------------------- | ---- | ---------------------------------- |
| source | [ImageSource](#ImageSource) | 是 | 打包的图片源。 |
| option | [PackingOption](#PackingOption) | 是 | 设置打包参数。 |
| callback | AsyncCallback<Array<number>> | 是 | 获取图片打包回调,返回打包后数据。 |
**示例:**
```js
let packOpts = { format:["image/jpeg"], quality:98 }
imagePackerApi.packing(imageSourceApi, packOpts, data => {
console.info('TC_062-1 finished');
expect(data !== null).assertTrue();
done();
})
```
## ImagePacker.packing
```
packing(source: ImageSource, option: PackingOption): Promise<Array<number>>
```
图片压缩或重新打包,使用promise形式返回结果。
**系统能力:** SystemCapability.Multimedia.Image
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ------ | ------------------------------- | ---- | -------------- |
| source | [ImageSource](#ImageSource) | 是 | 打包的图片源。 |
| option | [PackingOption](#PackingOption) | 是 | 设置打包参数。 |
**返回值:**
| 类型 | 说明 |
| :------------------- | :-------------------------------------------- |
| Promise<ArrayBuffer> | Promise实例,用于异步获取压缩或打包后的数据。 |
**示例:**
```js
let packOpts = { format:["image/jpeg"], quality:98 }
imagePackerApi.packing(imageSourceApi, packOpts)
.then( data => {
console.info('TC_062 finished');
expect(data !== null).assertTrue();
done();
})
```
## ImagePacker.release
```
release(callback: AsyncCallback<void>): void
```
释放packer对象。
**系统能力:** SystemCapability.Multimedia.Image
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | ------------------- | ---- | ---------------------- |
| callback | AsyncCallback<void> | 是 | 回调表示成功还是失败。 |
**示例:**
```js
imagePackerApi.release(()=>{
console.info('TC_063-1 release');
expect(true).assertTrue();
done();
```
## ImagePacker.release
```
release(): Promise<void>
```
释放packer对象。
**系统能力:** SystemCapability.Multimedia.Image
**示例:**
```js
imagePackerApi.release();
console.info('TC_063 release');
expect(true).assertTrue();
done();
```
## PositionArea<a name="PositionArea"></a>
**属性:**
| 名称 | 类型 | 可读 | 可写 | 说明 |
| ------ | ----------------- | ---- | ---- | ------------------------------------------------------------ |
| pixels | ArrayBuffer | 是 | 否 | 像素。<br>**系统能力:** SystemCapability.Multimedia.Image |
| offset | number | 是 | 否 | 偏移量。<br/>**系统能力:** SystemCapability.Multimedia.Image |
| stride | number | 是 | 否 | 像素间距。<br/>**系统能力:** SystemCapability.Multimedia.Image |
| region | [Region](#Region) | 是 | 否 | 区域,按照区域读写。<br/>**系统能力:** SystemCapability.Multimedia.Image |
## **ImageInfo<a name="ImageInfo"></a>**
**属性:**
| 名称 | 类型 | 可读 | 可写 | 说明 |
| ----------- | --------------------------------- | ---- | ---- | ------------------------------------------------------------ |
| size | [Size](#Size) | 是 | 是 | 图片大小。<br/>**系统能力:** SystemCapability.Multimedia.Image |
| pixelFormat | [PixelMapFormat](#PixelMapFormat) | 是 | 是 | 图片格式。<br/>**系统能力:** SystemCapability.Multimedia.Image |
| colorSpace | [ColorSpace](#ColorSpace) | 是 | 是 | 色域。<br/>**系统能力:** SystemCapability.Multimedia.Image |
| alphaType | [AlphaType](#AlphaType) | 是 | 是 | 透明度。<br/>**系统能力:** SystemCapability.Multimedia.Image |
## Size<a name="Size"></a>
**属性:**
| 名称 | 类型 | 可读 | 可写 | 说明 |
| ------ | ------ | ---- | ---- | ------------------------------------------------------------ |
| height | number | 是 | 是 | 输出图片的高。<br/>**系统能力:** SystemCapability.Multimedia.Image |
| width | number | 是 | 是 | 输出图片的宽。<br/>**系统能力:** SystemCapability.Multimedia.Image |
## PixelMapFormat<a name="PixelMapFormat"></a>
枚举,像素格式。
| 名称 | 默认值 | 描述 |
| --------- | ------ | ------------------------------------------------------------ |
| UNKNOWN | 0 | 未知格式。<br/>**系统能力:** SystemCapability.Multimedia.Image |
| ARGB_8888 | 1 | 格式为ARGB_8888。<br/>**系统能力:** SystemCapability.Multimedia.Image |
| RGB_565 | 2 | 格式为RGB_565。<br/>**系统能力:** SystemCapability.Multimedia.Image |
## ColorSpace<a name="ColorSpace"></a>
枚举,色块。
| 名称 | 默认值 | 描述 |
| -------------------- | ------ | ------------------------------------------------------------ |
| UNKNOWN | 0 | 色块基于unknown color space。<br/>**系统能力:** SystemCapability.Multimedia.Image |
| DISPLAY_P3 | 1 | 色块基于 SMPTE RP 431-2-2007 and IEC 61966-2.1:199。<br/>**系统能力:** SystemCapability.Multimedia.Image |
| SRGB | 2 | 色块基于IEC 61966-2.1:1999。<br/>**系统能力:** SystemCapability.Multimedia.Image |
| LINEAR_SRGB | 3 | 色块基于the IEC 61966-2.1:1999。<br/>**系统能力:** SystemCapability.Multimedia.Image |
| EXTENDED_SRGB | 4 | 色块基于IEC 61966-2-2:2003。<br/>**系统能力:** SystemCapability.Multimedia.Image |
| LINEAR_EXTENDED_SRGB | 5 | 色块基于IEC 61966-2-2:2003。<br/>**系统能力:** SystemCapability.Multimedia.Image |
| GENERIC_XYZ | 6 | 色块基于D50。<br/>**系统能力:** SystemCapability.Multimedia.Image |
| GENERIC_LAB | 7 | 色块基于 CIE XYZ D50。<br/>**系统能力:** SystemCapability.Multimedia.Image |
| ACES | 8 | 色块基于SMPTE ST 2065-1:2012。<br/>**系统能力:** SystemCapability.Multimedia.Image |
| ACES_CG | 9 | 色块基于Academy S-2014-004。<br/>**系统能力:** SystemCapability.Multimedia.Image |
| ADOBE_RGB_1998 | 10 | 色块基于 Adobe RGB。<br/>**系统能力:** SystemCapability.Multimedia.Image |
| DCI_P3 | 11 | 色块基于SMPTE RP 431-2-2007。<br/>**系统能力:** SystemCapability.Multimedia.Image |
| ITU_709 | 12 | 色块基于Rec.ITU-R BT.709-5。<br/>**系统能力:** SystemCapability.Multimedia.Image |
| ITU_2020 | 13 | 色块基于Rec.ITU-R BT.2020-1。<br/>**系统能力:** SystemCapability.Multimedia.Image |
| ROMM_RGB | 14 | 色块基于ISO 22028-2:2013。<br/>**系统能力:** SystemCapability.Multimedia.Image |
| NTSC_1953 | 15 | 色块基于NTSC 1953 standard。<br/>**系统能力:** SystemCapability.Multimedia.Image |
| SMPTE_C | 16 | 色块基于 SMPTE C。<br/>**系统能力:** SystemCapability.Multimedia.Image |
## AlphaType<a name="AlphaType"></a>
枚举,透明度。
| 名称 | 默认值 | 描述 |
| -------- | ------ | ------------------------------------------------------------ |
| UNKNOWN | 0 | 未知透明度。<br/>**系统能力:** SystemCapability.Multimedia.Image |
| OPAQUE | 1 | 没有alpha或图片全透明。<br/>**系统能力:** SystemCapability.Multimedia.Image |
| PREMUL | 2 | RGB前乘alpha。<br/>**系统能力:** SystemCapability.Multimedia.Image |
| UNPREMUL | 3 | RGB不前乘alpha。<br/>**系统能力:** SystemCapability.Multimedia.Image |
## ScaleMode<a name="ScaleMode"></a>
枚举,缩略值。
| 名称 | 默认值 | 描述 |
| --------------- | ------ | ------------------------------------------------------------ |
| CENTER_CROP | 1 | 缩放图像以填充目标图像区域并居中裁剪区域外的效果。<br/>**系统能力:** SystemCapability.Multimedia.Image |
| FIT_TARGET_SIZE | 2 | 图像适合目标尺寸的效果。<br/>**系统能力:** SystemCapability.Multimedia.Image |
## InitializationOptions<a name="InitializationOptions"></a>
**属性:**
| 名称 | 类型 | 可读 | 可写 | 说明 |
| ----------- | --------------------------------- | ---- | ---- | ------------------------------------------------------------ |
| alphaType | [AlphaType](#AlphaType) | 是 | 是 | 透明度。<br/>**系统能力:** SystemCapability.Multimedia.Image |
| editable | boolean | 是 | 是 | 是否可编辑。<br/>**系统能力:** SystemCapability.Multimedia.Image |
| pixelFormat | [PixelMapFormat](#PixelMapFormat) | 是 | 是 | 像素格式。<br/>**系统能力:** SystemCapability.Multimedia.Image |
| scalemode | [ScaleMode](#ScaleMode) | 是 | 是 | 缩略值。<br/>**系统能力:** SystemCapability.Multimedia.Image |
| size | [Size](#Size) | 是 | 是 | 创建图片大小。<br/>**系统能力:** SystemCapability.Multimedia.Image |
## DecodingOptions<a name="DecodingOptions"></a>
解码设置选项。
**属性:**
| 名称 | 类型 | 可读 | 可写 | 说明 |
| ------------------ | --------------------------------- | ---- | ---- | ------------------------------------------------------------ |
| sampleSize | number | 是 | 是 | 缩略图采样大小。<br/>**系统能力:** SystemCapability.Multimedia.Image |
| rotateDegrees | number | 是 | 是 | 旋转角度。<br/>**系统能力:** SystemCapability.Multimedia.Image |
| editable | boolean | 是 | 是 | 是否可编辑。<br/>**系统能力:** SystemCapability.Multimedia.Image |
| desiredSize | [Size](#Size) | 是 | 是 | 期望输出大小。<br/>**系统能力:** SystemCapability.Multimedia.Image |
| desiredRegion | [Region](#Region) | 是 | 是 | 解码区域。<br/>**系统能力:** SystemCapability.Multimedia.Image |
| desiredPixelFormat | [PixelMapFormat](#PixelMapFormat) | 是 | 是 | 解码的像素格式。<br/>**系统能力:** SystemCapability.Multimedia.Image |
| reusedPixelMap | [PixelMap](#PixelMap) | 是 | 是 | 将当前buffer地址给新创建的pixelmap。<br/>**系统能力:** SystemCapability.Multimedia.Image |
## Region<a name="Region"></a>
**属性:**
| 名称 | 类型 | 可读 | 可写 | 说明 |
| ---- | ------------- | ---- | ---- | ------------------------------------------------------------ |
| size | [Size](#Size) | 是 | 是 | 区域大小。<br/>**系统能力:** SystemCapability.Multimedia.Image |
| x | number | 是 | 是 | 区域坐标。<br/>**系统能力:** SystemCapability.Multimedia.Image |
| y | number | 是 | 是 | 区域坐标。<br/>**系统能力:** SystemCapability.Multimedia.Image |
## PackingOption<a name="PackingOption"></a>
**属性:**
| 名称 | 类型 | 可读 | 可写 | 说明 |
| ------- | ------ | ---- | ---- | ------------------------------------------------------------ |
| format | string | 是 | 是 | 目标格式。<br/>**系统能力:** SystemCapability.Multimedia.Image |
| quality | number | 是 | 是 | 目标图片质量。<br/>**系统能力:** SystemCapability.Multimedia.Image |
## GetImagePropertyOptions<a name="GetImagePropertyOptions"></a>
**属性:**
| 名称 | 类型 | 可读 | 可写 | 说明 |
| ------------ | ------ | ---- | ---- | ---------- |
| index | number | 是 | 是 | 图片序号。<br/>**系统能力:** SystemCapability.Multimedia.Image |
| defaultValue | string | 是 | 是 | 默认属性值<br/>**系统能力:** SystemCapability.Multimedia.Image |
-----
...@@ -1757,9 +1757,13 @@ audioRecorder.prepare(); // prepare不设置参数,触发'error' ...@@ -1757,9 +1757,13 @@ audioRecorder.prepare(); // prepare不设置参数,触发'error'
表示音频编码格式的枚举。 表示音频编码格式的枚举。
| 名称 | 默认值 | 说明 | | 名称 | 默认值 | 说明 |
| ------ | ------ | ------------------------------------------------------------ | | ------- | ------ | ------------------------------------------------------------ |
| AAC_LC | 3 | AAC-LC(Advanced&nbsp;Audio&nbsp;Coding&nbsp;Low&nbsp;Complexity)编码格式。 | | DEFAULT | 0 | Default audio encoding format is AMR_NB。本接口在OpenHarmony 3.1 Release版本仅为接口定义,暂不支持使用。接口将在OpenHarmony 3.1 MR版本中提供使用支持。<br/>**系统能力:**SystemCapability.Multimedia.Media.AudioRecorder |
| AMR_NB | 1 | AMR-NB(Adaptive Multi Rate-Narrow Band Speech Codec) 编码格式。本接口在OpenHarmony 3.1 Release版本仅为接口定义,暂不支持使用。接口将在OpenHarmony 3.1 MR版本中提供使用支持。<br/>**系统能力:**SystemCapability.Multimedia.Media.AudioRecorder |
| AMR_WB | 2 | AMR-WB(Adaptive Multi Rate-Wide Band Speech Codec) 编码格式。本接口在OpenHarmony 3.1 Release版本仅为接口定义,暂不支持使用。接口将在OpenHarmony 3.1 MR版本中提供使用支持。<br/>**系统能力:**SystemCapability.Multimedia.Media.AudioRecorder |
| AAC_LC | 3 | AAC-LC(Advanced&nbsp;Audio&nbsp;Coding&nbsp;Low&nbsp;Complexity)编码格式。<br/>**系统能力:**SystemCapability.Multimedia.Media.AudioRecorder |
| HE_AAC | 4 | HE_AAC(High-Efficiency Advanced&nbsp;Audio&nbsp;Coding)编码格式。本接口在OpenHarmony 3.1 Release版本仅为接口定义,暂不支持使用。接口将在OpenHarmony 3.1 MR版本中提供使用支持。<br/>**系统能力:**SystemCapability.Multimedia.Media.AudioRecorder |
## AudioOutputFormat ## AudioOutputFormat
...@@ -1768,8 +1772,11 @@ audioRecorder.prepare(); // prepare不设置参数,触发'error' ...@@ -1768,8 +1772,11 @@ audioRecorder.prepare(); // prepare不设置参数,触发'error'
| 名称 | 默认值 | 说明 | | 名称 | 默认值 | 说明 |
| -------- | ------ | ------------------------------------------------------------ | | -------- | ------ | ------------------------------------------------------------ |
| MPEG_4 | 2 | 封装为MPEG-4格式。 | | DEFAULT | 0 | 默认封装格式为MPEG-4。本接口在OpenHarmony 3.1 Release版本仅为接口定义,暂不支持使用。接口将在OpenHarmony 3.1 MR版本中提供使用支持。<br/>**系统能力:**SystemCapability.Multimedia.Media.AudioRecorder |
| AAC_ADTS | 6 | 封装为ADTS(Audio&nbsp;Data&nbsp;Transport&nbsp;Stream)格式,是AAC音频的传输流格式。 | | MPEG_4 | 2 | 封装为MPEG-4格式。<br/>**系统能力:**SystemCapability.Multimedia.Media.AudioRecorder |
| AMR_NB | 3 | 封装为AMR_NB格式。本接口在OpenHarmony 3.1 Release版本仅为接口定义,暂不支持使用。接口将在OpenHarmony 3.1 MR版本中提供使用支持。<br/>**系统能力:**SystemCapability.Multimedia.Media.AudioRecorder |
| AMR_WB | 4 | 封装为AMR_WB格式。本接口在OpenHarmony 3.1 Release版本仅为接口定义,暂不支持使用。接口将在OpenHarmony 3.1 MR版本中提供使用支持。<br/>**系统能力:**SystemCapability.Multimedia.Media.AudioRecorder |
| AAC_ADTS | 6 | 封装为ADTS(Audio&nbsp;Data&nbsp;Transport&nbsp;Stream)格式,是AAC音频的传输流格式。<br/>**系统能力:**SystemCapability.Multimedia.Media.AudioRecorder |
## VideoRecorder<sup>8+</sup> ## VideoRecorder<sup>8+</sup>
......
...@@ -41,7 +41,7 @@ function publishCallback(err) { ...@@ -41,7 +41,7 @@ function publishCallback(err) {
var notificationRequest = { var notificationRequest = {
id: 1, id: 1,
content: { content: {
contentType: notify.ContentType.NOTIFICATION_CONTENT_BASIC_TEXT, contentType: Notification.ContentType.NOTIFICATION_CONTENT_BASIC_TEXT,
normal: { normal: {
title: "test_title", title: "test_title",
text: "test_text", text: "test_text",
...@@ -71,7 +71,7 @@ Notification.publish(notificationRequest, publishCallback) ...@@ -71,7 +71,7 @@ Notification.publish(notificationRequest, publishCallback)
var notificationRequest = { var notificationRequest = {
notificationId: 1, notificationId: 1,
content: { content: {
contentType: notify.ContentType.NOTIFICATION_CONTENT_BASIC_TEXT, contentType: Notification.ContentType.NOTIFICATION_CONTENT_BASIC_TEXT,
normal: { normal: {
title: "test_title", title: "test_title",
text: "test_text", text: "test_text",
...@@ -79,7 +79,7 @@ var notificationRequest = { ...@@ -79,7 +79,7 @@ var notificationRequest = {
} }
} }
} }
Notification.publish(notificationRequest).then((void) => { Notification.publish(notificationRequest).then(() => {
console.info("==========================>publishCallback=======================>"); console.info("==========================>publishCallback=======================>");
}); });
...@@ -137,7 +137,7 @@ Notification.cancel(0, "label", cancelCallback) ...@@ -137,7 +137,7 @@ Notification.cancel(0, "label", cancelCallback)
- 示例 - 示例
```js ```js
Notification.cancel(0).then((void) => { Notification.cancel(0).then(() => {
console.info("==========================>cancelCallback=======================>"); console.info("==========================>cancelCallback=======================>");
}); });
``` ```
...@@ -193,10 +193,10 @@ Notification.cancel(0, cancelCallback) ...@@ -193,10 +193,10 @@ Notification.cancel(0, cancelCallback)
```js ```js
//cancel回调 //cancel回调
function cancelAllback(err) { function cancelAllCallback(err) {
console.info("==========================>cancelAllback=======================>"); console.info("==========================>cancelAllCallback=======================>");
} }
Notification.cancelAll(cancelCallback) Notification.cancelAll(cancelAllCallback)
``` ```
...@@ -218,8 +218,8 @@ Notification.cancelAll(cancelCallback) ...@@ -218,8 +218,8 @@ Notification.cancelAll(cancelCallback)
- 示例 - 示例
```js ```js
Notification.cancelAll().then((void) => { Notification.cancelAll().then(() => {
console.info("==========================>cancelAllback=======================>"); console.info("==========================>cancelAllCallback=======================>");
}); });
``` ```
...@@ -281,7 +281,7 @@ Notification.addSlot(notificationSlot, addSlotCallBack) ...@@ -281,7 +281,7 @@ Notification.addSlot(notificationSlot, addSlotCallBack)
var notificationSlot = { var notificationSlot = {
type: Notification.SlotType.SOCIAL_COMMUNICATION type: Notification.SlotType.SOCIAL_COMMUNICATION
} }
Notification.addSlot(notificationSlot).then((void) => { Notification.addSlot(notificationSlot).then(() => {
console.info("==========================>addSlotCallback=======================>"); console.info("==========================>addSlotCallback=======================>");
}); });
``` ```
...@@ -336,7 +336,7 @@ Notification.addSlot(Notification.SlotType.SOCIAL_COMMUNICATION, addSlotCallBack ...@@ -336,7 +336,7 @@ Notification.addSlot(Notification.SlotType.SOCIAL_COMMUNICATION, addSlotCallBack
- 示例 - 示例
```js ```js
Notification.addSlot(Notification.SlotType.SOCIAL_COMMUNICATION).then((void) => { Notification.addSlot(Notification.SlotType.SOCIAL_COMMUNICATION).then(() => {
console.info("==========================>addSlotCallback=======================>"); console.info("==========================>addSlotCallback=======================>");
}); });
``` ```
...@@ -407,7 +407,7 @@ var notificationSlot = { ...@@ -407,7 +407,7 @@ var notificationSlot = {
var notificationSlotArray = new Array(); var notificationSlotArray = new Array();
notificationSlotArray[0] = notificationSlot; notificationSlotArray[0] = notificationSlot;
Notification.addSlots(notificationSlotArray).then((void) => { Notification.addSlots(notificationSlotArray).then(() => {
console.info("==========================>addSlotCallback=======================>"); console.info("==========================>addSlotCallback=======================>");
}); });
``` ```
...@@ -573,7 +573,7 @@ Notification.removeSlot(slotType,removeSlotCallback) ...@@ -573,7 +573,7 @@ Notification.removeSlot(slotType,removeSlotCallback)
```js ```js
var slotType = Notification.SlotType.SOCIAL_COMMUNICATION; var slotType = Notification.SlotType.SOCIAL_COMMUNICATION;
Notification.removeSlot(slotType).then((void) => { Notification.removeSlot(slotType).then(() => {
console.info("==========================>removeSlotCallback=======================>"); console.info("==========================>removeSlotCallback=======================>");
}); });
``` ```
...@@ -624,7 +624,7 @@ Notification.removeAllSlots(removeAllCallBack) ...@@ -624,7 +624,7 @@ Notification.removeAllSlots(removeAllCallBack)
- 示例 - 示例
```js ```js
Notification.removeAllSlots().then((void) => { Notification.removeAllSlots().then(() => {
console.info("==========================>removeAllCallBack=======================>"); console.info("==========================>removeAllCallBack=======================>");
}); });
``` ```
...@@ -730,7 +730,7 @@ function onConsumeCallback(err, data) { ...@@ -730,7 +730,7 @@ function onConsumeCallback(err, data) {
var subscriber = { var subscriber = {
onConsume: onConsumeCallback onConsume: onConsumeCallback
}; };
Notification.subscribe(subscriber).then((void) => { Notification.subscribe(subscriber).then(() => {
console.info("==========================>subscribeCallback=======================>"); console.info("==========================>subscribeCallback=======================>");
}); });
``` ```
...@@ -796,7 +796,7 @@ function onConsumeCallback(err, data) { ...@@ -796,7 +796,7 @@ function onConsumeCallback(err, data) {
var subscriber = { var subscriber = {
onConsume: onConsumeCallback onConsume: onConsumeCallback
}; };
Notification.unsubscribe(subscriber).then((void) => { Notification.unsubscribe(subscriber).then(() => {
console.info("==========================>unsubscribeCallback=======================>"); console.info("==========================>unsubscribeCallback=======================>");
}); });
``` ```
...@@ -828,7 +828,7 @@ function enableNotificationCallback(err) { ...@@ -828,7 +828,7 @@ function enableNotificationCallback(err) {
console.info("==========================>enableNotificationCallback=======================>"); console.info("==========================>enableNotificationCallback=======================>");
} }
var bundle = { var bundle = {
bundle: "bundleName1"; bundle: "bundleName1",
} }
Notification.enableNotification(bundle, false, enableNotificationCallback); Notification.enableNotification(bundle, false, enableNotificationCallback);
``` ```
...@@ -856,9 +856,9 @@ Notification.enableNotification(bundle, false, enableNotificationCallback); ...@@ -856,9 +856,9 @@ Notification.enableNotification(bundle, false, enableNotificationCallback);
```js ```js
var bundle = { var bundle = {
bundle: "bundleName1"; bundle: "bundleName1",
} }
Notification.enableNotification(bundle, false).then((void) => { Notification.enableNotification(bundle, false).then(() => {
console.info("==========================>enableNotificationCallback=======================>"); console.info("==========================>enableNotificationCallback=======================>");
}); });
``` ```
...@@ -889,7 +889,7 @@ function isNotificationEnabledCallback(err, data) { ...@@ -889,7 +889,7 @@ function isNotificationEnabledCallback(err, data) {
console.info("==========================>isNotificationEnabledCallback=======================>"); console.info("==========================>isNotificationEnabledCallback=======================>");
} }
var bundle = { var bundle = {
bundle: "bundleName1"; bundle: "bundleName1",
} }
Notification.isNotificationEnabled(bundle, isNotificationEnabledCallback); Notification.isNotificationEnabled(bundle, isNotificationEnabledCallback);
``` ```
...@@ -916,7 +916,7 @@ Notification.isNotificationEnabled(bundle, isNotificationEnabledCallback); ...@@ -916,7 +916,7 @@ Notification.isNotificationEnabled(bundle, isNotificationEnabledCallback);
```js ```js
var bundle = { var bundle = {
bundle: "bundleName1"; bundle: "bundleName1",
} }
Notification.isNotificationEnabled(bundle).then((data) => { Notification.isNotificationEnabled(bundle).then((data) => {
console.info("==========================>isNotificationEnabledCallback=======================>"); console.info("==========================>isNotificationEnabledCallback=======================>");
...@@ -1004,7 +1004,7 @@ function displayBadgeCallback(err) { ...@@ -1004,7 +1004,7 @@ function displayBadgeCallback(err) {
console.info("==========================>displayBadgeCallback=======================>"); console.info("==========================>displayBadgeCallback=======================>");
} }
var bundle = { var bundle = {
bundle: "bundleName1"; bundle: "bundleName1",
} }
Notification.displayBadge(bundle, false, displayBadgeCallback); Notification.displayBadge(bundle, false, displayBadgeCallback);
``` ```
...@@ -1032,9 +1032,9 @@ Notification.displayBadge(bundle, false, displayBadgeCallback); ...@@ -1032,9 +1032,9 @@ Notification.displayBadge(bundle, false, displayBadgeCallback);
```js ```js
var bundle = { var bundle = {
bundle: "bundleName1"; bundle: "bundleName1",
} }
Notification.displayBadge(bundle, false).then((void) => { Notification.displayBadge(bundle, false).then(() => {
console.info("==========================>displayBadgeCallback=======================>"); console.info("==========================>displayBadgeCallback=======================>");
}); });
``` ```
...@@ -1065,7 +1065,7 @@ function isBadgeDisplayedCallback(err, data) { ...@@ -1065,7 +1065,7 @@ function isBadgeDisplayedCallback(err, data) {
console.info("==========================>isBadgeDisplayedCallback=======================>"); console.info("==========================>isBadgeDisplayedCallback=======================>");
} }
var bundle = { var bundle = {
bundle: "bundleName1"; bundle: "bundleName1",
} }
Notification.isBadgeDisplayed(bundle, isBadgeDisplayedCallback); Notification.isBadgeDisplayed(bundle, isBadgeDisplayedCallback);
``` ```
...@@ -1092,7 +1092,7 @@ Notification.isBadgeDisplayed(bundle, isBadgeDisplayedCallback); ...@@ -1092,7 +1092,7 @@ Notification.isBadgeDisplayed(bundle, isBadgeDisplayedCallback);
```js ```js
var bundle = { var bundle = {
bundle: "bundleName1"; bundle: "bundleName1",
} }
Notification.isBadgeDisplayed(bundle).then((data) => { Notification.isBadgeDisplayed(bundle).then((data) => {
console.info("==========================>isBadgeDisplayedCallback=======================>"); console.info("==========================>isBadgeDisplayedCallback=======================>");
...@@ -1126,7 +1126,7 @@ function setSlotByBundleCallback(err) { ...@@ -1126,7 +1126,7 @@ function setSlotByBundleCallback(err) {
console.info("==========================>setSlotByBundleCallback=======================>"); console.info("==========================>setSlotByBundleCallback=======================>");
} }
var bundle = { var bundle = {
bundle: "bundleName1"; bundle: "bundleName1",
} }
var notificationSlot = { var notificationSlot = {
type: Notification.SlotType.SOCIAL_COMMUNICATION type: Notification.SlotType.SOCIAL_COMMUNICATION
...@@ -1157,12 +1157,12 @@ Notification.setSlotByBundle(bundle, notificationSlot, setSlotByBundleCallback); ...@@ -1157,12 +1157,12 @@ Notification.setSlotByBundle(bundle, notificationSlot, setSlotByBundleCallback);
```js ```js
var bundle = { var bundle = {
bundle: "bundleName1"; bundle: "bundleName1",
} }
var notificationSlot = { var notificationSlot = {
type: Notification.SlotType.SOCIAL_COMMUNICATION type: Notification.SlotType.SOCIAL_COMMUNICATION
} }
Notification.displayBadge(bundle, notificationSlot).then((void) => { Notification.displayBadge(bundle, notificationSlot).then(() => {
console.info("==========================>setSlotByBundleCallback=======================>"); console.info("==========================>setSlotByBundleCallback=======================>");
}); });
``` ```
...@@ -1193,7 +1193,7 @@ function getSlotsByBundleCallback(err, data) { ...@@ -1193,7 +1193,7 @@ function getSlotsByBundleCallback(err, data) {
console.info("==========================>getSlotsByBundleCallback=======================>"); console.info("==========================>getSlotsByBundleCallback=======================>");
} }
var bundle = { var bundle = {
bundle: "bundleName1"; bundle: "bundleName1",
} }
Notification.getSlotsByBundle(bundle, getSlotsByBundleCallback); Notification.getSlotsByBundle(bundle, getSlotsByBundleCallback);
``` ```
...@@ -1220,7 +1220,7 @@ Notification.getSlotsByBundle(bundle, getSlotsByBundleCallback); ...@@ -1220,7 +1220,7 @@ Notification.getSlotsByBundle(bundle, getSlotsByBundleCallback);
```js ```js
var bundle = { var bundle = {
bundle: "bundleName1"; bundle: "bundleName1",
} }
Notification.getSlotsByBundle(bundle).then((data) => { Notification.getSlotsByBundle(bundle).then((data) => {
console.info("==========================>getSlotsByBundleCallback=======================>"); console.info("==========================>getSlotsByBundleCallback=======================>");
...@@ -1253,7 +1253,7 @@ function getSlotNumByBundle(err, data) { ...@@ -1253,7 +1253,7 @@ function getSlotNumByBundle(err, data) {
console.info("==========================>getSlotNumByBundleCallback=======================>"); console.info("==========================>getSlotNumByBundleCallback=======================>");
} }
var bundle = { var bundle = {
bundle: "bundleName1"; bundle: "bundleName1",
} }
Notification.getSlotNumByBundle(bundle, getSlotNumByBundleCallback); Notification.getSlotNumByBundle(bundle, getSlotNumByBundleCallback);
``` ```
...@@ -1280,7 +1280,7 @@ Notification.getSlotNumByBundle(bundle, getSlotNumByBundleCallback); ...@@ -1280,7 +1280,7 @@ Notification.getSlotNumByBundle(bundle, getSlotNumByBundleCallback);
```js ```js
var bundle = { var bundle = {
bundle: "bundleName1"; bundle: "bundleName1",
} }
Notification.getSlotNumByBundle(bundle).then((data) => { Notification.getSlotNumByBundle(bundle).then((data) => {
console.info("==========================>getSlotNumByBundleCallback=======================>"); console.info("==========================>getSlotNumByBundleCallback=======================>");
...@@ -1314,11 +1314,11 @@ function removeCallback(err) { ...@@ -1314,11 +1314,11 @@ function removeCallback(err) {
console.info("==========================>removeCallback=======================>"); console.info("==========================>removeCallback=======================>");
} }
var bundle = { var bundle = {
bundle: "bundleName1"; bundle: "bundleName1",
} }
var notificationKey = { var notificationKey = {
id: 0; id: 0,
label: "label"; label: "label",
} }
Notification.remove(bundle, notificationKey, removeCallback); Notification.remove(bundle, notificationKey, removeCallback);
``` ```
...@@ -1346,13 +1346,13 @@ Notification.remove(bundle, notificationKey, removeCallback); ...@@ -1346,13 +1346,13 @@ Notification.remove(bundle, notificationKey, removeCallback);
```js ```js
var bundle = { var bundle = {
bundle: "bundleName1"; bundle: "bundleName1",
} }
var notificationKey = { var notificationKey = {
id: 0; id: 0,
label: "label"; label: "label",
} }
Notification.remove(bundle, notificationKey).then((void) => { Notification.remove(bundle, notificationKey).then(() => {
console.info("==========================>removeCallback=======================>"); console.info("==========================>removeCallback=======================>");
}); });
``` ```
...@@ -1407,7 +1407,7 @@ Notification.remove(hashCode, removeCallback); ...@@ -1407,7 +1407,7 @@ Notification.remove(hashCode, removeCallback);
- 示例 - 示例
```js ```js
Notification.remove(hashCode).then((void) => { Notification.remove(hashCode).then(() => {
console.info("==========================>removeCallback=======================>"); console.info("==========================>removeCallback=======================>");
}); });
``` ```
...@@ -1438,7 +1438,7 @@ function removeAllCallback(err) { ...@@ -1438,7 +1438,7 @@ function removeAllCallback(err) {
console.info("==========================>removeAllCallback=======================>"); console.info("==========================>removeAllCallback=======================>");
} }
var bundle = { var bundle = {
bundle: "bundleName1"; bundle: "bundleName1",
} }
Notification.removeAll(bundle, removeAllCallback); Notification.removeAll(bundle, removeAllCallback);
``` ```
...@@ -1492,7 +1492,7 @@ Notification.removeAll(removeAllCallback); ...@@ -1492,7 +1492,7 @@ Notification.removeAll(removeAllCallback);
- 示例 - 示例
```js ```js
Notification.removeAll().then((void) => { Notification.removeAll().then(() => {
console.info("==========================>removeAllCallback=======================>"); console.info("==========================>removeAllCallback=======================>");
}); });
``` ```
...@@ -1800,7 +1800,7 @@ function setDoNotDisturbDateCallback(err) { ...@@ -1800,7 +1800,7 @@ function setDoNotDisturbDateCallback(err) {
} }
var doNotDisturbDate = { var doNotDisturbDate = {
type: notification.DoNotDisturbType.TYPE_ONCE, type: Notification.DoNotDisturbType.TYPE_ONCE,
begin: new Date(), begin: new Date(),
end: new Date(2021, 11, 15, 18, 0) end: new Date(2021, 11, 15, 18, 0)
} }
...@@ -1830,7 +1830,7 @@ Notification.setDoNotDisturbDate(doNotDisturbDate, setDoNotDisturbDateCallback); ...@@ -1830,7 +1830,7 @@ Notification.setDoNotDisturbDate(doNotDisturbDate, setDoNotDisturbDateCallback);
```js ```js
var doNotDisturbDate = { var doNotDisturbDate = {
type: notification.DoNotDisturbType.TYPE_ONCE, type: Notification.DoNotDisturbType.TYPE_ONCE,
begin: new Date(), begin: new Date(),
end: new Date(2021, 11, 15, 18, 0) end: new Date(2021, 11, 15, 18, 0)
} }
...@@ -2120,7 +2120,7 @@ Notification.isNotificationEnabledSelf() ...@@ -2120,7 +2120,7 @@ Notification.isNotificationEnabledSelf()
| onConnect?:() | 读、写 | function | 否 | 注册订阅回调函数 | | onConnect?:() | 读、写 | function | 否 | 注册订阅回调函数 |
| onDisconnect?:() | 读、写 | function | 否 | 取消订阅回调函数 | | onDisconnect?:() | 读、写 | function | 否 | 取消订阅回调函数 |
| onDestroy?:() | 读、写 | function | 否 | 服务失联回调函数 | | onDestroy?:() | 读、写 | function | 否 | 服务失联回调函数 |
| onDoNotDisturbDateChange?:(mode: notification.[DoNotDisturbDate](#donotdisturbdate)) | 读、写 | function | 否 | 免打扰时间选项变更回调函数 | | onDoNotDisturbDateChange?:(mode: Notification.[DoNotDisturbDate](#donotdisturbdate)) | 读、写 | function | 否 | 免打扰时间选项变更回调函数 |
### onEnabledNotificationChanged ### onEnabledNotificationChanged
...@@ -2895,7 +2895,7 @@ var wantAgentInfo = { ...@@ -2895,7 +2895,7 @@ var wantAgentInfo = {
], ],
operationType: OperationType.START_ABILITIES, operationType: OperationType.START_ABILITIES,
requestCode: 0, requestCode: 0,
wantAgentFlags:[WantAgentWantAgentFlags.UPDATE_PRESENT_FLAG] wantAgentFlags:[WantAgentFlags.UPDATE_PRESENT_FLAG]
} }
WantAgent.getWantAgent(wantAgentInfo, getWantAgentCallback) WantAgent.getWantAgent(wantAgentInfo, getWantAgentCallback)
......
# observer
>**说明:**
>
>本模块首批接口从API version 6开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
## 导入模块
```
import observer from '@ohos.telephony.observer'
```
## observer.on('networkStateChange')<a name=observer.on.networkStateChange-callback></a>
on\(type: \'networkStateChange\', callback: Callback<NetworkState\>\): void;
订阅网络状态变化事件,使用callback方式作为异步方法。
**需要权限**:ohos.permission.GET_NETWORK_INFO。
**系统能力**:SystemCapability.Telephony.StateRegistry
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | ----------------------------------------- | ---- | --------------------------------- |
| type | string | 是 | 网络状态变化事件 |
| callback | Callback\<[NetworkState](js-apis-radio.md#NetworkState)\> | 是 | 回调函数。参考radio的[NetworkState](js-apis-radio.md#NetworkState) |
**示例:**
```
observer.on('networkStateChange', data =>{
console.log("on networkStateChange, data:" + JSON.stringify(data));
});
```
## observer.on('networkStateChange')<a name=observer.on.networkStateChange.options-callback></a>
on\(type: \'networkStateChange\', options: { slotId: number }, callback: Callback<NetworkState\>\): void;
订阅指定卡槽位的网络状态变化事件,使用callback方式作为异步方法。
**需要权限**:ohos.permission.GET_NETWORK_INFO。
**系统能力**:SystemCapability.Telephony.StateRegistry
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ------ | ------ | ---- | -------------------------------------- |
| type | string | 是 | 网络状态变化事件 |
| slotId | number | 是 | 卡槽ID。<br/>- 0:卡槽1<br/>- 1:卡槽2 |
| callback | Callback\<[NetworkState](js-apis-radio.md#NetworkState)\> | 是 | 回调函数。参考radio的[NetworkState](js-apis-radio.md#NetworkState) |
**示例:**
```
observer.on('networkStateChange', {slotId: 0}, data =>{
console.log("on networkStateChange, data:" + JSON.stringify(data));
});
```
## observer.off('networkStateChange')<a name=observer.off.networkStateChange-callback></a>
off\(type: \'networkStateChange\', callback?: Callback<NetworkState\>\): void;
取消订阅网络状态变化事件,使用callback方式作为异步方法。
**需要权限**:ohos.permission.GET_NETWORK_INFO。
>**说明:**
>
>可以指定传入on中的callback取消一个订阅,也可以不指定callback清空所有订阅。
**系统能力**:SystemCapability.Telephony.StateRegistry
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | ------------------------ | ---- | --------------------------------- |
| type | string | 是 | 网络状态变化事件 |
| callback | Callback\<[NetworkState](js-apis-radio.md#NetworkState)\> | 否 | 回调函数。参考radio的[NetworkState](js-apis-radio.md#NetworkState) |
**示例:**
```
let callback = data => {
console.log("on networkStateChange, data:" + JSON.stringify(data));
}
observer.on('networkStateChange', callback);
// 可以指定传入on中的callback取消一个订阅,也可以不指定callback清空所有订阅。
observer.off('networkStateChange', callback);
observer.off('networkStateChange');
```
## observer.on('signalInfoChange')<a name=observer.on.signalInfoChange-callback></a>
on\(type: \'signalInfoChange\', callback: Callback<Array<SignalInformation\>\>): void;
订阅信号状态变化事件,使用callback方式作为异步方法。
**系统能力**:SystemCapability.Telephony.StateRegistry
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ |
| type | string | 是 | 信号状态变化事件 |
| callback | Callback<Array<[SignalInformation](js-apis-radio.md#SignalInformation)\>\> | 是 | 回调函数。参考radio的[SignalInformation](js-apis-radio.md#SignalInformation) |
**示例:**
```
observer.on('signalInfoChange', data =>{
console.log("on signalInfoChange, data:" + JSON.stringify(data));
});
```
## observer.on('signalInfoChange')<a name=observer.on.signalInfoChange.options-callback></a>
on\(type: \'signalInfoChange\', options: { slotId: number }, callback: Callback<Array<SignalInformation\>\>): void;
订阅指定卡槽位的信号状态变化事件,使用callback方式作为异步方法。
**系统能力**:SystemCapability.Telephony.StateRegistry
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ------ | ------ | ---- | -------------------------------------- |
| type | string | 是 | 信号状态变化事件 |
| slotId | number | 是 | 卡槽ID。<br/>- 0:卡槽1<br/>- 1:卡槽2 |
| callback | Callback<Array<[SignalInformation](js-apis-radio.md#SignalInformation)\>\> | 是 | 回调函数。参考radio的[SignalInformation](js-apis-radio.md#SignalInformation) |
**示例:**
```
observer.on('signalInfoChange', {slotId: 0}, data =>{
console.log("on signalInfoChange, data:" + JSON.stringify(data));
});
```
## observer.off('signalInfoChange')<a name=observer.off.signalInfoChange-callback></a>
off\(type: \'signalInfoChange\', callback?: Callback<Array<SignalInformation\>\>): void;
取消订阅信号状态变化事件,使用callback方式作为异步方法。
>**说明:**
>
>可以指定传入on中的callback取消一个订阅,也可以不指定callback清空所有订阅。
**系统能力**:SystemCapability.Telephony.StateRegistry
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ |
| type | string | 是 | 信号状态变化事件 |
| callback | Callback<Array<[SignalInformation](js-apis-radio.md#SignalInformation)\>\> | 否 | 回调函数。参考radio的[SignalInformation](js-apis-radio.md#SignalInformation) |
**示例:**
```
let callback = data => {
console.log("on signalInfoChange, data:" + JSON.stringify(data));
}
observer.on('signalInfoChange', callback);
// 可以指定传入on中的callback取消一个订阅,也可以不指定callback清空所有订阅。
observer.off('signalInfoChange', callback);
observer.off('signalInfoChange');
```
## observer.on('callStateChange')<a name=observer.on.callStateChange-callback></a>
on(type: 'callStateChange', callback: Callback\<{ state: [CallState](js-apis-call.md#CallState), number: string }\>): void;
订阅通话状态变化事件,使用callback方式作为异步方法。
**需要权限**:ohos.permission.READ_CALL_LOG
**系统能力**:SystemCapability.Telephony.StateRegistry
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ |
| type | string | 是 | 通话状态变化事件 |
| callback | Callback\<{ state: [CallState](js-apis-call.md#CallState), number: string }\> | 是 | 回调函数,参考call的[CallState](js-apis-call.md#CallState)<br />number:电话号码 |
**示例:**
```
observer.on('callStateChange', value =>{
console.log("on callStateChange, state:" + value.state + ", number:" + value.number);
});
```
## observer.on('callStateChange')<a name=observer.on.callStateChange.options-callback></a>
on(type: 'callStateChange', options: { slotId: number }, callback: Callback<{ state: [CallState](js-apis-call.md#CallState), number: string }>): void;
订阅通话状态变化事件,使用callback方式作为异步方法。
**需要权限**:ohos.permission.READ_CALL_LOG
**系统能力**:SystemCapability.Telephony.StateRegistry
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ |
| type | string | 是 | 通话状态变化事件 |
| slotId | number | 是 | 卡槽ID。<br/>- 0:卡槽1<br/>- 1:卡槽2 |
| callback | Callback\<{ state: [CallState](js-apis-call.md#CallState), number: string }\> | 是 | 回调函数,参考call的[CallState](js-apis-call.md#CallState)<br />number:电话号码 |
**示例:**
```
observer.on('callStateChange', {slotId: 0}, value =>{
console.log("on callStateChange, state:" + value.state + ", number:" + value.number);
});
```
## observer.off('callStateChange')<a name=observer.off.callStateChange-callback></a>
off(type: 'callStateChange', callback?: Callback<{ state: [CallState](js-apis-call.md#CallState), number: string }>): void;
取消订阅通话状态变化事件,使用callback方式作为异步方法。
**需要权限**:ohos.permission.READ_CALL_LOG
>**说明:**
>
>可以指定传入on中的callback取消一个订阅,也可以不指定callback清空所有订阅。
**系统能力**:SystemCapability.Telephony.StateRegistry
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ |
| type | string | 是 | 通话状态变化事件 |
| callback | Callback\<{ state: [CallState](js-apis-call.md#CallState), number: string }\> | 否 | 回调函数,参考call的[CallState](js-apis-call.md#CallState)<br />number:电话号码 |
**示例:**
```
let callback = value => {
console.log("on callStateChange, state:" + value.state + ", number:" + value.number);
}
observer.on('callStateChange', callback);
// 可以指定传入on中的callback取消一个订阅,也可以不指定callback清空所有订阅。
observer.off('callStateChange', callback);
observer.off('callStateChange');
```
...@@ -28,6 +28,7 @@ startAbility(parameter: StartAbilityParameter, callback: AsyncCallback\<void>: v ...@@ -28,6 +28,7 @@ startAbility(parameter: StartAbilityParameter, callback: AsyncCallback\<void>: v
```js ```js
import particleAbility from '@ohos.ability.particleAbility' import particleAbility from '@ohos.ability.particleAbility'
import wantConstant from "@ohos.ability.wantConstant"
particleAbility.startAbility( particleAbility.startAbility(
{ {
want: want:
...@@ -35,7 +36,7 @@ particleAbility.startAbility( ...@@ -35,7 +36,7 @@ particleAbility.startAbility(
action: "action.system.home", action: "action.system.home",
entities: ["entity.system.home"], entities: ["entity.system.home"],
type: "MIMETYPE", type: "MIMETYPE",
flags: FLAG_AUTH_READ_URI_PERMISSION; flags: wantConstant.Flags.FLAG_AUTH_READ_URI_PERMISSION,
deviceId: "", deviceId: "",
bundleName: "com.example.Data", bundleName: "com.example.Data",
abilityName: "com.example.Data.MainAbility", abilityName: "com.example.Data.MainAbility",
...@@ -70,6 +71,7 @@ startAbility(parameter: StartAbilityParameter): Promise\<number> ...@@ -70,6 +71,7 @@ startAbility(parameter: StartAbilityParameter): Promise\<number>
```js ```js
import particleAbility from '@ohos.ability.particleAbility' import particleAbility from '@ohos.ability.particleAbility'
import wantConstant from "@ohos.ability.wantConstant"
particleAbility.startAbility( particleAbility.startAbility(
{ {
want: want:
...@@ -77,14 +79,14 @@ particleAbility.startAbility( ...@@ -77,14 +79,14 @@ particleAbility.startAbility(
action: "action.system.home", action: "action.system.home",
entities: ["entity.system.home"], entities: ["entity.system.home"],
type: "MIMETYPE", type: "MIMETYPE",
flags: FLAG_AUTH_READ_URI_PERMISSION; flags: wantConstant.Flags.FLAG_AUTH_READ_URI_PERMISSION,
deviceId: "", deviceId: "",
bundleName: "com.example.Data", bundleName: "com.example.Data",
abilityName: "com.example.Data.MainAbility", abilityName: "com.example. Data.MainAbility",
uri:"" uri:""
}, },
}, },
).then((void) => { ).then(() => {
console.info("particleAbility startAbility"); console.info("particleAbility startAbility");
}); });
``` ```
...@@ -131,7 +133,7 @@ terminateSelf(): Promise\<void> ...@@ -131,7 +133,7 @@ terminateSelf(): Promise\<void>
```js ```js
import particleAbility from '@ohos.ability.particleAbility' import particleAbility from '@ohos.ability.particleAbility'
particleAbility.terminateSelf().then((void) => { particleAbility.terminateSelf().then(() => {
console.info("particleAbility terminateSelf"); console.info("particleAbility terminateSelf");
}); });
``` ```
...@@ -195,7 +197,7 @@ connectAbility(request: Want, options:ConnectOptions): number ...@@ -195,7 +197,7 @@ connectAbility(request: Want, options:ConnectOptions): number
```javascript ```javascript
import particleAbility from '@ohos.ability.particleAbility' import particleAbility from '@ohos.ability.particleAbility'
function onConnectCallback(element, remote){ function onConnectCallback(element, remote){
console.log('ConnectAbility onConnect remote is proxy:' + (remote instanceof rpc.RemoteProxy)); console.log('ConnectAbility onConnectCallback');
} }
function onDisconnectCallback(element){ function onDisconnectCallback(element){
console.log('ConnectAbility onDisconnect element.deviceId : ' + element.deviceId) console.log('ConnectAbility onDisconnect element.deviceId : ' + element.deviceId)
...@@ -234,7 +236,7 @@ disconnectAbility(connection: number, callback:AsyncCallback\<void>): void ...@@ -234,7 +236,7 @@ disconnectAbility(connection: number, callback:AsyncCallback\<void>): void
```javascript ```javascript
import particleAbility from '@ohos.ability.particleAbility' import particleAbility from '@ohos.ability.particleAbility'
function onConnectCallback(element, remote){ function onConnectCallback(element, remote){
console.log('ConnectAbility onConnect remote is proxy:' + (remote instanceof rpc.RemoteProxy)); console.log('ConnectAbility onConnectCallback');
} }
function onDisconnectCallback(element){ function onDisconnectCallback(element){
console.log('ConnectAbility onDisconnect element.deviceId : ' + element.deviceId) console.log('ConnectAbility onDisconnect element.deviceId : ' + element.deviceId)
...@@ -255,8 +257,8 @@ var connId = particleAbility.connectAbility( ...@@ -255,8 +257,8 @@ var connId = particleAbility.connectAbility(
); );
var result = particleAbility.disconnectAbility(connId, var result = particleAbility.disconnectAbility(connId,
(error,data) => { (error,data) => {
console.log('particleAbilityTest DisConnectAbility result errCode : ' + error.code + " data: " + data) console.log('particleAbilityTest DisConnectAbility result errCode : ' + error.code + " data: " + data);
}, }
); );
``` ```
...@@ -282,7 +284,7 @@ disconnectAbility(connection: number): Promise\<void> ...@@ -282,7 +284,7 @@ disconnectAbility(connection: number): Promise\<void>
```javascript ```javascript
import particleAbility from '@ohos.ability.particleAbility' import particleAbility from '@ohos.ability.particleAbility'
function onConnectCallback(element, remote){ function onConnectCallback(element, remote){
console.log('ConnectAbility onConnect remote is proxy:' + (remote instanceof rpc.RemoteProxy)); console.log('ConnectAbility onConnect onConnectCallback');
} }
function onDisconnectCallback(element){ function onDisconnectCallback(element){
console.log('ConnectAbility onDisconnect element.deviceId : ' + element.deviceId) console.log('ConnectAbility onDisconnect element.deviceId : ' + element.deviceId)
...@@ -301,7 +303,7 @@ var connId = particleAbility.connectAbility( ...@@ -301,7 +303,7 @@ var connId = particleAbility.connectAbility(
onFailed: onFailedCallback, onFailed: onFailedCallback,
}, },
); );
var result = particleAbility.disconnectAbility(connId).then((void) => { var result = particleAbility.disconnectAbility(connId).then(() => {
console.info("particleAbilityTest disconnectAbility"); console.info("particleAbilityTest disconnectAbility");
}); });
``` ```
......
# PermissionRequestResult
- [属性](#属性)
> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
> 本模块首批接口从API 9开始支持。
权限请求结果。
## 属性
| 名称 | 参数类型 | 可读 | 可写 | 说明 |
| -------- | -------- | -------- | -------- | -------- |
| permissions | Array&lt;string&gt; | 是 | 否 | 用户传入的权限。 |
| authResults | Array&lt;number&gt; | 是 | 否 | 相应请求权限的结果。0表示授权成功,-1表示失败。 |
# ProcessRunningInfo
- [使用说明](#使用说明)
- [属性](#属性)
> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
> 本模块首批接口从API 8开始支持。
进程运行信息。
## 使用说明
通过appManager来获取。
```
import appManager from '@ohos.application.appManager';
appManager.getProcessRunningInfos((error,data) => {
console.log("getProcessRunningInfos error: " + error.code + " data: " + JSON.stringify(data));
});
```
## 属性
| 名称 | 参数类型 | 可读 | 可写 | 说明 |
| -------- | -------- | -------- | -------- | -------- |
| pid | number | 是 | 否 | 进程ID。 |
| uid | number | 是 | 否 | 用户ID。 |
| processName | string | 是 | 否 | 进程名称。 |
| bundleNames | Array&lt;string&gt; | 是 | 否 | 进程中所有运行的包名称。 |
...@@ -19,6 +19,8 @@ getRadioTech\(slotId: number, callback: AsyncCallback<\{psRadioTech: RadioTechno ...@@ -19,6 +19,8 @@ getRadioTech\(slotId: number, callback: AsyncCallback<\{psRadioTech: RadioTechno
需要ohos.permission.GET\_NETWORK\_INFO权限。 需要ohos.permission.GET\_NETWORK\_INFO权限。
**系统能力**:SystemCapability.Telephony.CoreService
**参数:** **参数:**
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
...@@ -44,6 +46,8 @@ getRadioTech\(slotId: number\): Promise<\{psRadioTech: RadioTechnology, csRadioT ...@@ -44,6 +46,8 @@ getRadioTech\(slotId: number\): Promise<\{psRadioTech: RadioTechnology, csRadioT
需要ohos.permission.GET\_NETWORK\_INFO权限。 需要ohos.permission.GET\_NETWORK\_INFO权限。
**系统能力**:SystemCapability.Telephony.CoreService
**参数:** **参数:**
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
...@@ -77,6 +81,8 @@ getNetworkState\(callback: AsyncCallback<NetworkState\>\): void ...@@ -77,6 +81,8 @@ getNetworkState\(callback: AsyncCallback<NetworkState\>\): void
需要ohos.permission.GET\_NETWORK\_INFO权限。 需要ohos.permission.GET\_NETWORK\_INFO权限。
**系统能力**:SystemCapability.Telephony.CoreService
**参数:** **参数:**
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
...@@ -100,6 +106,8 @@ getNetworkState\(slotId: number, callback: AsyncCallback<NetworkState\>\): void ...@@ -100,6 +106,8 @@ getNetworkState\(slotId: number, callback: AsyncCallback<NetworkState\>\): void
需要ohos.permission.GET\_NETWORK\_INFO权限。 需要ohos.permission.GET\_NETWORK\_INFO权限。
**系统能力**:SystemCapability.Telephony.CoreService
**参数:** **参数:**
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
...@@ -125,6 +133,8 @@ getNetworkState\(slotId?: number\): Promise<NetworkState\> ...@@ -125,6 +133,8 @@ getNetworkState\(slotId?: number\): Promise<NetworkState\>
需要ohos.permission.GET\_NETWORK\_INFO权限。 需要ohos.permission.GET\_NETWORK\_INFO权限。
**系统能力**:SystemCapability.Telephony.CoreService
**参数:** **参数:**
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
...@@ -156,6 +166,8 @@ getNetworkSelectionMode\(slotId: number, callback: AsyncCallback<NetworkSelectio ...@@ -156,6 +166,8 @@ getNetworkSelectionMode\(slotId: number, callback: AsyncCallback<NetworkSelectio
获取当前选网模式,使用callback方式作为异步方法。 获取当前选网模式,使用callback方式作为异步方法。
**系统能力**:SystemCapability.Telephony.CoreService
**参数:** **参数:**
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
...@@ -179,6 +191,8 @@ getNetworkSelectionMode\(slotId: number\): Promise<NetworkSelectionMode\> ...@@ -179,6 +191,8 @@ getNetworkSelectionMode\(slotId: number\): Promise<NetworkSelectionMode\>
获取当前选网模式,使用Promise方式作为异步方法。 获取当前选网模式,使用Promise方式作为异步方法。
**系统能力**:SystemCapability.Telephony.CoreService
**参数:** **参数:**
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
...@@ -210,6 +224,8 @@ getISOCountryCodeForNetwork\(slotId: number, callback: AsyncCallback<string\>\): ...@@ -210,6 +224,8 @@ getISOCountryCodeForNetwork\(slotId: number, callback: AsyncCallback<string\>\):
获取注册网络所在国家的ISO国家码,使用callback方式作为异步方法。 获取注册网络所在国家的ISO国家码,使用callback方式作为异步方法。
**系统能力**:SystemCapability.Telephony.CoreService
**参数:** **参数:**
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
...@@ -233,6 +249,8 @@ getISOCountryCodeForNetwork\(slotId: number\): Promise<string\> ...@@ -233,6 +249,8 @@ getISOCountryCodeForNetwork\(slotId: number\): Promise<string\>
获取注册网络所在国家的ISO国家码,使用Promise方式作为异步方法。 获取注册网络所在国家的ISO国家码,使用Promise方式作为异步方法。
**系统能力**:SystemCapability.Telephony.CoreService
**参数:** **参数:**
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
...@@ -264,6 +282,8 @@ getSignalInformation\(slotId: number, callback: AsyncCallback<Array<SignalInform ...@@ -264,6 +282,8 @@ getSignalInformation\(slotId: number, callback: AsyncCallback<Array<SignalInform
获取指定SIM卡槽对应的注册网络信号强度信息列表,使用callback方式作为异步方法。 获取指定SIM卡槽对应的注册网络信号强度信息列表,使用callback方式作为异步方法。
**系统能力**:SystemCapability.Telephony.CoreService
**参数:** **参数:**
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
...@@ -287,6 +307,8 @@ getSignalInformation\(slotId: number\): Promise<Array<SignalInformation\>\> ...@@ -287,6 +307,8 @@ getSignalInformation\(slotId: number\): Promise<Array<SignalInformation\>\>
获取指定SIM卡槽对应的注册网络信号强度信息列表,使用Promise方式作为异步方法。 获取指定SIM卡槽对应的注册网络信号强度信息列表,使用Promise方式作为异步方法。
**系统能力**:SystemCapability.Telephony.CoreService
**参数:** **参数:**
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
...@@ -320,6 +342,8 @@ isRadioOn\(callback: AsyncCallback<boolean\>\): void ...@@ -320,6 +342,8 @@ isRadioOn\(callback: AsyncCallback<boolean\>\): void
需要ohos.permission.GET\_NETWORK\_INFO权限。 需要ohos.permission.GET\_NETWORK\_INFO权限。
**系统能力**:SystemCapability.Telephony.CoreService
**参数:** **参数:**
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
...@@ -343,6 +367,8 @@ isRadioOn\(\): Promise<boolean\> ...@@ -343,6 +367,8 @@ isRadioOn\(\): Promise<boolean\>
需要ohos.permission.GET\_NETWORK\_INFO权限。 需要ohos.permission.GET\_NETWORK\_INFO权限。
**系统能力**:SystemCapability.Telephony.CoreService
**返回值:** **返回值:**
| 类型 | 说明 | | 类型 | 说明 |
...@@ -361,35 +387,93 @@ promise.then(data => { ...@@ -361,35 +387,93 @@ promise.then(data => {
``` ```
## radio.getOperatorName<sup>7+</sup><a name=radio.getOperatorName-callback></a>
getOperatorName\(slotId: number, callback: AsyncCallback<string\>\): void
获取运营商名称,使用callback方式作为异步方法。
**系统能力**:SystemCapability.Telephony.CoreService
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | ----------------------- | ---- | ------------------------------------------ |
| slotId | number | 是 | 卡槽ID。<br/>- 0:卡槽1<br/>- 1:卡槽2 |
| callback | AsyncCallback\<string\> | 是 | 回调函数。返回运营商名称,例如:中国移动。 |
**示例:**
```
let slotId = 0;
radio.getOperatorName(slotId, (err, data) => {
console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
});
```
## radio.getOperatorName<sup>7+</sup><a name=radio.getOperatorName-promise></a>
getOperatorName\(slotId: number\): Promise<string\>
获取运营商名称,使用Promise方式作为异步方法。
**系统能力**:SystemCapability.Telephony.CoreService
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ------ | ------ | ---- | -------------------------------------- |
| slotId | number | 是 | 卡槽ID。<br/>- 0:卡槽1<br/>- 1:卡槽2 |
**返回值:**
| 类型 | 说明 |
| ----------------- | ------------------------------------------------------------ |
| Promise\<string\> | 以Promise形式返回运营商名称,例如:中国移动。 |
**示例:**
```
let slotId = 0;
let promise = radio.getOperatorName(slotId);
promise.then(data => {
console.log(`getOperatorName success, promise: data->${JSON.stringify(data)}`);
}).catch(err => {
console.log(`getOperatorName fail, promise: err->${JSON.stringify(err)}`);
});
```
## RadioTechnology<a name=RadioTechnology></a> ## RadioTechnology<a name=RadioTechnology></a>
无线接入技术。 无线接入技术。
| 变量 | 值 | 说明 | | 变量 | 值 | 说明 |
| ------------------------- | ---- | ------------------------------------------------------------ | | ------------------------- | ---- | ------------------------------------------------------------ |
| RADIO_TECHNOLOGY_UNKNOWN | 0 | 未知无线接入技术(RAT)。 | | RADIO_TECHNOLOGY_UNKNOWN | 0 | 未知无线接入技术(RAT)。<br>**系统能力**:SystemCapability.Telephony.CoreService |
| RADIO_TECHNOLOGY_GSM | 1 | 无线接入技术GSM(Global System For Mobile Communication)。 | | RADIO_TECHNOLOGY_GSM | 1 | 无线接入技术GSM(Global System For Mobile Communication)。<br/>**系统能力**:SystemCapability.Telephony.CoreService |
| RADIO_TECHNOLOGY_1XRTT | 2 | 无线接入技术1XRTT(Single-Carrier Radio Transmission Technology)。 | | RADIO_TECHNOLOGY_1XRTT | 2 | 无线接入技术1XRTT(Single-Carrier Radio Transmission Technology)。<br/>**系统能力**:SystemCapability.Telephony.CoreService |
| RADIO_TECHNOLOGY_WCDMA | 3 | 无线接入技术WCDMA(Wideband Code Division Multiple Access)。 | | RADIO_TECHNOLOGY_WCDMA | 3 | 无线接入技术WCDMA(Wideband Code Division Multiple Access)。<br/>**系统能力**:SystemCapability.Telephony.CoreService |
| RADIO_TECHNOLOGY_HSPA | 4 | 无线接入技术HSPA(High Speed Packet Access)。 | | RADIO_TECHNOLOGY_HSPA | 4 | 无线接入技术HSPA(High Speed Packet Access)。<br/>**系统能力**:SystemCapability.Telephony.CoreService |
| RADIO_TECHNOLOGY_HSPAP | 5 | 无线接入技术HSPAP(High Speed packet access (HSPA+) )。 | | RADIO_TECHNOLOGY_HSPAP | 5 | 无线接入技术HSPAP(High Speed packet access (HSPA+) )。<br/>**系统能力**:SystemCapability.Telephony.CoreService |
| RADIO_TECHNOLOGY_TD_SCDMA | 6 | 无线接入技术TDSCDMA(TimeDivision-Synchronous Code Division Multiple Access)。 | | RADIO_TECHNOLOGY_TD_SCDMA | 6 | 无线接入技术TDSCDMA(TimeDivision-Synchronous Code Division Multiple Access)。<br/>**系统能力**:SystemCapability.Telephony.CoreService |
| RADIO_TECHNOLOGY_EVDO | 7 | 无线接入技术EVDO(Evolution、Data Only)。 | | RADIO_TECHNOLOGY_EVDO | 7 | 无线接入技术EVDO(Evolution、Data Only)。<br/>**系统能力**:SystemCapability.Telephony.CoreService |
| RADIO_TECHNOLOGY_EHRPD | 8 | 无线接入技术EHRPD(Evolved High Rate Package Data)。 | | RADIO_TECHNOLOGY_EHRPD | 8 | 无线接入技术EHRPD(Evolved High Rate Package Data)。<br/>**系统能力**:SystemCapability.Telephony.CoreService |
| RADIO_TECHNOLOGY_LTE | 9 | 无线接入技术LTE(Long Term Evolution)。 | | RADIO_TECHNOLOGY_LTE | 9 | 无线接入技术LTE(Long Term Evolution)。<br/>**系统能力**:SystemCapability.Telephony.CoreService |
| RADIO_TECHNOLOGY_LTE_CA | 10 | 无线接入技术LTE_CA(Long Term Evolution_Carrier Aggregation)。 | | RADIO_TECHNOLOGY_LTE_CA | 10 | 无线接入技术LTE_CA(Long Term Evolution_Carrier Aggregation)。<br/>**系统能力**:SystemCapability.Telephony.CoreService |
| RADIO_TECHNOLOGY_IWLAN | 11 | 无线接入技术IWLAN(Industrial Wireless LAN)。 | | RADIO_TECHNOLOGY_IWLAN | 11 | 无线接入技术IWLAN(Industrial Wireless LAN)。<br/>**系统能力**:SystemCapability.Telephony.CoreService |
| RADIO_TECHNOLOGY_NR | 12 | 无线接入技术NR(New Radio)。 | | RADIO_TECHNOLOGY_NR | 12 | 无线接入技术NR(New Radio)。<br/>**系统能力**:SystemCapability.Telephony.CoreService |
## SignalInformation<a name=SignalInformation></a> ## SignalInformation<a name=SignalInformation></a>
网络信号强度信息对象。 网络信号强度信息对象。
| 属性名 | 类型 | 说明 | | 属性名 | 类型 | 说明 |
| ----------- | --------------------------- | ------------------ | | ----------- | --------------------------- | ------------------------------------------------------------ |
| signalType | [NetworkType](#NetworkType) | 网络信号强度类型。 | | signalType | [NetworkType](#NetworkType) | 网络信号强度类型。<br/>**系统能力**:SystemCapability.Telephony.CoreService |
| signalLevel | number | 网络信号强度等级。 | | signalLevel | number | 网络信号强度等级。<br/>**系统能力**:SystemCapability.Telephony.CoreService |
## NetworkType<a name=NetworkType></a> ## NetworkType<a name=NetworkType></a>
...@@ -398,62 +482,63 @@ promise.then(data => { ...@@ -398,62 +482,63 @@ promise.then(data => {
| 变量 | 值 | 说明 | | 变量 | 值 | 说明 |
| -------------------- | ---- | ------------------------------------------------------------ | | -------------------- | ---- | ------------------------------------------------------------ |
| NETWORK_TYPE_UNKNOWN | 0 | 未知网络类型。 | | NETWORK_TYPE_UNKNOWN | 0 | 未知网络类型。<br/>**系统能力**:SystemCapability.Telephony.CoreService |
| NETWORK_TYPE_GSM | 1 | 网络类型为GSM(Global System For Mobile Communication)。 | | NETWORK_TYPE_GSM | 1 | 网络类型为GSM(Global System For Mobile Communication)。<br/>**系统能力**:SystemCapability.Telephony.CoreService |
| NETWORK_TYPE_CDMA | 2 | 网络类型为CDMA(Code Division Multiple Access)。 | | NETWORK_TYPE_CDMA | 2 | 网络类型为CDMA(Code Division Multiple Access)。<br/>**系统能力**:SystemCapability.Telephony.CoreService |
| NETWORK_TYPE_WCDMA | 3 | 网络类型为WCDMA(Wideband Code Division Multiple Access)。 | | NETWORK_TYPE_WCDMA | 3 | 网络类型为WCDMA(Wideband Code Division Multiple Access)。<br/>**系统能力**:SystemCapability.Telephony.CoreService |
| NETWORK_TYPE_TDSCDMA | 4 | 网络类型为TDSCDMA(TimeDivision-Synchronous Code Division Multiple Access)。 | | NETWORK_TYPE_TDSCDMA | 4 | 网络类型为TDSCDMA(TimeDivision-Synchronous Code Division Multiple Access)。<br/>**系统能力**:SystemCapability.Telephony.CoreService |
| NETWORK_TYPE_LTE | 5 | 网络类型为LTE(Long Term Evolution)。 | | NETWORK_TYPE_LTE | 5 | 网络类型为LTE(Long Term Evolution)。<br/>**系统能力**:SystemCapability.Telephony.CoreService |
| NETWORK_TYPE_NR | 6 | 网络类型为5G NR(New Radio)。 | | NETWORK_TYPE_NR | 6 | 网络类型为5G NR(New Radio)。<br/>**系统能力**:SystemCapability.Telephony.CoreService |
## NetworkState<a name=NetworkState></a> ## NetworkState<a name=NetworkState></a>
网络注册状态。 网络注册状态。
| 变量 | 类型 | 说明 | | 变量 | 类型 | 说明 |
| ----------------- | --------------------- | ------------------------------ | | ----------------- | --------------------- | ------------------------------------------------------------ |
| longOperatorName | string | 注册网络的长运营商名称。 | | longOperatorName | string | 注册网络的长运营商名称。<br/>**系统能力**:SystemCapability.Telephony.CoreService |
| shortOperatorName | string | 注册网络的短运营商名称。 | | shortOperatorName | string | 注册网络的短运营商名称。<br/>**系统能力**:SystemCapability.Telephony.CoreService |
| plmnNumeric | string | 注册网络的PLMN码。 | | plmnNumeric | string | 注册网络的PLMN码。<br/>**系统能力**:SystemCapability.Telephony.CoreService |
| isRoaming | boolean | 是否处于漫游状态。 | | isRoaming | boolean | 是否处于漫游状态。<br/>**系统能力**:SystemCapability.Telephony.CoreService |
| regState | [RegState](#RegState) | 设备的网络注册状态。 | | regState | [RegState](#RegState) | 设备的网络注册状态。<br/>**系统能力**:SystemCapability.Telephony.CoreService |
| nsaState | [NsaState](#NsaState) | 设备的NSA网络注册状态。 | | nsaState | [NsaState](#NsaState) | 设备的NSA网络注册状态。<br/>**系统能力**:SystemCapability.Telephony.CoreService |
| isCaActive | boolean | CA的状态。 | | isCaActive | boolean | CA的状态。<br/>**系统能力**:SystemCapability.Telephony.CoreService |
| isEmergency | boolean | 此设备是否只允许拨打紧急呼叫。 | | isEmergency | boolean | 此设备是否只允许拨打紧急呼叫。<br/>**系统能力**:SystemCapability.Telephony.CoreService |
## RegState<a name=RegState></a> ## RegState<a name=RegState></a>
网络注册状态。 网络注册状态。
| 变量 | 值 | 说明 | | 变量 | 值 | 说明 |
| ----------------------------- | ---- | -------------------------- | | ----------------------------- | ---- | ------------------------------------------------------------ |
| REG_STATE_NO_SERVICE | 0 | 设备不能使用任何服务。 | | REG_STATE_NO_SERVICE | 0 | 设备不能使用任何服务。<br/>**系统能力**:SystemCapability.Telephony.CoreService |
| REG_STATE_IN_SERVICE | 1 | 设备可以正常使用业务。 | | REG_STATE_IN_SERVICE | 1 | 设备可以正常使用业务。<br/>**系统能力**:SystemCapability.Telephony.CoreService |
| REG_STATE_EMERGENCY_CALL_ONLY | 2 | 设备只能使用紧急呼叫业务。 | | REG_STATE_EMERGENCY_CALL_ONLY | 2 | 设备只能使用紧急呼叫业务。<br/>**系统能力**:SystemCapability.Telephony.CoreService |
| REG_STATE_POWER_OFF | 3 | 蜂窝无线电已关闭。 | | REG_STATE_POWER_OFF | 3 | 蜂窝无线电已关闭。<br/>**系统能力**:SystemCapability.Telephony.CoreService |
## NsaState<a name=NsaState></a> ## NsaState<a name=NsaState></a>
非独立组网状态。 非独立组网状态。
| 变量 | 值 | 说明 | | 变量 | 值 | 说明 |
| -------------------------- | ---- | ---------------------------------------------------------- | | -------------------------- | ---- | ------------------------------------------------------------ |
| NSA_STATE_NOT_SUPPORT | 1 | 设备在不支持NSA的LTE小区下处于空闲状态或连接状态。 | | NSA_STATE_NOT_SUPPORT | 1 | 设备在不支持NSA的LTE小区下处于空闲状态或连接状态。<br/>**系统能力**:SystemCapability.Telephony.CoreService |
| NSA_STATE_NO_DETECT | 2 | 在支持NSA但不支持NR覆盖检测的LTE小区下,设备处于空闲状态。 | | NSA_STATE_NO_DETECT | 2 | 在支持NSA但不支持NR覆盖检测的LTE小区下,设备处于空闲状态。<br/>**系统能力**:SystemCapability.Telephony.CoreService |
| NSA_STATE_CONNECTED_DETECT | 3 | 设备在LTE小区下连接到LTE网络支持NSA和NR覆盖检测。 | | NSA_STATE_CONNECTED_DETECT | 3 | 设备在LTE小区下连接到LTE网络支持NSA和NR覆盖检测。<br/>**系统能力**:SystemCapability.Telephony.CoreService |
| NSA_STATE_IDLE_DETECT | 4 | 支持NSA和NR覆盖检测的LTE小区下设备处于空闲状态。 | | NSA_STATE_IDLE_DETECT | 4 | 支持NSA和NR覆盖检测的LTE小区下设备处于空闲状态。<br/>**系统能力**:SystemCapability.Telephony.CoreService |
| NSA_STATE_DUAL_CONNECTED | 5 | 设备在支持NSA的LTE小区下连接到LTE + NR网络。 | | NSA_STATE_DUAL_CONNECTED | 5 | 设备在支持NSA的LTE小区下连接到LTE + NR网络。<br/>**系统能力**:SystemCapability.Telephony.CoreService |
| NSA_STATE_SA_ATTACHED | 6 | 设备在5GC附着时在NG-RAN小区下空闲或连接到NG-RAN小区。 | | NSA_STATE_SA_ATTACHED | 6 | 设备在5GC附着时在NG-RAN小区下空闲或连接到NG-RAN小区。<br/>**系统能力**:SystemCapability.Telephony.CoreService |
## NetworkSelectionMode<a name=NetworkSelectionMode></a> ## NetworkSelectionMode<a name=NetworkSelectionMode></a>
选网模式。 选网模式。
| 变量 | 值 | 说明 | | 变量 | 值 | 说明 |
| --------------------------- | ---- | -------------- | | --------------------------- | ---- | ------------------------------------------------------------ |
| NETWORK_SELECTION_UNKNOWN | 0 | 未知选网模式。 | | NETWORK_SELECTION_UNKNOWN | 0 | 未知选网模式。<br/>**系统能力**:SystemCapability.Telephony.CoreService |
| NETWORK_SELECTION_AUTOMATIC | 1 | 自动选网模式。 | | NETWORK_SELECTION_AUTOMATIC | 1 | 自动选网模式。<br/>**系统能力**:SystemCapability.Telephony.CoreService |
| NETWORK_SELECTION_MANUAL | 2 | 手动选网模式。 | | NETWORK_SELECTION_MANUAL | 2 | 手动选网模式。<br/>**系统能力**:SystemCapability.Telephony.CoreService |
\ No newline at end of file
# 屏幕截图
> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
> 本模块首批接口从API version 7开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
## 导入模块
```
import screenshot from '@ohos.screenshot';
```
## ScreenshotOptions
设置截取图像的信息。
| 参数名 | 类型 | 必填 | 说明 |
| ---------- | ------------- | ---- | ------------------------------------------------------------ |
| screenRect | [Rect](#Rect) | 否 | 表示截取图像的区域,不传值默认为全屏。<br/>**系统能力**:SystemCapability.WindowManager.WindowManager.Core |
| imageSize | [Size](#Size) | 否 | 表示截取图像的大小,不传值默认为全屏。<br/>**系统能力**:SystemCapability.WindowManager.WindowManager.Core |
| rotation | number | 否 | 表示截取图像的旋转角度,取值可为0、90、180、270,默认值为0。<br/>**系统能力**:SystemCapability.WindowManager.WindowManager.Core |
## Rect
表示截取图像的区域。
| 参数名 | 类型 | 必填 | 说明 |
| ------ | ------ | ---- | ------------------------------------------------------------ |
| left | number | 是 | 表示截取图像区域的左边界。<br/>**系统能力**:SystemCapability.WindowManager.WindowManager.Core |
| top | number | 是 | 表示截取图像区域的上边界。<br/>**系统能力**:SystemCapability.WindowManager.WindowManager.Core |
| width | number | 是 | 表示截取图像区域的宽度。<br/>**系统能力**:SystemCapability.WindowManager.WindowManager.Core |
| height | number | 是 | 表示截取图像区域的高度。<br/>**系统能力**:SystemCapability.WindowManager.WindowManager.Core |
## Size
表示截取图像的大小。
| 参数名 | 类型 | 必填 | 说明 |
| ------ | ------ | ---- | ------------------------------------------------------------ |
| width | number | 是 | 表示截取图像的宽度。<br/>**系统能力**:SystemCapability.WindowManager.WindowManager.Core |
| height | number | 是 | 表示截取图像的高度。<br/>**系统能力**:SystemCapability.WindowManager.WindowManager.Core |
## screenshot.save
save(options?: ScreenshotOptions, callback: AsyncCallback&lt;image.PixelMap&gt;): void
获取屏幕截图。
**系统能力**:SystemCapability.WindowManager.WindowManager.Core
**需要权限**:ohos.permission.CAPTURE_SCREEN
- 参数
| 参数名 | 类型 | 必填 | 说明 |
| -------- | --------------------------------------- | ---- | ------------------------------------------------------------ |
| options | [ScreenshotOptions](#ScreenshotOptions) | 否 | 该类型的参数包含screenRect,imageSize,rotation三个参数,需要分别设置这三个参数。 |
| callback | AsyncCallback&lt;image.PixelMap&gt; | 是 | 回调返回一个PixelMap对象。 |
- 示例
```
var ScreenshotOptions = {
"screenRect": {
"left": 200,
"top": 100,
"width": 200,
"height": 200},
"imageSize": {
"width": 300,
"height": 300},
"rotation": 0
};
screenshot.save(ScreenshotOptions, (err, data) => {
if (err) {
console.error('Failed to save the screenshot. Error: ' + JSON.stringify(err));
return;
}
console.info('Screenshot saved. Data: ' + JSON.stringify(data));
});
```
## screenshot.save
save(options?: ScreenshotOptions): Promise&lt;image.PixelMap&gt;
获取屏幕截图。
**系统能力**:SystemCapability.WindowManager.WindowManager.Core
**需要权限**:ohos.permission.CAPTURE_SCREEN
- 参数
| 参数名 | 类型 | 必填 | 说明 |
| ------- | --------------------------------------- | ---- | ------------------------------------------------------------ |
| options | [ScreenshotOptions](#ScreenshotOptions) | 否 | 该类型的参数包含screenRect,imageSize,rotation三个参数,需要分别设置这三个参数。 |
- 返回值
| 类型 | 说明 |
| ----------------------------- | ----------------------------------------------- |
| Promise&lt;image.PixelMap&gt; | 以Promise形式返回结果,返回image.PixelMap对象。 |
- 示例
```
var ScreenshotOptions = {
"screenRect": {
"left": 200,
"top": 100,
"width": 200,
"height": 200},
"imageSize": {
"width": 300,
"height": 300},
"rotation": 0
};
let promise = screenshot.save(ScreenshotOptions);
promise.then(() => {
console.log('screenshot save success');
}).catch((err) => {
console.log('screenshot save fail: ' + JSON.stringify(err));
});
```
...@@ -29,8 +29,8 @@ startAbility(want: Want, callback: AsyncCallback&lt;void&gt;): void; ...@@ -29,8 +29,8 @@ startAbility(want: Want, callback: AsyncCallback&lt;void&gt;): void;
"abilityName": "com.example.myapp.MyAbility" "abilityName": "com.example.myapp.MyAbility"
}; };
this.context.startAbility(want, (err) => { this.context.startAbility(want, (err) => {
console.log('startAbility result:' + JSON.stringfy(err); console.log('startAbility result:' + JSON.stringfy(err));
} });
``` ```
...@@ -58,7 +58,7 @@ startAbility(want: Want): Promise&lt;void&gt;; ...@@ -58,7 +58,7 @@ startAbility(want: Want): Promise&lt;void&gt;;
}; };
this.context.startAbility(want).then((data) => { this.context.startAbility(want).then((data) => {
console.log('success:' + JSON.stringfy(data)); console.log('success:' + JSON.stringfy(data));
)).catch((error) => { }).catch((error) => {
console.log('failed:' + JSON.stringfy(error)); console.log('failed:' + JSON.stringfy(error));
}); });
``` ```
...@@ -78,8 +78,8 @@ terminateSelf(callback: AsyncCallback&lt;void&gt;): void; ...@@ -78,8 +78,8 @@ terminateSelf(callback: AsyncCallback&lt;void&gt;): void;
- 示例: - 示例:
``` ```
this.context.terminateSelf((err) => { this.context.terminateSelf((err) => {
console.log('terminateSelf result:' + JSON.stringfy(err); console.log('terminateSelf result:' + JSON.stringfy(err));
} });
``` ```
...@@ -98,7 +98,7 @@ terminateSelf(): Promise&lt;void&gt;; ...@@ -98,7 +98,7 @@ terminateSelf(): Promise&lt;void&gt;;
``` ```
this.context.terminateSelf(want).then((data) => { this.context.terminateSelf(want).then((data) => {
console.log('success:' + JSON.stringfy(data)); console.log('success:' + JSON.stringfy(data));
)).catch((error) => { }).catch((error) => {
console.log('failed:' + JSON.stringfy(error)); console.log('failed:' + JSON.stringfy(error));
}); });
``` ```
...@@ -128,8 +128,8 @@ connectAbility(want: Want, options: ConnectOptions): number; ...@@ -128,8 +128,8 @@ connectAbility(want: Want, options: ConnectOptions): number;
"abilityName": "com.example.myapp.MyAbility" "abilityName": "com.example.myapp.MyAbility"
}; };
let options = { let options = {
onConnect: function(elementName, proxy) {} onConnect: function(elementName, proxy) {},
onDisConnect: function(elementName) {} onDisConnect: function(elementName) {},
onFailed: function(code) {} onFailed: function(code) {}
} }
let connection = this.context.connectAbility(want,options); let connection = this.context.connectAbility(want,options);
...@@ -151,8 +151,8 @@ disconnectAbility(connection: number, callback:AsyncCallback&lt;void&gt;): void; ...@@ -151,8 +151,8 @@ disconnectAbility(connection: number, callback:AsyncCallback&lt;void&gt;): void;
- 示例: - 示例:
``` ```
this.context.disconnectAbility(connection, (err) => { // connection为connectAbility中的返回值 this.context.disconnectAbility(connection, (err) => { // connection为connectAbility中的返回值
console.log('terminateSelf result:' + JSON.stringfy(err); console.log('terminateSelf result:' + JSON.stringfy(err));
} });
``` ```
...@@ -176,7 +176,7 @@ disconnectAbility(connection: number): Promise&lt;void&gt;; ...@@ -176,7 +176,7 @@ disconnectAbility(connection: number): Promise&lt;void&gt;;
``` ```
this.context.disconnectAbility(connection).then((data) => { // connection为connectAbility中的返回值 this.context.disconnectAbility(connection).then((data) => { // connection为connectAbility中的返回值
console.log('success:' + JSON.stringfy(data)); console.log('success:' + JSON.stringfy(data));
)).catch((error) => { }).catch((error) => {
console.log('failed:' + JSON.stringfy(error)); console.log('failed:' + JSON.stringfy(error));
}); });
``` ```
......
...@@ -39,8 +39,10 @@ Extension生命周期回调,在创建时回调,执行初始化业务逻辑 ...@@ -39,8 +39,10 @@ Extension生命周期回调,在创建时回调,执行初始化业务逻辑
- 示例: - 示例:
``` ```
onCreate(want) { class ServiceExt extends ServiceExtension {
onCreate(want) {
console.log('onCreate, want:' + want.abilityName); console.log('onCreate, want:' + want.abilityName);
}
} }
``` ```
...@@ -53,9 +55,10 @@ Extension生命周期回调,在销毁时回调,执行资源清理等操作 ...@@ -53,9 +55,10 @@ Extension生命周期回调,在销毁时回调,执行资源清理等操作
- 示例: - 示例:
``` ```
onDestroy() { class ServiceExt extends ServiceExtension {
onDestroy() {
console.log('onDestroy'); console.log('onDestroy');
destory(); }
} }
``` ```
...@@ -74,8 +77,10 @@ Extension生命周期回调,如果是startAbility拉起的服务,会在onCre ...@@ -74,8 +77,10 @@ Extension生命周期回调,如果是startAbility拉起的服务,会在onCre
- 示例: - 示例:
``` ```
onRequest(want: Want, startId: number) { class ServiceExt extends ServiceExtension {
onRequest(want, startId) {
console.log('onRequest, want:' + want.abilityName); console.log('onRequest, want:' + want.abilityName);
}
} }
``` ```
...@@ -106,10 +111,11 @@ Extension生命周期回调,如果是connectAbility拉起的服务,会在onC ...@@ -106,10 +111,11 @@ Extension生命周期回调,如果是connectAbility拉起的服务,会在onC
onRemoteRequest(code, data, reply, option) { onRemoteRequest(code, data, reply, option) {
} }
} }
... class ServiceExt extends ServiceExtension {
onConnect(want) { onConnect(want) {
console.log('onConnect , want:' + want.abilityName); console.log('onConnect , want:' + want.abilityName);
return new StubTest("test"); return new StubTest("test");
}
} }
``` ```
...@@ -127,7 +133,9 @@ Extension的生命周期,断开服务连接时回调。 ...@@ -127,7 +133,9 @@ Extension的生命周期,断开服务连接时回调。
- 示例: - 示例:
``` ```
onDisconnect(want) { class ServiceExt extends ServiceExtension {
onDisconnect(want) {
console.log('onDisconnect, want:' + want.abilityName); console.log('onDisconnect, want:' + want.abilityName);
}
} }
``` ```
...@@ -16,6 +16,8 @@ createMessage\(pdu: Array<number\>, specification: string, callback: AsyncCallba ...@@ -16,6 +16,8 @@ createMessage\(pdu: Array<number\>, specification: string, callback: AsyncCallba
根据协议数据单元(PDU)和指定的短信协议创建短信实例,使用callback方式作为异步方法。 根据协议数据单元(PDU)和指定的短信协议创建短信实例,使用callback方式作为异步方法。
**系统能力**:SystemCapability.Telephony.SmsMms
**参数:** **参数:**
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
...@@ -42,6 +44,8 @@ createMessage\(pdu: Array<number\>, specification: string\): Promise<ShortMessag ...@@ -42,6 +44,8 @@ createMessage\(pdu: Array<number\>, specification: string\): Promise<ShortMessag
根据协议数据单元(PDU)和指定的短信协议创建短信实例,使用Promise方式作为异步方法。 根据协议数据单元(PDU)和指定的短信协议创建短信实例,使用Promise方式作为异步方法。
**系统能力**:SystemCapability.Telephony.SmsMms
**参数:** **参数:**
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
...@@ -75,7 +79,9 @@ sendMessage(options: SendMessageOptions): void ...@@ -75,7 +79,9 @@ sendMessage(options: SendMessageOptions): void
发送短信。 发送短信。
需要ohos.permission.SEND_MESSAGES权限。 **需要权限**:ohos.permission.SEND_MESSAGES
**系统能力**:SystemCapability.Telephony.SmsMms
**参数:** **参数:**
...@@ -108,6 +114,8 @@ getDefaultSmsSlotId\(callback: AsyncCallback<number\>\): void ...@@ -108,6 +114,8 @@ getDefaultSmsSlotId\(callback: AsyncCallback<number\>\): void
获取发送短信的默认SIM卡槽ID,使用callback方式作为异步方法。 获取发送短信的默认SIM卡槽ID,使用callback方式作为异步方法。
**系统能力**:SystemCapability.Telephony.SmsMms
**参数:** **参数:**
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
...@@ -129,6 +137,8 @@ getDefaultSmsSlotId\(\): Promise<number\> ...@@ -129,6 +137,8 @@ getDefaultSmsSlotId\(\): Promise<number\>
获取发送短信的默认SIM卡槽ID,使用Promise方式作为异步方法。 获取发送短信的默认SIM卡槽ID,使用Promise方式作为异步方法。
**系统能力**:SystemCapability.Telephony.SmsMms
**返回值:** **返回值:**
| 类型 | 说明 | | 类型 | 说明 |
...@@ -153,7 +163,9 @@ setSmscAddr\(slotId: number, smscAddr: string, callback: AsyncCallback<void\>\): ...@@ -153,7 +163,9 @@ setSmscAddr\(slotId: number, smscAddr: string, callback: AsyncCallback<void\>\):
设置短信服务中心(SMSC)地址,使用callback方式作为异步方法。 设置短信服务中心(SMSC)地址,使用callback方式作为异步方法。
需要ohos.permission.SET\_TELEPHONY\_STATE权限,该权限为系统权限。 **需要权限**:ohos.permission.SET_TELEPHONY_STATE,该权限为系统权限
**系统能力**:SystemCapability.Telephony.SmsMms
**参数:** **参数:**
...@@ -180,7 +192,9 @@ setSmscAddr\(slotId: number, smscAddr: string\): Promise<void\> ...@@ -180,7 +192,9 @@ setSmscAddr\(slotId: number, smscAddr: string\): Promise<void\>
设置短信服务中心(SMSC)地址,使用Promise方式作为异步方法。 设置短信服务中心(SMSC)地址,使用Promise方式作为异步方法。
需要ohos.permission.SET\_TELEPHONY\_STATE权限,该权限为系统权限。 **需要权限**:ohos.permission.SET_TELEPHONY_STATE,该权限为系统权限
**系统能力**:SystemCapability.Telephony.SmsMms
**参数:** **参数:**
...@@ -215,7 +229,9 @@ getSmscAddr\(slotId: number, callback: AsyncCallback<string\>\): void ...@@ -215,7 +229,9 @@ getSmscAddr\(slotId: number, callback: AsyncCallback<string\>\): void
获取短信服务中心(SMSC)地址,使用callback方式作为异步方法。 获取短信服务中心(SMSC)地址,使用callback方式作为异步方法。
需要ohos.permission.GET\_TELEPHONY\_STATE权限,该权限为系统权限。 **需要权限**:ohos.permission.GET_TELEPHONY_STATE,该权限为系统权限
**系统能力**:SystemCapability.Telephony.SmsMms
**参数:** **参数:**
...@@ -240,7 +256,9 @@ getSmscAddr\(slotId: number\): Promise<string\> ...@@ -240,7 +256,9 @@ getSmscAddr\(slotId: number\): Promise<string\>
获取短信服务中心(SMSC)地址,使用Promise方式作为异步方法。 获取短信服务中心(SMSC)地址,使用Promise方式作为异步方法。
需要ohos.permission.GET\_TELEPHONY\_STATE权限,该权限为系统权限。 **需要权限**:ohos.permission.GET_TELEPHONY_STATE,该权限为系统权限
**系统能力**:SystemCapability.Telephony.SmsMms
**参数:** **参数:**
...@@ -271,6 +289,8 @@ promise.then(data => { ...@@ -271,6 +289,8 @@ promise.then(data => {
短信实例。 短信实例。
**系统能力**:SystemCapability.Telephony.SmsMms
| 变量 | 类型 | 说明 | | 变量 | 类型 | 说明 |
| ------------------------ | --------------------------------------- | ------------------------------------------------------------ | | ------------------------ | --------------------------------------- | ------------------------------------------------------------ |
| emailAddress | string | 电子邮件地址。 | | emailAddress | string | 电子邮件地址。 |
...@@ -294,13 +314,13 @@ promise.then(data => { ...@@ -294,13 +314,13 @@ promise.then(data => {
短信类型。 短信类型。
| 变量 | 值 | 说明 | | 变量 | 值 | 说明 |
| ---------------- | ---- | ---------------------------------------- | | ---------------- | ---- | ------------------------------------------------------------ |
| UNKNOWN | 0 | 未知类型。 | | UNKNOWN | 0 | 未知类型。<br />**系统能力**:SystemCapability.Telephony.SmsMms |
| INSTANT_MESSAGE | 1 | 即时消息,收到后立即显示。 | | INSTANT_MESSAGE | 1 | 即时消息,收到后立即显示。<br />**系统能力**:SystemCapability.Telephony.SmsMms |
| OPTIONAL_MESSAGE | 2 | 存储在设备或SIM卡上的短信。 | | OPTIONAL_MESSAGE | 2 | 存储在设备或SIM卡上的短信。<br />**系统能力**:SystemCapability.Telephony.SmsMms |
| SIM_MESSAGE | 3 | 包含SIM卡信息的短信,需要存储在SIM卡中。 | | SIM_MESSAGE | 3 | 包含SIM卡信息的短信,需要存储在SIM卡中。<br />**系统能力**:SystemCapability.Telephony.SmsMms |
| FORWARD_MESSAGE | 4 | 要转发到另一台设备的短信。 | | FORWARD_MESSAGE | 4 | 要转发到另一台设备的短信。<br />**系统能力**:SystemCapability.Telephony.SmsMms |
## SendMessageOptions<a name=SendMessageOptions></a> ## SendMessageOptions<a name=SendMessageOptions></a>
...@@ -309,6 +329,8 @@ promise.then(data => { ...@@ -309,6 +329,8 @@ promise.then(data => {
根据SendMessageOptions中的可选参数content的值判断短信类型。 根据SendMessageOptions中的可选参数content的值判断短信类型。
**系统能力**:SystemCapability.Telephony.SmsMms
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| ---------------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ | | ---------------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ |
| slotId | number | 是 | 用于发送短信的SIM卡槽ID:<br/>- 0:卡槽1<br/>- 1:卡槽2 | | slotId | number | 是 | 用于发送短信的SIM卡槽ID:<br/>- 0:卡槽1<br/>- 1:卡槽2 |
...@@ -324,6 +346,8 @@ promise.then(data => { ...@@ -324,6 +346,8 @@ promise.then(data => {
回调实例。返回短信发送结果、存储已发送短信的URI和是否为长短信的最后一部分。 回调实例。返回短信发送结果、存储已发送短信的URI和是否为长短信的最后一部分。
**系统能力**:SystemCapability.Telephony.SmsMms
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| ---------- | ------------------------------- | ---- | ------------------------------------------------------------ | | ---------- | ------------------------------- | ---- | ------------------------------------------------------------ |
| isLastPart | boolean | 否 | 指定这是否是长短信的最后一部分。true表示这是长短信的最后一部分,false表示不是。默认为false。 | | isLastPart | boolean | 否 | 指定这是否是长短信的最后一部分。true表示这是长短信的最后一部分,false表示不是。默认为false。 |
...@@ -335,6 +359,8 @@ promise.then(data => { ...@@ -335,6 +359,8 @@ promise.then(data => {
回调实例。返回短信送达报告。 回调实例。返回短信送达报告。
**系统能力**:SystemCapability.Telephony.SmsMms
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| ------ | ------------------- | ---- | -------------- | | ------ | ------------------- | ---- | -------------- |
| pdu | Array&lt;number&gt; | 是 | 短信送达报告。 | | pdu | Array&lt;number&gt; | 是 | 短信送达报告。 |
...@@ -344,6 +370,8 @@ promise.then(data => { ...@@ -344,6 +370,8 @@ promise.then(data => {
短信发送结果。 短信发送结果。
**系统能力**:SystemCapability.Telephony.SmsMms
| 参数名 | 值 | 说明 | | 参数名 | 值 | 说明 |
| ------------------------------------ | ---- | ------------------------------------------------------ | | ------------------------------------ | ---- | ------------------------------------------------------ |
| SEND_SMS_SUCCESS | 0 | 发送短信成功。 | | SEND_SMS_SUCCESS | 0 | 发送短信成功。 |
......
# 蜂窝数据
>**说明:**
>
>本模块首批接口从API version 7开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
## 导入模块
```
import data from '@ohos.telephony.data';
```
## data.getDefaultCellularDataSlotId<a name=data.getDefaultCellularDataSlotId-callback></a>
getDefaultCellularDataSlotId(callback: AsyncCallback\<number\>): void
获取默认移动数据的SIM卡,使用callback方式作为异步方法。
**需要权限**:ohos.permission.GET_NETWORK_INFO
**系统能力**:SystemCapability.Telephony.CellularData
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | ----------------------- | ---- | ------------------------------------------ |
| callback | AsyncCallback\<number\> | 是 | 回调函数。<br />0:卡槽1。<br />1:卡槽2。 |
**示例:**
```
data.getDefaultCellularDataSlotId((err, data) => {
console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
});
```
## data.getDefaultCellularDataSlotId<a name=data.getDefaultCellularDataSlotId-promise></a>
getDefaultCellularDataSlotId(): Promise\<number\>
获取默认移动数据的SIM卡,使用Promise方式作为异步方法。
**需要权限**:ohos.permission.GET_NETWORK_INFO
**系统能力**:SystemCapability.Telephony.CellularData
**返回值:**
| 类型 | 说明 |
| ----------------- | ------------------------------------------------------------ |
| Promise\<number\> | 以Promise形式返回获取默认移动数据的SIM卡。<br />0:卡槽1。<br />1:卡槽2。 |
**示例:**
```
let promise = data.getDefaultCellularDataSlotId();
promise.then((data) => {
console.log(`test success, promise: data->${JSON.stringify(data)}`);
}).catch((err) => {
console.error(`test fail, promise: err->${JSON.stringify(err)}`);
});
```
## data.getCellularDataFlowType<a name=data.getCellularDataFlowType-callback></a>
getCellularDataFlowType(callback: AsyncCallback\<DataFlowType\>): void
获取蜂窝数据业务的上下行状态,使用callback方式作为异步方法。
**系统能力**:SystemCapability.Telephony.CellularData
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | ---------------------------------------------- | ---- | ---------- |
| callback | AsyncCallback\<[DataFlowType](#DataFlowType)\> | 是 | 回调函数。 |
**示例:**
```
data.getCellularDataFlowType((err, data) => {
console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
});
```
## data.getCellularDataFlowType<a name=data.getCellularDataFlowType-promise></a>
getCellularDataFlowType(): Promise\<DataFlowType\>
获取蜂窝数据业务的上下行状态,使用Promise方式作为异步方法。
**系统能力**:SystemCapability.Telephony.CellularData
**返回值:**
| 类型 | 说明 |
| ---------------------------------------- | ----------------------------------------------- |
| Promise\<[DataFlowType](#DataFlowType)\> | 以Promise形式返回获取蜂窝数据业务的上下行状态。 |
**示例:**
```
let promise = data.getCellularDataFlowType();
promise.then((data) => {
console.log(`test success, promise: data->${JSON.stringify(data)}`);
}).catch((err) => {
console.error(`test fail, promise: err->${JSON.stringify(err)}`);
});
```
## data.getCellularDataState<a name=data.getCellularDataState-callback></a>
getCellularDataState(callback: AsyncCallback\<DataConnectState\>): void
获取分组交换域(PS域)的连接状态,使用callback方式作为异步方法。
**系统能力**:SystemCapability.Telephony.CellularData
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | ------------------------------------------------------ | ---- | ---------- |
| callback | AsyncCallback\<[DataConnectState](#DataConnectState)\> | 是 | 回调函数。 |
**示例:**
```
data.getCellularDataState((err, data) => {
console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
});
```
## data.getCellularDataState<a name=data.getCellularDataState-promise></a>
getCellularDataState(): Promise\<DataConnectState\>
获取分组交换域(PS域)的连接状态,使用Promise方式作为异步方法。
**系统能力**:SystemCapability.Telephony.CellularData
**返回值:**
| 类型 | 说明 |
| ------------------------------------------------ | ------------------------------------- |
| Promise\<[DataConnectState](#DataConnectState)\> | 以Promise形式返回获取PS域的连接状态。 |
**示例:**
```
let promise = data.getCellularDataState();
promise.then((data) => {
console.log(`test success, promise: data->${JSON.stringify(data)}`);
}).catch((err) => {
console.error(`test fail, promise: err->${JSON.stringify(err)}`);
});
```
## data.isCellularDataEnabled<a name=data.isCellularDataEnabled-callback></a>
isCellularDataEnabled(callback: AsyncCallback\<boolean\>): void
检查蜂窝数据业务是否启用,使用callback方式作为异步方法。
**需要权限**:ohos.permission.GET_NETWORK_INFO
**系统能力**:SystemCapability.Telephony.CellularData
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | ------------------------ | ---- | ------------------------------------------------------------ |
| callback | AsyncCallback\<boolean\> | 是 | 回调函数。<br />true:蜂窝数据业务已启用。<br />false:蜂窝数据业务已禁用。 |
**示例:**
```
data.isCellularDataEnabled((err, data) => {
console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
});
```
## data.isCellularDataEnabled<a name=data.isCellularDataEnabled-promise></a>
isCellularDataEnabled(): Promise\<boolean\>
检查蜂窝数据业务是否启用,使用Promise方式作为异步方法。
**需要权限**:ohos.permission.GET_NETWORK_INFO
**系统能力**:SystemCapability.Telephony.CellularData
**返回值:**
| 类型 | 说明 |
| ------------------ | ------------------------------------------------------------ |
| Promise\<boolean\> | 以Promise形式返回检查蜂窝数据业务是否启用。<br />true:蜂窝数据业务已启用。<br />false:蜂窝数据业务已禁用。 |
**示例:**
```
let promise = data.isCellularDataEnabled();
promise.then((data) => {
console.log(`test success, promise: data->${JSON.stringify(data)}`);
}).catch((err) => {
console.error(`test fail, promise: err->${JSON.stringify(err)}`);
});
```
## data.isCellularDataRoamingEnabled<a name=data.isCellularDataRoamingEnabled-callback></a>
isCellularDataRoamingEnabled(slotId: number, callback: AsyncCallback\<boolean\>): void
检查蜂窝数据业务是否启用漫游,使用callback方式作为异步方法。
**需要权限**:ohos.permission.GET_NETWORK_INFO
**系统能力**:SystemCapability.Telephony.CellularData
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | ------------------------ | ---- | ------------------------------------------------------------ |
| slotId | number | 是 | 卡槽ID。<br />0:卡槽1。<br />1:卡槽2。 |
| callback | AsyncCallback\<boolean\> | 是 | 回调函数。<br />true:蜂窝数据业务已启用漫游。<br />false:蜂窝数据业务已禁用漫游。 |
**示例:**
```
data.isCellularDataRoamingEnabled(0,(err, data) => {
console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
});
```
## data.isCellularDataRoamingEnabled<a name=data.isCellularDataRoamingEnabled-promise></a>
isCellularDataRoamingEnabled(slotId: number): Promise\<boolean\>
检查蜂窝数据业务是否启用漫游,使用Promise方式作为异步方法。
**需要权限**:ohos.permission.GET_NETWORK_INFO
**系统能力**:SystemCapability.Telephony.CellularData
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ------ | ------ | ---- | ---------------------------------------- |
| slotId | number | 是 | 卡槽ID。<br />0:卡槽1。<br />1:卡槽2。 |
**返回值:**
| 类型 | 说明 |
| ------------------ | ------------------------------------------------------------ |
| Promise\<boolean\> | 以Promise形式返回检查蜂窝数据业务是否启用漫游。<br />true:蜂窝数据业务已启用漫游。<br />false:蜂窝数据业务已禁用漫游。 |
**示例:**
```
let promise = data.isCellularDataRoamingEnabled(0);
promise.then((data) => {
console.log(`test success, promise: data->${JSON.stringify(data)}`);
}).catch((err) => {
console.error(`test fail, promise: err->${JSON.stringify(err)}`);
});
```
## DataFlowType<a name=DataFlowType></a>
描述蜂窝数据流类型。
| 参数名 | 值 | 说明 |
| ------ | ---------------------- | ------------------------------------------------------------ |
| 0 | DATA_FLOW_TYPE_NONE | 表示没有上行或下行数据。<br />**系统能力**:SystemCapability.Telephony.CellularData |
| 1 | DATA_FLOW_TYPE_DOWN | 表示只有下行数据。<br />**系统能力**:SystemCapability.Telephony.CellularData |
| 2 | DATA_FLOW_TYPE_UP | 表示只有上行数据。<br />**系统能力**:SystemCapability.Telephony.CellularData |
| 3 | DATA_FLOW_TYPE_UP_DOWN | 表示有上下行数据。<br />**系统能力**:SystemCapability.Telephony.CellularData |
| 4 | DATA_FLOW_TYPE_DORMANT | 表示没有上下行数据,底层链路处于休眠状态。<br />**系统能力**:SystemCapability.Telephony.CellularData |
## DataConnectState<a name=DataConnectState></a>
描述蜂窝数据链路连接状态。
| 参数名 | 值 | 说明 |
| ------ | ----------------------- | ------------------------------------------------------------ |
| -1 | DATA_STATE_UNKNOWN | 表示蜂窝数据链路未知。<br />**系统能力**:SystemCapability.Telephony.CellularData |
| 0 | DATA_STATE_DISCONNECTED | 表示蜂窝数据链路断开。<br />**系统能力**:SystemCapability.Telephony.CellularData |
| 1 | DATA_STATE_CONNECTING | 表示正在连接蜂窝数据链路。<br />**系统能力**:SystemCapability.Telephony.CellularData |
| 2 | DATA_STATE_CONNECTED | 表示蜂窝数据链路已连接。<br />**系统能力**:SystemCapability.Telephony.CellularData |
| 3 | DATA_STATE_SUSPENDED | 表示蜂窝数据链路被挂起。<br />**系统能力**:SystemCapability.Telephony.CellularData |
\ No newline at end of file
# UriPermissionManager
- [导入模块](#导入模块)
- [verifyUriPermission](#verifyUriPermission)
- [verifyUriPermission](#verifyUriPermission)
> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
> 本模块首批接口从API 9开始支持。
Uri权限管理。
## 导入模块
```
import UriPermissionManager from '@@ohos.application.UriPermissionManager';
```
## verifyUriPermission
verifyUriPermission(uri: string, flag: wantConstant.Flags, accessTokenId: number, callback: AsyncCallback&lt;number&gt;): void
检验某个应用是否对指定的uri有flag指定的权限。
- 参数:
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| uri | string | 是 | 指向文件的uri,例如fileshare:///com.samples.filesharetest.FileShare/person/10。 |
| flag | wantConstant.Flags | 是 | uri的读权限或写权限。 |
| accessTokenId | number | 是 | 每个应用的唯一标识ID,开发者通过包管理接口自行获取。 |
| callback | AsyncCallback&lt;number&gt; | 是 | callback形式返回启动结果,返回0表示有权限,返回-1表示无权限。 |
- 示例:
```
let uri = "fileshare:///com.samples.filesharetest.FileShare/person/10"
UriPermissionManager.verifyUriPermission(uri, wantConstant.Flags.FLAG_AUTH_READ_URI_PERMISSION, accessTokenId, (result) => {
console.log("result.code = " + result.code)
}) // accessTokenId开发者通过包管理接口自行获取
```
## verifyUriPermission
verifyUriPermission(uri: string, flag: wantConstant.Flags, accessTokenId: number): Promise&lt;number&gt;
检验某个应用是否对指定的uri有flag指定的权限。
- 参数:
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| uri | string | 是 | 指向文件的uri,例如fileshare:///com.samples.filesharetest.FileShare/person/10。 |
| flag | wantConstant.Flags | 是 | uri的读权限或写权限。 |
| accessTokenId | number | 是 | 每个应用的唯一标识ID,开发者通过包管理接口自行获取。 |
- 返回值:
| 类型 | 说明 |
| -------- | -------- |
| Promise&lt;number&gt; | 返回0表示有权限,返回-1表示无权限。 |
- 示例:
```
let uri = "fileshare:///com.samples.filesharetest.FileShare/person/10"
UriPermissionManager.verifyUriPermission(uri, wantConstant.Flags.FLAG_AUTH_READ_URI_PERMISSION, accessTokenId)
.then((data) => {
console.log('Verification succeeded.' + data)
}).catch((error) => {
console.log('Verification failed.');
})
```
...@@ -3,25 +3,20 @@ ...@@ -3,25 +3,20 @@
> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
> 本模块首批接口从API version 8开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 > 本模块首批接口从API version 8开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
## 导入模块 ## 导入模块
``` ```
import usb from "@ohos.usb"; import usb from "@ohos.usb";
``` ```
## 权限
## usb.getDevices ## usb.getDevices
usb.getDevices(): Array&lt;Readonly&lt;USBDevice&gt;&gt; usb.getDevices(): Array&lt;Readonly&lt;USBDevice&gt;&gt;
获取USB设备列表。 获取USB设备列表。
**系统能力**: SystemCapability.USB.USBManager
- 返回值: - 返回值:
| 类型 | 说明 | | 类型 | 说明 |
| -------- | -------- | | -------- | -------- |
...@@ -92,6 +87,8 @@ usb.connectDevice(device: USBDevice): Readonly&lt;USBDevicePipe&gt; ...@@ -92,6 +87,8 @@ usb.connectDevice(device: USBDevice): Readonly&lt;USBDevicePipe&gt;
需要调用[usb.getDevices](#usbgetdevices)获取设备信息以及device;再调用[usb.requestRight](#usbrequestright)获取设备请求权限。 需要调用[usb.getDevices](#usbgetdevices)获取设备信息以及device;再调用[usb.requestRight](#usbrequestright)获取设备请求权限。
**系统能力**: SystemCapability.USB.USBManager
- 参数: - 参数:
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
...@@ -115,6 +112,8 @@ usb.hasRight(deviceName: string): boolean ...@@ -115,6 +112,8 @@ usb.hasRight(deviceName: string): boolean
判断是否有权访问该设备。 判断是否有权访问该设备。
**系统能力**: SystemCapability.USB.USBManager
- 参数: - 参数:
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
...@@ -139,6 +138,8 @@ usb.requestRight(deviceName: string): Promise&lt;boolean&gt; ...@@ -139,6 +138,8 @@ usb.requestRight(deviceName: string): Promise&lt;boolean&gt;
请求软件包的临时权限以访问设备。 请求软件包的临时权限以访问设备。
**系统能力**: SystemCapability.USB.USBManager
- 参数: - 参数:
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
...@@ -166,6 +167,8 @@ usb.claimInterface(pipe: USBDevicePipe, iface: USBInterface, force?: boolean): n ...@@ -166,6 +167,8 @@ usb.claimInterface(pipe: USBDevicePipe, iface: USBInterface, force?: boolean): n
需要调用[usb.getDevices](#usbgetdevices)获取设备信息以及interfaces;调用[usb.requestRight](#usbrequestright)获取设备请求权限;调用[usb.connectDevice](#usbconnectdevice)接口得到devicepipe作为参数。 需要调用[usb.getDevices](#usbgetdevices)获取设备信息以及interfaces;调用[usb.requestRight](#usbrequestright)获取设备请求权限;调用[usb.connectDevice](#usbconnectdevice)接口得到devicepipe作为参数。
**系统能力**: SystemCapability.USB.USBManager
- 参数: - 参数:
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
...@@ -193,6 +196,8 @@ usb.releaseInterface(pipe: USBDevicePipe, iface: USBInterface): number ...@@ -193,6 +196,8 @@ usb.releaseInterface(pipe: USBDevicePipe, iface: USBInterface): number
需要调用[usb.claimInterface](#usbclaiminterface)先获取接口,才能使用此方法释放接口。 需要调用[usb.claimInterface](#usbclaiminterface)先获取接口,才能使用此方法释放接口。
**系统能力**: SystemCapability.USB.USBManager
- 参数: - 参数:
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
...@@ -219,6 +224,8 @@ usb.setConfiguration(pipe: USBDevicePipe, config: USBConfig): number ...@@ -219,6 +224,8 @@ usb.setConfiguration(pipe: USBDevicePipe, config: USBConfig): number
需要调用[usb.getDevices](#usbgetdevices)获取设备信息以及config;调用[usb.requestRight](#usbrequestright)获取设备请求权限;调用[usb.connectDevice](#usbconnectdevice)得到devicepipe作为参数。 需要调用[usb.getDevices](#usbgetdevices)获取设备信息以及config;调用[usb.requestRight](#usbrequestright)获取设备请求权限;调用[usb.connectDevice](#usbconnectdevice)得到devicepipe作为参数。
**系统能力**: SystemCapability.USB.USBManager
- 参数: - 参数:
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
...@@ -245,6 +252,8 @@ usb.setInterface(pipe: USBDevicePipe, iface: USBInterface): number ...@@ -245,6 +252,8 @@ usb.setInterface(pipe: USBDevicePipe, iface: USBInterface): number
需要调用[usb.getDevices](#usbgetdevices)获取设备列表以及interfaces;调用[usb.requestRight](#usbrequestright)获取设备请求权限;调用[usb.connectDevice](#usbconnectdevice)得到devicepipe作为参数。 需要调用[usb.getDevices](#usbgetdevices)获取设备列表以及interfaces;调用[usb.requestRight](#usbrequestright)获取设备请求权限;调用[usb.connectDevice](#usbconnectdevice)得到devicepipe作为参数。
**系统能力**: SystemCapability.USB.USBManager
- 参数: - 参数:
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
...@@ -271,6 +280,8 @@ usb.getRawDescriptor(pipe: USBDevicePipe): Uint8Array ...@@ -271,6 +280,8 @@ usb.getRawDescriptor(pipe: USBDevicePipe): Uint8Array
需要调用[usb.getDevices](#usbgetdevices)获取设备列表;调用[usb.requestRight](#usbrequestright)获取设备请求权限;调用[usb.connectDevice](#usbconnectdevice)接口得到devicepipe作为参数。 需要调用[usb.getDevices](#usbgetdevices)获取设备列表;调用[usb.requestRight](#usbrequestright)获取设备请求权限;调用[usb.connectDevice](#usbconnectdevice)接口得到devicepipe作为参数。
**系统能力**: SystemCapability.USB.USBManager
- 参数: - 参数:
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
...@@ -295,6 +306,8 @@ usb.getFileDescriptor(pipe: USBDevicePipe): number ...@@ -295,6 +306,8 @@ usb.getFileDescriptor(pipe: USBDevicePipe): number
需要调用[usb.getDevices](#usbgetdevices)获取设备列表;调用[usb.requestRight](#usbrequestright)获取设备请求权限;调用[usb.connectDevice](#usbconnectdevice)接口得到devicepipe作为参数。 需要调用[usb.getDevices](#usbgetdevices)获取设备列表;调用[usb.requestRight](#usbrequestright)获取设备请求权限;调用[usb.connectDevice](#usbconnectdevice)接口得到devicepipe作为参数。
**系统能力**: SystemCapability.USB.USBManager
- 参数: - 参数:
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
...@@ -319,6 +332,8 @@ usb.controlTransfer(pipe: USBDevicePipe, contrlparam: USBControlParams, timeout? ...@@ -319,6 +332,8 @@ usb.controlTransfer(pipe: USBDevicePipe, contrlparam: USBControlParams, timeout?
需要调用[usb.getDevices](#usbgetdevices)获取设备列表;调用[usb.requestRight](#usbrequestright)获取设备请求权限;调用[usb.connectDevice](#usbconnectdevice)接口得到devicepipe作为参数。 需要调用[usb.getDevices](#usbgetdevices)获取设备列表;调用[usb.requestRight](#usbrequestright)获取设备请求权限;调用[usb.connectDevice](#usbconnectdevice)接口得到devicepipe作为参数。
**系统能力**: SystemCapability.USB.USBManager
- 参数: - 参数:
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
...@@ -347,6 +362,8 @@ usb.bulkTransfer(pipe: USBDevicePipe, endpoint: USBEndpoint, buffer: Uint8Array, ...@@ -347,6 +362,8 @@ usb.bulkTransfer(pipe: USBDevicePipe, endpoint: USBEndpoint, buffer: Uint8Array,
需要调用[usb.getDevices](#usbgetdevices)获取设备信息列表以及endpoint;再调用[usb.requestRight](#usbrequestright)获取设备请求权限;然后调用[usb.connectDevice](#usbconnectdevice)接口得到返回数据devicepipe之后,再次获取接口[usb.claimInterface](#usbclaiminterface);再调用usb.bulkTransfer接口。 需要调用[usb.getDevices](#usbgetdevices)获取设备信息列表以及endpoint;再调用[usb.requestRight](#usbrequestright)获取设备请求权限;然后调用[usb.connectDevice](#usbconnectdevice)接口得到返回数据devicepipe之后,再次获取接口[usb.claimInterface](#usbclaiminterface);再调用usb.bulkTransfer接口。
**系统能力**: SystemCapability.USB.USBManager
- 参数: - 参数:
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
...@@ -379,6 +396,8 @@ usb.closePipe(pipe: USBDevicePipe): number ...@@ -379,6 +396,8 @@ usb.closePipe(pipe: USBDevicePipe): number
需要调用[usb.getDevices](#usbgetdevices)获取设备列表;调用[usb.requestRight](#usbrequestright)获取设备请求权限;调用[usb.connectDevice](#usbconnectdevice)得到devicepipe作为参数。 需要调用[usb.getDevices](#usbgetdevices)获取设备列表;调用[usb.requestRight](#usbrequestright)获取设备请求权限;调用[usb.connectDevice](#usbconnectdevice)得到devicepipe作为参数。
**系统能力**: SystemCapability.USB.USBManager
- 参数: - 参数:
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
...@@ -402,14 +421,14 @@ usb.closePipe(pipe: USBDevicePipe): number ...@@ -402,14 +421,14 @@ usb.closePipe(pipe: USBDevicePipe): number
| 名称 | 参数类型 | 说明 | | 名称 | 参数类型 | 说明 |
| -------- | -------- | -------- | | -------- | -------- | -------- |
| address | number | 端点地址。 | | address | number | 端点地址。<br>**系统能力**: SystemCapability.USB.USBManager |
| attributes | number | 端点属性。 | | attributes | number | 端点属性。<br>**系统能力**: SystemCapability.USB.USBManager |
| interval | number | 端点间隔。 | | interval | number | 端点间隔。<br>**系统能力**: SystemCapability.USB.USBManager |
| maxPacketSize | number | 端点最大数据包大小。 | | maxPacketSize | number | 端点最大数据包大小。<br>**系统能力**: SystemCapability.USB.USBManager |
| direction | [USBRequestDirection](#usbrequestdirection) | 端点的方向。 | | direction | [USBRequestDirection](#usbrequestdirection) | 端点的方向。<br>**系统能力**: SystemCapability.USB.USBManager |
| number | number | 端点号。 | | number | number | 端点号。<br>**系统能力**: SystemCapability.USB.USBManager |
| type | number | 端点类型。 | | type | number | 端点类型。<br>**系统能力**: SystemCapability.USB.USBManager |
| interfaceId | number | 端点所属的接口的唯一标识。 | | interfaceId | number | 端点所属的接口的唯一标识。<br>**系统能力**: SystemCapability.USB.USBManager |
## USBInterface ## USBInterface
...@@ -418,13 +437,13 @@ usb.closePipe(pipe: USBDevicePipe): number ...@@ -418,13 +437,13 @@ usb.closePipe(pipe: USBDevicePipe): number
| 名称 | 参数类型 | 说明 | | 名称 | 参数类型 | 说明 |
| -------- | -------- | -------- | | -------- | -------- | -------- |
| id | number | 接口的唯一标识。 | | id | number | 接口的唯一标识。<br>**系统能力**: SystemCapability.USB.USBManager |
| protocol | number | 接口的协议。 | | protocol | number | 接口的协议。<br>**系统能力**: SystemCapability.USB.USBManager |
| clazz | number | 设备类型。 | | clazz | number | 设备类型。<br>**系统能力**: SystemCapability.USB.USBManager |
| subClass | number | 设备子类。 | | subClass | number | 设备子类。<br>**系统能力**: SystemCapability.USB.USBManager |
| alternateSetting | number | 在同一个接口中的多个描述符中进行切换设置。 | | alternateSetting | number | 在同一个接口中的多个描述符中进行切换设置。<br>**系统能力**: SystemCapability.USB.USBManager |
| name | string | 接口名称。 | | name | string | 接口名称。<br>**系统能力**: SystemCapability.USB.USBManager |
| endpoints | Array&lt;[USBEndpoint](#usbendpoint)&gt; | 当前接口所包含的端点。 | | endpoints | Array&lt;[USBEndpoint](#usbendpoint)&gt; | 当前接口所包含的端点。<br>**系统能力**: SystemCapability.USB.USBManager |
## USBConfig ## USBConfig
...@@ -433,13 +452,13 @@ USB配置,一个[USBDevice](#usbdevice)中可以含有多个配置。 ...@@ -433,13 +452,13 @@ USB配置,一个[USBDevice](#usbdevice)中可以含有多个配置。
| 名称 | 参数类型 | 说明 | | 名称 | 参数类型 | 说明 |
| -------- | -------- | -------- | | -------- | -------- | -------- |
| id | number | 配置的唯一标识。 | | id | number | 配置的唯一标识。<br>**系统能力**: SystemCapability.USB.USBManager |
| attributes | number | 配置的属性。 | | attributes | number | 配置的属性。<br>**系统能力**: SystemCapability.USB.USBManager |
| maxPower | number | 最大功耗,以毫安为单位。 | | maxPower | number | 最大功耗,以毫安为单位。<br>**系统能力**: SystemCapability.USB.USBManager |
| name | string | 配置的名称,可以为空。 | | name | string | 配置的名称,可以为空。<br>**系统能力**: SystemCapability.USB.USBManager |
| isRemoteWakeup | boolean | 检查当前配置是否支持远程唤醒。 | | isRemoteWakeup | boolean | 检查当前配置是否支持远程唤醒。<br>**系统能力**: SystemCapability.USB.USBManager |
| isSelfPowered | boolean | 检查当前配置是否支持独立电源。 | | isSelfPowered | boolean | 检查当前配置是否支持独立电源。<br>**系统能力**: SystemCapability.USB.USBManager |
| interfaces | Array&nbsp;&lt;[USBInterface](#usbinterface)&gt; | 配置支持的接口属性。 | | interfaces | Array&nbsp;&lt;[USBInterface](#usbinterface)&gt; | 配置支持的接口属性。<br>**系统能力**: SystemCapability.USB.USBManager |
## USBDevice ## USBDevice
...@@ -448,19 +467,19 @@ USB设备信息。 ...@@ -448,19 +467,19 @@ USB设备信息。
| 名称 | 参数类型 | 说明 | | 名称 | 参数类型 | 说明 |
| -------- | -------- | -------- | | -------- | -------- | -------- |
| busNum | number | 总线地址。 | | busNum | number | 总线地址。<br>**系统能力**: SystemCapability.USB.USBManager |
| devAddress | number | 设备地址。 | | devAddress | number | 设备地址。<br>**系统能力**: SystemCapability.USB.USBManager |
| serial | string | 序列号。 | | serial | string | 序列号。<br>**系统能力**: SystemCapability.USB.USBManager |
| name | string | 设备名字。 | | name | string | 设备名字。<br>**系统能力**: SystemCapability.USB.USBManager |
| manufacturerName | string | 产商信息。 | | manufacturerName | string | 产商信息。<br>**系统能力**: SystemCapability.USB.USBManager |
| productName | string | 产品信息。 | | productName | string | 产品信息。<br>**系统能力**: SystemCapability.USB.USBManager |
| version | string | 版本。 | | version | string | 版本。<br>**系统能力**: SystemCapability.USB.USBManager |
| vendorId | number | 厂商ID。 | | vendorId | number | 厂商ID。<br>**系统能力**: SystemCapability.USB.USBManager |
| productId | number | 产品ID。 | | productId | number | 产品ID。<br>**系统能力**: SystemCapability.USB.USBManager |
| clazz | number | 设备类。 | | clazz | number | 设备类。<br>**系统能力**: SystemCapability.USB.USBManager |
| subClass | number | 设备子类。 | | subClass | number | 设备子类。<br>**系统能力**: SystemCapability.USB.USBManager |
| protocol | number | 设备协议码。 | | protocol | number | 设备协议码。<br>**系统能力**: SystemCapability.USB.USBManager |
| configs | Array&lt;[USBConfig](#usbconfig)&gt; | 设备配置描述符信息。 | | configs | Array&lt;[USBConfig](#usbconfig)&gt; | 设备配置描述符信息。<br>**系统能力**: SystemCapability.USB.USBManager |
## USBDevicePipe ## USBDevicePipe
...@@ -469,8 +488,8 @@ USB设备消息传输通道,用于确定设备。 ...@@ -469,8 +488,8 @@ USB设备消息传输通道,用于确定设备。
| 名称 | 参数类型 | 说明 | | 名称 | 参数类型 | 说明 |
| -------- | -------- | -------- | | -------- | -------- | -------- |
| busNum | number | 总线地址。 | | busNum | number | 总线地址。<br>**系统能力**: SystemCapability.USB.USBManager |
| devAddress | number | 设备地址。 | | devAddress | number | 设备地址。<br>**系统能力**: SystemCapability.USB.USBManager |
## USBControlParams ## USBControlParams
...@@ -480,11 +499,11 @@ USB设备消息传输通道,用于确定设备。 ...@@ -480,11 +499,11 @@ USB设备消息传输通道,用于确定设备。
| 名称 | 参数类型 | 说明 | | 名称 | 参数类型 | 说明 |
| -------- | -------- | -------- | | -------- | -------- | -------- |
| request | number | 请求类型。 | | request | number | 请求类型。 |
| target | [USBRequestTargetType](#usbrequesttargettype) | 请求目标类型。 | | target | [USBRequestTargetType](#usbrequesttargettype) | 请求目标类型。<br>**系统能力**: SystemCapability.USB.USBManager |
| reqType | [USBControlRequestType](#usbcontrolrequesttype) | 请求控制类型。 | | reqType | [USBControlRequestType](#usbcontrolrequesttype) | 请求控制类型。<br>**系统能力**: SystemCapability.USB.USBManager |
| value | number | 请求参数。 | | value | number | 请求参数。<br>**系统能力**: SystemCapability.USB.USBManager |
| index | number | 请求参数value对应的索引值。 | | index | number | 请求参数value对应的索引值。<br>**系统能力**: SystemCapability.USB.USBManager |
| data | Uint8Array | 用于写入或读取的缓冲区。 | | data | Uint8Array | 用于写入或读取的缓冲区。<br>**系统能力**: SystemCapability.USB.USBManager |
## USBRequestTargetType ## USBRequestTargetType
...@@ -494,10 +513,10 @@ USB设备消息传输通道,用于确定设备。 ...@@ -494,10 +513,10 @@ USB设备消息传输通道,用于确定设备。
| 名称 | 默认值 | 说明 | | 名称 | 默认值 | 说明 |
| -------- | -------- | -------- | | -------- | -------- | -------- |
| USB_REQUEST_TARGET_DEVICE | 0 | 设备。 | | USB_REQUEST_TARGET_DEVICE | 0 | 设备。<br>**系统能力**: SystemCapability.USB.USBManager |
| USB_REQUEST_TARGET_INTERFACE | 1 | 接口。 | | USB_REQUEST_TARGET_INTERFACE | 1 | 接口。<br>**系统能力**: SystemCapability.USB.USBManager |
| USB_REQUEST_TARGET_ENDPOINT | 2 | 端点。 | | USB_REQUEST_TARGET_ENDPOINT | 2 | 端点。<br>**系统能力**: SystemCapability.USB.USBManager |
| USB_REQUEST_TARGET_OTHER | 3 | 其他。 | | USB_REQUEST_TARGET_OTHER | 3 | 其他。<br>**系统能力**: SystemCapability.USB.USBManager |
## USBControlRequestType ## USBControlRequestType
...@@ -506,9 +525,9 @@ USB设备消息传输通道,用于确定设备。 ...@@ -506,9 +525,9 @@ USB设备消息传输通道,用于确定设备。
| 名称 | 默认值 | 说明 | | 名称 | 默认值 | 说明 |
| -------- | -------- | -------- | | -------- | -------- | -------- |
| USB_REQUEST_TYPE_STANDARD | 0 | 标准。 | | USB_REQUEST_TYPE_STANDARD | 0 | 标准。<br>**系统能力**: SystemCapability.USB.USBManager |
| USB_REQUEST_TYPE_CLASS | 1 | 类。 | | USB_REQUEST_TYPE_CLASS | 1 | 类。<br>**系统能力**: SystemCapability.USB.USBManager |
| USB_REQUEST_TYPE_VENDOR | 2 | 厂商。 | | USB_REQUEST_TYPE_VENDOR | 2 | 厂商。<br>**系统能力**: SystemCapability.USB.USBManager |
## USBRequestDirection ## USBRequestDirection
...@@ -517,12 +536,12 @@ USB设备消息传输通道,用于确定设备。 ...@@ -517,12 +536,12 @@ USB设备消息传输通道,用于确定设备。
| 名称 | 默认值 | 说明 | | 名称 | 默认值 | 说明 |
| -------- | -------- | -------- | | -------- | -------- | -------- |
| USB_REQUEST_TYPE_STANDARD | 0 | 写数据,主设备往从设备。 | | USB_REQUEST_TYPE_STANDARD | 0 | 写数据,主设备往从设备。<br>**系统能力**: SystemCapability.USB.USBManager |
| USB_REQUEST_TYPE_CLASS | 0x80 | 读数据,从设备往主设备。 | | USB_REQUEST_TYPE_CLASS | 0x80 | 读数据,从设备往主设备。<br>**系统能力**: SystemCapability.USB.USBManager |
| 名称 | 默认值 | 说明 | | 名称 | 默认值 | 说明 |
| -------- | -------- | -------- | | -------- | -------- | -------- |
| NONE | 0 | 无。 | | NONE | 0 | 无。<br>**系统能力**: SystemCapability.USB.USBManager |
| ACM | 1 | 串口设备。 | | ACM | 1 | 串口设备。<br>**系统能力**: SystemCapability.USB.USBManager |
| ECM | 2 | 网口设备。 | | ECM | 2 | 网口设备。<br>**系统能力**: SystemCapability.USB.USBManager |
| HDC | 4 | HDC设备。 | | HDC | 4 | HDC设备。<br>**系统能力**: SystemCapability.USB.USBManager |
...@@ -3,494 +3,976 @@ ...@@ -3,494 +3,976 @@
> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
> 本模块首批接口从API version 6开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 > 本模块首批接口从API version 6开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
## 导入模块 ## 导入模块
``` ```
import window from '@ohos.window'; import window from '@ohos.window';
``` ```
## WindowType<sup>7+</sup><a name="windowtype"></a>
窗口类型。
| 名称 | 默认值 | 说明 |
| ----------------- | ------ | ------------------------------------------------------------ |
| TYPE_APP | 0 | 表示应用子窗口。<br/>**系统能力**:SystemCapability.WindowManager.WindowManager.Core |
| TYPE_SYSTEM_ALERT | 1 | 表示系统告警窗口。<br/>**系统能力**:SystemCapability.WindowManager.WindowManager.Core |
## 系统能力 ## AvoidAreaType<sup>7+</sup><a name="avoidareatype"></a>
SystemCapability.WindowManager.WindowManager.Core
窗口内容需要规避区域的类型。
| 名称 | 默认值 | 说明 |
| ----------- | ------ | ------------------------------------------------------------ |
| TYPE_SYSTEM | 0 | 表示系统默认区域。<br/>**系统能力**:SystemCapability.WindowManager.WindowManager.Core |
| TYPE_CUTOUT | 1 | 表示刘海屏区域。<br/>**系统能力**:SystemCapability.WindowManager.WindowManager.Core |
## 权限列表 ## WindowMode<sup>7+</sup><a name="windowmode"></a>
ohos.permission.SYSTEM_FLOAT_WINDOW 窗口模式。
| 名称 | 默认值 | 说明 |
| ---------- | ------ | ------------------------------------------------------------ |
| UNDEFINED | 1 | 表示APP未定义窗口模式。<br/>**系统能力**:SystemCapability.WindowManager.WindowManager.Core |
| FULLSCREEN | 2 | 表示APP全屏模式。<br/>**系统能力**:SystemCapability.WindowManager.WindowManager.Core |
| PRIMARY | 3 | 表示APP分屏多窗口主要模式。<br/>**系统能力**:SystemCapability.WindowManager.WindowManager.Core |
| SECONDARY | 4 | 表示APP分屏多窗口次要模式。<br/>**系统能力**:SystemCapability.WindowManager.WindowManager.Core |
| FLOATING | 5 | 表示APP自由悬浮形式窗口模式。<br/>**系统能力**:SystemCapability.WindowManager.WindowManager.Core |
## SystemBarProperties ## SystemBarProperties<a name="systembarproperties"></a>
状态栏导航栏的属性。 状态栏导航栏的属性。
| 名称 | 参数类型 | 可读 | 可写 | 说明 | | 名称 | 参数类型 | 可读 | 可写 | 说明 |
| -------- | -------- | -------- | -------- | -------- | | -------------------------------------- | -------- | ---- | ---- | ------------------------------------------------------------ |
| statusBarColor | string | 是 | 是 | 状态栏颜色,为16进制颜色,例如"\#00FF00"或"\#FF00FF00"。 | | statusBarColor | string | 是 | 是 | 状态栏背景颜色,为16进制RGB或ARGB颜色,例如"\#00FF00"或"\#FF00FF00"。<br/>**系统能力**:SystemCapability.WindowManager.WindowManager.Core |
| isStatusBarLightIcon<sup>7+</sup> | boolean | 是 | 是 | 状态栏图标是否为高亮状态。 | | isStatusBarLightIcon<sup>7+</sup> | boolean | 否 | 是 | 状态栏图标是否为高亮状态。<br/>**系统能力**:SystemCapability.WindowManager.WindowManager.Core |
| navigationBarColor | string | 是 | 是 | 导航栏颜色,为16进制颜色,例如"\#00FF00"或"\#FF00FF00"。 | | statusBarContentColor<sup>8+</sup> | string | 否 | 是 | 状态栏文字颜色。<br/>**系统能力**:SystemCapability.WindowManager.WindowManager.Core |
| isNavigationBarLightIcon<sup>7+</sup> | boolean | 是 | 是 | 导航栏图标是否为高亮状态。 | | navigationBarColor | string | 是 | 是 | 导航栏背景颜色,为16进制RGB或ARGB颜色,例如"\#00FF00"或"\#FF00FF00"。<br/>**系统能力**:SystemCapability.WindowManager.WindowManager.Core |
| isNavigationBarLightIcon<sup>7+</sup> | boolean | 否 | 否 | 导航栏图标是否为高亮状态。<br/>**系统能力**:SystemCapability.WindowManager.WindowManager.Core |
| navigationBarContentColor<sup>8+</sup> | string | 否 | 是 | 导航栏文字颜色。<br/>**系统能力**:SystemCapability.WindowManager.WindowManager.Core |
## SystemBarRegionTint <sup>8+</sup><a name="systembartegiontint"></a>
单个导航栏或状态栏回调信息。
| 名称 | 参数类型 | 可读 | 可写 | 说明 |
| --------------- | ------------------------- | ---- | ---- | ------------------------------------------------------------ |
| type | [WindowType](#windowtype) | 是 | 是 | 当前属性改变的系统栏类型,仅支持类型为导航栏、状态栏的系统栏。<br/>**系统能力**:SystemCapability.WindowManager.WindowManager.Core |
| isEnable | boolean | 是 | 是 | 当前系统栏是否显示。<br/>**系统能力**:SystemCapability.WindowManager.WindowManager.Core |
| region | [Rect](#rect) | 是 | 是 | 当前系统栏的位置及大小。<br/>**系统能力**:SystemCapability.WindowManager.WindowManager.Core |
| backgroundColor | string | 是 | 是 | 系统栏背景颜色,为16进制RGB或ARGB颜色,例如"\#00FF00"或"\#FF00FF00"。<br/>**系统能力**:SystemCapability.WindowManager.WindowManager.Core |
| contentColor | string | 是 | 是 | 系统栏文字颜色。<br/>**系统能力**:SystemCapability.WindowManager.WindowManager.Core |
## SystemBarTintState <sup>8+</sup><a name="systembartintstate"></a>
当前系统栏回调信息集合。
| 名称 | 参数类型 | 可读 | 可写 | 说明 |
| ---------- | -------------------------------------------------- | ---- | ---- | ------------------------------------------------------------ |
| displayId | number | 是 | 否 | 当前物理屏幕id。<br/>**系统能力**:SystemCapability.WindowManager.WindowManager.Core |
| regionTint | Array<[SystemBarRegionTint](#systembartegiontint)> | 是 | 是 | 当前改变所有的系统栏信息。<br/>**系统能力**:SystemCapability.WindowManager.WindowManager.Core |
## Rect<sup>7+</sup><a name="rect"></a> ## Rect<sup>7+</sup><a name="rect"></a>
矩形。 矩形。
| 名称 | 参数类型 | 可读 | 可写 | 说明 | | 名称 | 参数类型 | 可读 | 可写 | 说明 |
| -------- | -------- | -------- | -------- | -------- | | ------ | -------- | ---- | ---- | ------------------------------------------------------------ |
| left | number | 是 | 是 | 矩形区域的左边界。 | | left | number | 是 | 是 | 矩形区域的左边界。<br/>**系统能力**:SystemCapability.WindowManager.WindowManager.Core |
| top | number | 是 | 是 | 矩形区域的上边界。 | | top | number | 是 | 是 | 矩形区域的上边界。<br/>**系统能力**:SystemCapability.WindowManager.WindowManager.Core |
| width | number | 是 | 是 | 矩形区域的宽度。 | | width | number | 是 | 是 | 矩形区域的宽度。<br/>**系统能力**:SystemCapability.WindowManager.WindowManager.Core |
| height | number | 是 | 是 | 矩形区域的高度。 | | height | number | 是 | 是 | 矩形区域的高度。<br/>**系统能力**:SystemCapability.WindowManager.WindowManager.Core |
## AvoidArea<sup>7+</sup><a name="avoidarea"></a> ## AvoidArea<sup>7+</sup><a name="avoidarea"></a>
表示窗口内容规避区域。 表示窗口内容规避区域。
| 名称 | 参数类型 | 可读 | 可写 | 说明 | | 名称 | 参数类型 | 可读 | 可写 | 说明 |
| -------- | -------- | -------- | -------- | -------- | | ---------- | ------------- | ---- | ---- | ------------------------------------------------------------ |
| leftRect | [Rect](#rect) | 是 | 是 | 屏幕左侧的矩形区。 | | leftRect | [Rect](#rect) | 是 | 是 | 屏幕左侧的矩形区。<br/>**系统能力**:SystemCapability.WindowManager.WindowManager.Core |
| topRect | [Rect](#rect) | 是 | 是 | 屏幕顶部的矩形区。 | | topRect | [Rect](#rect) | 是 | 是 | 屏幕顶部的矩形区。<br/>**系统能力**:SystemCapability.WindowManager.WindowManager.Core |
| rightRect | [Rect](#rect) | 是 | 是 | 屏幕右侧的矩形区。 | | rightRect | [Rect](#rect) | 是 | 是 | 屏幕右侧的矩形区。<br/>**系统能力**:SystemCapability.WindowManager.WindowManager.Core |
| bottomRect | [Rect](#rect) | 是 | 是 | 屏幕底部的矩形区。 | | bottomRect | [Rect](#rect) | 是 | 是 | 屏幕底部的矩形区。<br/>**系统能力**:SystemCapability.WindowManager.WindowManager.Core |
## Size<sup>7+</sup><a name="size"></a> ## Size<sup>7+</sup><a name="size"></a>
窗口大小。 窗口大小。
| 名称 | 参数类型 | 可读 | 可写 | 说明 | | 名称 | 参数类型 | 可读 | 可写 | 说明 |
| -------- | -------- | -------- | -------- | -------- | | ------ | -------- | ---- | ---- | ------------------------------------------------------------ |
| width | number | 是 | 是 | 窗口宽度。 | | width | number | 是 | 是 | 窗口宽度。<br/>**系统能力**:SystemCapability.WindowManager.WindowManager.Core |
| height | number | 是 | 是 | 窗口高度。 | | height | number | 是 | 是 | 窗口高度。<br/>**系统能力**:SystemCapability.WindowManager.WindowManager.Core |
## WindowProperties ## WindowProperties<a name="windowproperties"></a>
窗口属性。 窗口属性。
| 名称 | 参数类型 | 可读 | 可写 | 说明 | | 名称 | 参数类型 | 可读 | 可写 | 说明 |
| -------- | -------- | -------- | -------- | -------- | | ------------------------------- | ------------------------- | ---- | ---- | ------------------------------------------------------------ |
| windowRect<sup>7+</sup> | [Rect](#rect) | 是 | 否 | 窗口尺寸。 | | windowRect<sup>7+</sup> | [Rect](#rect) | 是 | 是 | 窗口尺寸。<br/>**系统能力**:SystemCapability.WindowManager.WindowManager.Core |
| type<sup>7+</sup> | [WindowType](#windowtype) | 是 | 否 | 窗口类型。 | | type<sup>7+</sup> | [WindowType](#windowtype) | 是 | 是 | 窗口类型。<br/>**系统能力**:SystemCapability.WindowManager.WindowManager.Core |
| brightness | number | 是 | 是 | 屏幕亮度,取值范围为0~1,1表示最大亮度值。 | | isFullScreen | boolean | 是 | 是 | 是否全屏,默认为false。<br/>**系统能力**:SystemCapability.WindowManager.WindowManager.Core |
| isTransparent<sup>7+</sup> | boolean | 是 | 是 | 窗口是否透明,默认为false。 | | isLayoutFullScreen<sup>7+</sup> | boolean | 是 | 是 | 窗口是否为沉浸式,默认为false。<br/>**系统能力**:SystemCapability.WindowManager.WindowManager.Core |
| isFullScreen | boolean | 是 | 是 | 是否全屏,默认为false。 | | focusable<sup>7+</sup> | boolean | 是 | 否 | 窗口是否可聚焦,默认为true。<br/>**系统能力**:SystemCapability.WindowManager.WindowManager.Core |
| isKeepScreenOn | boolean | 是 | 是 | 屏幕是否常亮,默认为false。 | | touchable<sup>7+</sup> | boolean | 是 | 否 | 窗口是否可触摸,默认为true。<br/>**系统能力**:SystemCapability.WindowManager.WindowManager.Core |
| dimBehindValue<sup>7+</sup> | number | 是 | 是 | 靠后的窗口的暗度值,取值范围为0~1,1表示最暗。 |
| isLayoutFullScreen<sup>7+</sup> | boolean | 是 | 是 | 窗口是否为沉浸式,默认为false。 |
| focusable<sup>7+</sup> | boolean | 是 | 是 | 窗口是否可聚焦,默认为true。 |
| touchable<sup>7+</sup> | boolean | 是 | 是 | 窗口是否可触摸,默认为true。 |
| isPrivacyMode<sup>7+</sup> | boolean | 是 | 是 | 隐私模式,默认为false。 |
| isRoundCorner<sup>7+</sup> | boolean | 是 | 是 | 窗口是否为圆角。 |
## SplitScreenBoundsInfo<sup>7+</sup><a name="splitscreenboundsinfo"></a> ## ColorSpace<sup>8+</sup><a name="colorspace"></a>
分屏边界相关信息 色域模式
| 名称 | 类型 | 说明 | | 名称 | 默认值 | 说明 |
| -------- | -------- | -------- | | ---------- | ------ | ------------------------------------------------------------ |
| [splitMode](#splitmode) | number | 表示分屏模式。 | | DEFAULT | 0 | 默认色域模式。<br/>**系统能力**:SystemCapability.WindowManager.WindowManager.Core |
| primaryBounds | [Rect](#rect) | 表示主要边界信息,返回Rect类实例。 | | WIDE_GAMUT | 1 | 广色域模式。<br/>**系统能力**:SystemCapability.WindowManager.WindowManager.Core |
| secondaryBounds | [Rect](#rect) | 表示次要边界信息,返回Rect类实例。 |
## window.create<sup>7</sup><a name="window-create"></a>
## window.getTopWindow<a name="window-gettopwindow"></a> create(id: string, type: WindowType, callback: AsyncCallback&lt;Window&gt;): void
getTopWindow(callback: AsyncCallback&lt;Window&gt;): void 创建子窗口,使用callback方式作为异步方法。
获取当前窗口,用于获取到window实例。 **系统能力**:SystemCapability.WindowManager.WindowManager.Core
- 参数 - 参数
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | 参数名 | 类型 | 必填 | 说明 |
| callback | AsyncCallback&lt;[Window](#window)&gt; | 是 | 回调返回当前窗口对象。 | | -------- | -------------------------------------- | ---- | -------------------------- |
| id | string | 是 | 窗口id。 |
| type | [WindowType](#windowtype) | 是 | 窗口类型。 |
| callback | AsyncCallback&lt;[Window](#window)&gt; | 是 | 回调返回创建的子窗口对象。 |
- 示例 - 示例
``` ```
window.getTopWindow((err, data) => { window.create("first", window.WindowType.TYPE_APP, (err, data) => {
windowClass = data;
if (err) { if (err) {
console.error('Failed to obtain the top window. Cause: ' + JSON.stringify(err)); console.error('Failed to create the subWindow. Cause: ' + JSON.stringify(err));
return; return;
} }
console.info('Succeeded in obtaining the top window. Data: ' + JSON.stringify(data)); console.info('SubWindow created. Data: ' + JSON.stringify(data))
windowClass = data; windowClass.resetSize(500, 1000);
}); });
``` ```
## window.create<sup>7</sup>
## window.create<sup>7+</sup> create(id: string, type: WindowType): Promise&lt;Window&gt;
create(id: string, type: WindowType, callback: AsyncCallback&lt;Window&gt;): void 创建子窗口,使用Promise方式作为异步方法。
创建子窗口。 **系统能力**:SystemCapability.WindowManager.WindowManager.Core
- 参数 - 参数
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| id | string | 是 | 窗口id。 |
| type | [WindowType](#windowtype) | 是 | 窗口类型。 |
| callback | AsyncCallback&lt;[Window](#window)&gt; | 是 | 回调返回当前窗口对象。 |
- 示例 | 参数名 | 类型 | 必填 | 说明 |
| ------ | ------------------------- | ---- | ---------- |
| id | string | 是 | 窗口id。 |
| type | [WindowType](#windowtype) | 是 | 窗口类型。 |
- 返回值
``` | 类型 | 说明 |
window.create("first", 1, (err, data) => { | -------------------------------- | ------------------------------------------------- |
windowClass = data; | Promise&lt;[Window](#window)&gt; | 以Promise形式返回结果,返回当前创建的子窗口对象。 |
if (err) {
console.error('Failed to create the subWindow. Cause: ' + JSON.stringify(err)); - 示例
return;
} ```
console.info('SubWindow created. Data: ' + JSON.stringify(data)) let promise = window.create("first", window.WindowType.TYPE_APP);
windowClass.resetSize(500, 1000); promise.then((data)=> {
windowClass.setOutsideTouchable(true); console.info('SubWindow created. Data: ' + JSON.stringify(data))
windowClass.loadContent("pages/index/index", (err, data) => { }).catch((err)=>{
console.error('Failed to create the subWindow. Cause: ' + JSON.stringify(err));
}); });
}) ```
```
## window.create<sup>8+</sup>
## window.find<sup>7+</sup> create(ctx: Context, id: string, type: WindowType, callback: AsyncCallback&lt;Window&gt;): void
当Context为[ServiceExtensionContext](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis/js-apis-service-extension-context.md)时,创建系统窗口,使用callback方式作为异步方法。
**系统能力**:SystemCapability.WindowManager.WindowManager.Core
- 参数
| 参数名 | 类型 | 必填 | 说明 |
| -------- | ------------------------------------------------------------ | ---- | ----------------------------------------------------- |
| ctx | [Context](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis/js-apis-Context.md) | 是 | 当前应用上下文信息, 为ServiceExtensionContext的基类。 |
| id | string | 是 | 窗口id。 |
| type | [WindowType](#windowtype) | 是 | 窗口类型。 |
| callback | AsyncCallback&lt;[Window](#window)&gt; | 是 | 回调返回当前窗口对象。 |
- 示例
```
window.create(this.context, "alertWindow", window.WindowType.TYPE_SYSTEM_ALERT, (err, data) => {
windowClass = data;
if (err) {
console.error('Failed to create the Window. Cause: ' + JSON.stringify(err));
return;
}
console.info('Window created. Data: ' + JSON.stringify(data))
windowClass.resetSize(500, 1000);
});
```
## window.create<sup>8+</sup>
function create(ctx: Context, id: string, type: WindowType): Promise&lt;Window&gt;
当Context为[ServiceExtensionContext](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis/js-apis-service-extension-context.md)时,创建系统窗口,使用Promise方式作为异步方法。
**系统能力**:SystemCapability.WindowManager.WindowManager.Core
- 参数
| 参数名 | 类型 | 必填 | 说明 |
| ------ | ------------------------------------------------------------ | ---- | ----------------------------------------------------- |
| ctx | [Context](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis/js-apis-Context.md) | 是 | 当前应用上下文信息, 为ServiceExtensionContext的基类。 |
| id | string | 是 | 窗口id。 |
| type | [WindowType](#windowtype) | 是 | 窗口类型。 |
- 返回值
| 类型 | 说明 |
| -------------------------------- | ----------------------------------------------- |
| Promise&lt;[Window](#window)&gt; | 以Promise形式返回结果,返回当前创建的窗口对象。 |
- 示例
```
let promise = window.create(this.context, "alertWindow", window.WindowType.TYPE_SYSTEM_ALERT);
promise.then((data)=> {
console.info('Window created. Data: ' + JSON.stringify(data))
}).catch((err)=>{
console.error('Failed to create the Window. Cause: ' + JSON.stringify(err));
});
```
## window.find<sup>7+</sup><a name="window-find"></a>
find(id: string, callback: AsyncCallback&lt;Window&gt;): void find(id: string, callback: AsyncCallback&lt;Window&gt;): void
查找子窗口。 查找id所对应的窗口,使用callback方式作为异步方法。
**系统能力**:SystemCapability.WindowManager.WindowManager.Core
- 参数 - 参数
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | 参数名 | 类型 | 必填 | 说明 |
| id | string | 是 | 窗口id。 | | -------- | -------------------------------------- | ---- | ---------------------------- |
| callback | AsyncCallback&lt;[Window](#window)&gt; | 是 | 回调返回当前窗口对象。 | | id | string | 是 | 窗口id。 |
| callback | AsyncCallback&lt;[Window](#window)&gt; | 是 | 回调返回当前查找的窗口对象。 |
- 示例 - 示例
``` ```
window.find("first", (err, data) => { window.find("first", (err, data) => {
if (err) { if (err) {
console.error('Failed to find the subWindow. Cause: ' + JSON.stringify(err)); console.error('Failed to find the Window. Cause: ' + JSON.stringify(err));
return; return;
} }
console.info('SubWindow found. Data: ' + JSON.stringify(data)) console.info('window found. Data: ' + JSON.stringify(data))
windowClass = data; windowClass = data;
}) });
```
## window.find<sup>7+</sup>
find(id: string): Promise&lt;Window&gt;
查找id所对应的窗口,使用Promise方式作为异步方法。
**系统能力**:SystemCapability.WindowManager.WindowManager.Core
- 参数
| 参数名 | 类型 | 必填 | 说明 |
| ------ | ------ | ---- | -------- |
| id | string | 是 | 窗口id。 |
- 返回值
| 类型 | 说明 |
| -------------------------------- | ----------------------------------------------- |
| Promise&lt;[Window](#window)&gt; | 以Promise形式返回结果,返回当前查找的窗口对象。 |
- 示例
```
let promise = window.find("first");
promise.then((data)=> {
console.info('window found. Data: ' + JSON.stringify(data))
}).catch((err)=>{
console.error('Failed to find the Window. Cause: ' + JSON.stringify(err));
});
``` ```
## window.getTopWindow<a name="window-gettopwindow"></a>
## window.getAbilityWindowMode<sup>7+</sup> getTopWindow(callback: AsyncCallback&lt;Window&gt;): void
getAbilityWindowMode(callback: AsyncCallback&lt;WindowMode&gt;): void 获取当前应用内最后显示的窗口,使用callback方式作为异步方法。
获取当前窗口模式。 **系统能力**:SystemCapability.WindowManager.WindowManager.Core
- 参数 - 参数
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | 参数名 | 类型 | 必填 | 说明 |
| callback | AsyncCallback&lt;[WindowMode](#windowmode)&gt; | 是 | 回调返回当前窗口模式。 | | -------- | -------------------------------------- | ---- | -------------------------------------- |
| callback | AsyncCallback&lt;[Window](#window)&gt; | 是 | 回调返回当前应用内最后显示的窗口对象。 |
- 示例 - 示例
``` ```
window.getAbilityWindowMode((err, data) => { window.getTopWindow((err, data) => {
if (err) { if (err) {
console.error('Failed to obtain the window mode. Cause:' + JSON.stringify(err)); console.error('Failed to obtain the top window. Cause: ' + JSON.stringify(err));
return; return;
} }
console.info('Window mode obtained. Data:' + JSON.stringify(data)) console.info('Succeeded in obtaining the top window. Data: ' + JSON.stringify(data));
windowClass = data;
}); });
``` ```
## window.getTopWindow
getTopWindow(): Promise&lt;Window&gt;
获取当前应用内最后显示的窗口,使用Promise方式作为异步方法。
**系统能力**:SystemCapability.WindowManager.WindowManager.Core
- 返回值
| 类型 | 说明 |
| -------------------------------- | --------------------------------------------------------- |
| Promise&lt;[Window](#window)&gt; | 以Promise形式返回结果,返回当前应用内最后显示的窗口对象。 |
- 示例
```
let promise = window.getTopWindow();
promise.then((data)=> {
console.info('Succeeded in obtaining the top window. Data: ' + JSON.stringify(data))
}).catch((err)=>{
console.error('Failed to obtain the top window. Cause: ' + JSON.stringify(err));
})
```
## window.getTopWindow<sup>8+</sup>
## window.getSplitScreenBounds<sup>7+</sup> getTopWindow(ctx: Context, callback: AsyncCallback&lt;Window&gt;): void
getSplitScreenBounds(splitRatio: SplitRatio, callback: AsyncCallback&lt;SplitScreenBoundsInfo&gt;): void 获取当前应用内最后显示的窗口,使用callback方式作为异步方法。
获取分屏多窗口的位置和区域.。 **系统能力**:SystemCapability.WindowManager.WindowManager.Core
- 参数 - 参数
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | 参数名 | 类型 | 必填 | 说明 |
| splitRatio | SplitRatio | 是 | 表示分屏比例,默认值为1:1,传值1表示1:2,传值2为2:1。 | | -------- | ------------------------------------------------------------ | ---- | -------------------------------------- |
| callback | AsyncCallback&lt;[SplitScreenBoundsInfo](#splitscreenboundsinfo)&gt; | 是 | 回调返回一个SplitScreenBoundsInfo对象,表示分屏边界相关信息。 | | ctx | [Context](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis/js-apis-Context.md) | 是 | 当前应用上下文信息。 |
| callback | AsyncCallback&lt;[Window](#window)&gt; | 是 | 回调返回当前应用内最后显示的窗口对象。 |
- 示例 - 示例
``` ```
var splitRatio = '1:1'; window.getTopWindow(this.context, (err, data) => {
window.getSplitScreenBounds(splitRatio, (err, data) => {
if (err) { if (err) {
console.error('Failed to obtain the split-screen boundary information. Cause: ' + JSON.stringify(err)); console.error('Failed to obtain the top window. Cause: ' + JSON.stringify(err));
return; return;
} }
console.info('Split-screen boundary information obtained. Data: ' + JSON.stringify(data)) console.info('Succeeded in obtaining the top window. Data: ' + JSON.stringify(data));
windowClass = data;
}); });
``` ```
## window.getTopWindow<sup>8+</sup>
getTopWindow(ctx: Context): Promise&lt;Window&gt;
获取当前应用内最后显示的窗口,使用Promise方式作为异步方法。
**系统能力**:SystemCapability.WindowManager.WindowManager.Core
- 参数
| 参数名 | 类型 | 必填 | 说明 |
| ------ | ------------------------------------------------------------ | ---- | -------------------- |
| ctx | [Context](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis/js-apis-Context.md) | 是 | 当前应用上下文信息。 |
- 返回值
| 类型 | 说明 |
| -------------------------------- | --------------------------------------------------------- |
| Promise&lt;[Window](#window)&gt; | 以Promise形式返回结果,返回当前应用内最后显示的窗口对象。 |
- 示例
```
let promise = window.getTopWindow(this.context);
promise.then((data)=> {
console.info('Succeeded in obtaining the top window. Data: ' + JSON.stringify(data))
}).catch((err)=>{
console.error('Failed to obtain the top window. Cause: ' + JSON.stringify(err));
})
```
## on('systemBarTintChange')<sup>8+</sup>
on(type: 'systemBarTintChange', callback: Callback&lt;SystemBarTintState&gt;): void
注册状态栏、导航栏的监听函数。
**系统能力**:SystemCapability.WindowManager.WindowManager.Core
- 参数
| 参数名 | 类型 | 必填 | 说明 |
| -------- | --------------------------------------------------------- | ---- | ------------------------------------------------------------ |
| type | string | 是 | 设置监听类型。<br/>-&nbsp;type为'systemBarTintChange'时表示监听类型为导航栏、状态栏属性变化监听; |
| callback | Callback&lt;[SystemBarTintState](#systembartintstate)&gt; | 是 | 回调返回监听到的信息。 |
- 示例
```
var type = 'systemBarTintChange';
windowClass.on(type, (data) => {
console.info('Succeeded in enabling the listener for systemBarTint changes. Data: ' + JSON.stringify(data));
});
```
## off('systemBarTintChange')<sup>8+</sup>
off(type: 'systemBarTintChange', callback?: Callback&lt;SystemBarTintState &gt;): void
关闭监听。
**系统能力**:SystemCapability.WindowManager.WindowManager.Core
- 参数
| 参数名 | 类型 | 必填 | 说明 |
| -------- | --------------------------------------------------------- | ---- | ------------------------------------------------------------ |
| type | string | 是 | 设置监听类型。<br/>-&nbsp;type为'systemBarTintChange'时表示监听类型为导航栏、状态栏属性变化监听; |
| callback | Callback&lt;[SystemBarTintState](#systembartintstate)&gt; | 否 | 回调返回监听到的信息。 |
- 示例
```
var type = 'systemBarTintChange';
windowClass.off(type);
```
## Window
下列API示例中都需使用[getTopWindow()](#window-gettopwindow)[create()](#window-create)[find()](#window-find)等先获取到Window实例,再通过此实例调用对应方法。
### hide<sup>7+</sup>
hide (callback: AsyncCallback&lt;void&gt;): void
隐藏当前窗口,使用callback方式作为异步方法。
**系统能力**:SystemCapability.WindowManager.WindowManager.Core
- 参数
| 参数名 | 类型 | 必填 | 说明 |
| -------- | ------------------------- | ---- | ---------- |
| callback | AsyncCallback&lt;void&gt; | 是 | 回调函数。 |
- 示例
```
windowClass.hide((err) => {
if (err) {
console.error('Failed to hide the window. Cause: ' + JSON.stringify(err));
return;
}
console.info('window hidden.')
})
```
### hide<sup>7+</sup>
hide(): Promise&lt;void&gt;;
隐藏当前窗口,使用Promise方式作为异步方法。
**系统能力**:SystemCapability.WindowManager.WindowManager.Core
- 返回值
| 类型 | 说明 |
| ------------------- | ----------------------------------------------- |
| Promise&lt;void&gt; | 以Promise形式返回结果,返回当前函数执行的结果。 |
- 示例
```
let promise = windowClass.hide();
promise.then(()=> {
console.info('window hidden.')
}).catch((err)=>{
console.error('Failed to hide the window. Cause: ' + JSON.stringify(err));
})
```
### show<sup>7+</sup>
show(callback: AsyncCallback&lt;void&gt;): void
显示当前窗口,使用callback方式作为异步方法。
**系统能力**:SystemCapability.WindowManager.WindowManager.Core
- 参数
| 参数名 | 类型 | 必填 | 说明 |
| -------- | ------------------------- | ---- | ---------- |
| callback | AsyncCallback&lt;void&gt; | 是 | 回调函数。 |
- 示例
```
windowClass.show((err) => {
if (err) {
console.error('Failed to show the window. Cause: ' + JSON.stringify(err));
return;
}
console.info('Succeeded in showing the window.')
})
```
### show<sup>7+</sup>
show(): Promise&lt;void&gt;
显示当前窗口,使用Promise方式作为异步方法。
**系统能力**:SystemCapability.WindowManager.WindowManager.Core
- 返回值
| 类型 | 说明 |
| ------------------- | ----------------------------------------------- |
| Promise&lt;void&gt; | 以Promise形式返回结果,返回当前函数执行的结果。 |
- 示例
```
let promise = windowClass.show();
promise.then(()=> {
console.info('Succeeded in showing the window.')
}).catch((err)=>{
console.error('Failed to show the window. Cause: ' + JSON.stringify(err));
})
```
### destroy<sup>7+</sup>
destroy(callback: AsyncCallback&lt;void&gt;): void
销毁当前窗口,使用callback方式作为异步方法。
**系统能力**:SystemCapability.WindowManager.WindowManager.Core
- 参数
| 参数名 | 类型 | 必填 | 说明 |
| -------- | ------------------------- | ---- | ---------- |
| callback | AsyncCallback&lt;void&gt; | 是 | 回调函数。 |
- 示例
```
windowClass.destroy((err) => {
if (err) {
console.error('Failed to destroy the window. Cause:' + JSON.stringify(err));
return;
}
console.info('Succeeded in destroying the window.')
})
```
### destroy<sup>7+</sup>
destroy(): Promise&lt;void&gt;
销毁当前窗口,使用Promise方式作为异步方法。
**系统能力**:SystemCapability.WindowManager.WindowManager.Core
- 返回值
| 类型 | 说明 |
| ------------------- | ----------------------------------------------- |
| Promise&lt;void&gt; | 以Promise形式返回结果,返回当前函数执行的结果。 |
- 示例
```
let promise = windowClass.destroy();
promise.then(()=> {
console.info('Succeeded in destroying the window.')
}).catch((err)=>{
console.error('Failed to destroy the window. Cause: ' + JSON.stringify(err));
})
```
### moveTo<sup>7+</sup>
## window.isFloatingAbilityWindowVisible<sup>7+</sup> moveTo(x: number, y: number, callback: AsyncCallback&lt;void&gt;): void
isFloatingAbilityWindowVisible(callback:AsyncCallback&lt;boolean&gt;): void 移动窗口位置,使用callback方式作为异步方法。
悬浮窗是否显示可见。 **系统能力**:SystemCapability.WindowManager.WindowManager.Core
- 参数 - 参数
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | 参数名 | 类型 | 必填 | 说明 |
| callback | AsyncCallback&lt;boolean&gt; | 是 | 回调返回一个boolean对象,表示悬浮窗是否可见。 | | -------- | ------------------------- | ---- | --------------------------------------- |
| x | number | 是 | 窗口在x轴方向移动的值,值为正表示右移。 |
| y | number | 是 | 窗口在y轴方向移动的值,值为正表示下移。 |
| callback | AsyncCallback&lt;void&gt; | 是 | 回调函数。 |
- 示例 - 示例
``` ```
window.isFloatingAbilityWindowVisible( (err, data) => { windowClass.moveTo(300, 300, (err)=>{
if (err) { if (err) {
console.error('Failed to check whether the floating window is visible. Cause:' + JSON.stringify(err)); console.error('Failed to move the window. Cause:' + JSON.stringify(err));
return; return;
} }
console.info('Succeeded in checking whether the floating window is visible. Data:' + JSON.stringify(data)) console.info('Window moved.');
}); });
``` ```
### moveTo<sup>7+</sup>
## window.setSplitBarVisibility<sup>7+</sup> moveTo(x: number, y: number): Promise&lt;void&gt;
setSplitBarVisibility(isVisibility: boolean, callback: AsyncCallback&lt;void&gt;): void 移动窗口位置,使用Promise方式作为异步方法。
设置分屏线是否可见。 **系统能力**:SystemCapability.WindowManager.WindowManager.Core
- 参数 - 参数
| 参数名 | 类型 | 说明 |
| -------- | -------- | -------- | | 参数名 | 类型 | 必填 | 说明 |
| isVisibility | boolean | 表示分屏线是否是否显示,true为显示,false为显示。 | | ------ | ------ | ---- | --------------------------------------- |
| callback | AsyncCallback&lt;void&gt; | callback形式返回结果。 | | x | number | 是 | 窗口在x轴方向移动的值,值为正表示右移。 |
| y | number | 是 | 窗口在y轴方向移动的值,值为正表示下移。 |
- 返回值
| 类型 | 说明 |
| ------------------- | ----------------------------------------------- |
| Promise&lt;void&gt; | 以Promise形式返回结果,返回当前函数执行的结果。 |
- 示例 - 示例
``` ```
var isVisibility = false; let promise = windowClass.moveTo(300, 300);
window.setSplitBarVisibility(isVisibility , (err, data) => { promise.then(()=> {
console.info('Window moved.')
}).catch((err)=>{
console.error('Failed to move the window. Cause: ' + JSON.stringify(err));
})
```
### resetSize<sup>7+</sup>
resetSize(width: number, height: number, callback: AsyncCallback&lt;void&gt;): void
改变当前窗口大小,使用callback方式作为异步方法。
**系统能力**:SystemCapability.WindowManager.WindowManager.Core
- 参数
| 参数名 | 类型 | 必填 | 说明 |
| -------- | ------------------------- | ---- | ---------------- |
| width | number | 是 | 目标窗口的宽度。 |
| height | number | 是 | 目标窗口的高度。 |
| callback | AsyncCallback&lt;void&gt; | 是 | 回调函数。 |
- 示例
```
windowClass.resetSize(500, 1000, (err) => {
if (err) { if (err) {
console.error('Failed to set the divider to be invisible. Cause:' + JSON.stringify(err)); console.error('Failed to change the window size. Cause:' + JSON.stringify(err));
return; return;
} }
console.info('Succeeded in setting the divider to be invisible. Data:' + JSON.stringify(data)) console.info('Window size changed.');
}); });
``` ```
### resetSize<sup>7+</sup>
## WindowType<sup>7+</sup><a name="windowtype"></a> resetSize(width: number, height: number): Promise&lt;void&gt;
窗口类型 改变当前窗口大小,使用Promise方式作为异步方法
| 名称 | 默认值 | 说明 | **系统能力**:SystemCapability.WindowManager.WindowManager.Core
| -------- | -------- | -------- |
| TYPE_APP | 0 | 表示应用窗口。 |
| TYPE_SYSTEM_ALERT | 1 | 表示系统弹窗。 |
- 参数
## AvoidAreaType<sup>7+</sup><a name="avoidareatype"></a> | 参数名 | 类型 | 必填 | 说明 |
| ------ | ------ | ---- | ---------------- |
| width | number | 是 | 目标窗口的宽度。 |
| height | number | 是 | 目标窗口的高度。 |
窗口内容需要规避区域的类型。 - 返回值
| 名称 | 默认值 | 说明 | | 类型 | 说明 |
| -------- | -------- | -------- | | ------------------- | ----------------------------------------------- |
| TYPE_SYSTEM | 0 | 表示系统默认。 | | Promise&lt;void&gt; | 以Promise形式返回结果,返回当前函数执行的结果。 |
| TYPE_CUTOUT | 1 | 表示刘海屏区域。 |
- 示例
## WindowMode<sup>7+</sup><a name="windowmode"></a> ```
let promise = windowClass.resetSize(500, 1000);
promise.then(()=> {
console.info('Window size changed.')
}).catch((err)=>{
console.error('Failed to change the window size. Cause: ' + JSON.stringify(err));
});
```
窗口模式。 ### setWindowType<sup>7+</sup>
| 名称 | 默认值 | 说明 | setWindowType(type: WindowType, callback: AsyncCallback&lt;void&gt;): void
| -------- | -------- | -------- |
| UNDEFINED | 1 | 表示APP未定义窗口模式。 |
| FULLSCREEN | 2 | 表示APP全屏模式。 |
| PRIMARY | 3 | 表示APP分屏多窗口主要模式。 |
| SECONDARY | 4 | 表示APP分屏多窗口次要模式。 |
| FLOATING | 5 | 表示APP自由悬浮形式窗口模式。 |
设置窗口类型,使用callback方式作为异步方法。
## splitMode<sup>7+</sup><a name="splitmode"></a> **系统能力**:SystemCapability.WindowManager.WindowManager.Core
分屏模式。 - 参数
| 名称 | 默认值 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | | -------- | ------------------------- | ---- | ---------- |
| VERTICAL | 0 | 表示垂直上下分屏模式 | | type | [WindowType](#windowtype) | 是 | 窗口类型。 |
| HORIZONTAL | 1 | 表示水平左右分屏模式 | | callback | AsyncCallback&lt;void&gt; | 是 | 回调函数。 |
- 示例
## Window ```
var type = window.TYPE_APP;
windowClass.setWindowType(type, (err) => {
if (err) {
console.error('Failed to set the window type. Cause: ' + JSON.stringify(err));
return;
}
console.info('Succeeded in setting the window type.')
});
```
### setWindowType<sup>7+</sup>
setWindowType(type: WindowType): Promise&lt;void&gt;
设置窗口类型,使用Promise方式作为异步方法。
**系统能力**:SystemCapability.WindowManager.WindowManager.Core
- 参数
| 参数名 | 类型 | 必填 | 说明 |
| ------ | ------------------------- | ---- | ---------- |
| type | [WindowType](#windowtype) | 是 | 窗口类型。 |
- 返回值
| 类型 | 说明 |
| ------------------- | ----------------------------------------------- |
| Promise&lt;void&gt; | 以Promise形式返回结果,返回当前函数执行的结果。 |
- 示例
下列API示例中都需使用[getTopWindow()](#window-gettopwindow)先获取到Window实例,再通过此实例调用对应方法。 ```
var type = window.TYPE_APP;
let promise = windowClass.setWindowType(type);
promise.then(()=> {
console.info('Succeeded in setting the window type.')
}).catch((err)=>{
console.error('Failed to set the window type. Cause: ' + JSON.stringify(err));
});
```
### getProperties
### setBrightness getProperties(callback: AsyncCallback&lt;WindowProperties&gt;): void
setBrightness(brightness:number, callback: AsyncCallback&lt;void&gt;): void 获取当前窗口的属性,使用callback方式作为异步方法返回WindowProperties。
设置屏幕亮度值。 **系统能力**:SystemCapability.WindowManager.WindowManager.Core
- 参数 - 参数
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | 参数名 | 类型 | 必填 | 说明 |
| brightness | number | 是 | 屏幕亮度值,值为0-1之间。1表示最亮。 | | -------- | ---------------------------------------------------------- | ---- | ------------------ |
| callback | AsyncCallback&lt;void&gt; | 是 | 回调函数。 | | callback | AsyncCallback&lt;[WindowProperties](#windowproperties)&gt; | 是 | 回调返回窗口属性。 |
- 示例 - 示例
``` ```
var brightness = 10; windowClass.getProperties((err, data) => {
windowClass.setBrightness(brightness, (err, data) => {
if (err) { if (err) {
console.error('Failed to set the brightness. Cause: ' + JSON.stringify(err)); console.error('Failed to obtain the window properties. Cause: ' + JSON.stringify(err));
return; return;
} }
console.info('Succeeded in setting the brightness. Data: ' + JSON.stringify(data)); console.info('Succeeded in obtaining the window properties. Data: ' + JSON.stringify(data));
}); });
``` ```
### getProperties
getProperties(): Promise&lt;WindowProperties&gt;
### setBackgroundColor 获取当前窗口的属性,使用promise方式作为异步方法返回WindowProperties。
setBackgroundColor(color: string, callback: AsyncCallback&lt;void&gt;): void **系统能力**:SystemCapability.WindowManager.WindowManager.Core
设置窗口的背景色。 - 返回值
- 参数 | 类型 | 说明 |
| 参数名 | 类型 | 必填 | 说明 | | ---------------------------------------------------- | ------------------------------------- |
| -------- | -------- | -------- | -------- | | Promise&lt;[WindowProperties](#windowproperties)&gt; | 以Promise形式返回结果,返回窗口属性。 |
| color | string | 是 | 需要设置的背景色,为16进制颜色,例如"\#00FF00"或"\#FF00FF00"。 |
| callback | AsyncCallback&lt;void&gt; | 是 | 回调函数。 |
- 示例 - 示例
``` ```
var color = '#00ff33'; let promise = windowClass.getProperties();
windowClass.setBackgroundColor(color, (err, data) => { promise.then((data)=> {
if (err) { console.info('Succeeded in obtaining the window properties. Data: ' + JSON.stringify(data))
console.error('Failed to set the background color. Cause: ' + JSON.stringify(err)); }).catch((err)=>{
return; console.error('Failed to obtain the window properties. Cause: ' + JSON.stringify(err));
} });
console.info('Succeeded in setting the background color. Data: ' + JSON.stringify(data));
});
``` ```
### setTransparent<sup>7+</sup> ### getAvoidArea<sup>7+</sup>
getAvoidArea(type: AvoidAreaType, callback: AsyncCallback&lt;AvoidArea&gt;): void
setTransparent(isTransparent: boolean, callback: AsyncCallback&lt;void&gt;): void 获取窗口内容规避的区域,如系统的系统栏区域、凹凸区域。使用callback方式作为异步方法。
设置窗口是否透明。 **系统能力**:SystemCapability.WindowManager.WindowManager.Core
- 参数 - 参数
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | 参数名 | 类型 | 必填 | 说明 |
| isTransparent | boolean | 是 | 窗口是否透明。 | | -------- | -------------------------------------------- | ---- | ------------------------------------------------------------ |
| callback | AsyncCallback&lt;void&gt; | 是 | 回调函数。 | | type | [AvoidAreaType](#avoidareatype) | 是 | 表示规避区类型。type为TYPE_SYSTEM,表示系统默认区域。type为TYPE_CUTOUT,表示刘海屏区域。 |
| callback | AsyncCallback&lt;[AvoidArea](#avoidarea)&gt; | 是 | 回调返回窗口内容规避区域。 |
- 示例 - 示例
``` ```
var isTransparent = true; var type = window.AvoidAreaType.TYPE_SYSTEM;
windowClass.setTransparent(isTransparent, (err, data) => { windowClass.getAvoidArea(type, (err, data) => {
if (err) { if (err) {
console.error('Failed to set the window to be transparent. Cause: ' + JSON.stringify(err)); console.error('Failed to obtain the area. Cause:' + JSON.stringify(err));
return; return;
} }
console.info('Succeeded in setting the window to be transparent. Data: ' + JSON.stringify(data)) console.info('Succeeded in obtaining the area. Data:' + JSON.stringify(data));
}); });
``` ```
### setFullScreen ### getAvoidArea<sup>7+</sup>
setFullScreen(isFullScreen: boolean, callback: AsyncCallback&lt;void&gt;): void getAvoidArea(type: AvoidAreaType): Promise&lt;AvoidArea&gt;
设置是否为全屏状态。 获取窗口内容规避的区域,如系统的系统栏区域、凹凸区域。使用promise方式作为异步方法。
**系统能力**:SystemCapability.WindowManager.WindowManager.Core
- 参数 - 参数
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | 参数名 | 类型 | 必填 | 说明 |
| isFullScreen | boolean | 是 | 是否设为全屏状态。 | | ------ | ------------------------------- | ---- | ------------------------------------------------------------ |
| callback | AsyncCallback&lt;void&gt; | 是 | 回调函数。 | | type | [AvoidAreaType](#avoidareatype) | 是 | 表示规避区类型。type为TYPE_SYSTEM,表示系统默认区域。type为TYPE_CUTOUT,表示刘海屏区域。 |
- 返回值
| 类型 | 说明 |
| -------------------------------------- | --------------------------------------------- |
| Promise&lt;[AvoidArea](#avoidarea)&gt; | 以Promise形式返回结果,返回窗口内容规避区域。 |
- 示例 - 示例
``` ```
var isFullScreen = true; let promise = windowClass.getAvoidArea();
windowClass.setFullScreen(isFullScreen, (err, data) => { promise.then((data)=> {
if (err) { console.info('Succeeded in obtaining the area. Data:' + JSON.stringify(data))
console.error('Failed to enable the full-screen mode. Cause: ' + JSON.stringify(err)); }).catch((err)=>{
return; console.error('Failed to obtain the area. Cause:' + JSON.stringify(err));
} });
console.info('Succeeded in enabling the full-screen mode. Data: ' + JSON.stringify(data));
});
``` ```
### setKeepScreenOn ### setFullScreen
setFullScreen(isFullScreen: boolean, callback: AsyncCallback&lt;void&gt;): void
setKeepScreenOn(isKeepScreenOn: boolean, callback: AsyncCallback&lt;void&gt;): void 设置是否为全屏状态,使用callback方式作为异步方法。
设置屏幕是否为常亮状态。 **系统能力**:SystemCapability.WindowManager.WindowManager.Core
- 参数 - 参数
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | 参数名 | 类型 | 必填 | 说明 |
| isKeepScreenOn | boolean | 是 | 是否设置为屏幕常亮状态。 | | ------------ | ------------------------- | ---- | ---------------------------------------------- |
| callback | AsyncCallback&lt;void&gt; | 是 | 回调函数。 | | isFullScreen | boolean | 是 | 是否设为全屏状态,且全屏状态隐藏状态栏导航栏。 |
| callback | AsyncCallback&lt;void&gt; | 是 | 回调函数。 |
- 示例 - 示例
``` ```
var isKeepScreenOn = true; var isFullScreen = true;
windowClass.setKeepScreenOn(isKeepScreenOn, (err, data) => { windowClass.setFullScreen(isFullScreen, (err) => {
if (err) { if (err) {
console.error('Failed to set the screen to be always on. Cause: ' + JSON.stringify(err)); console.error('Failed to enable the full-screen mode. Cause: ' + JSON.stringify(err));
return; return;
} }
console.info('Succeeded in setting the screen to be always on. Data: ' + JSON.stringify(data)); console.info('Succeeded in enabling the full-screen mode.');
}); });
``` ```
### setWindowType<sup>7+</sup> ### setFullScreen
setWindowType(type: WindowType, callback: AsyncCallback&lt;void&gt;): void
设置窗口类型。 setFullScreen(isFullScreen: boolean): Promise&lt;void&gt;
- 参数 设置是否为全屏状态,使用Promise方式作为异步方法。
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| type | [WindowType](#windowtype7) | 是 |窗口类型。 |
| callback | AsyncCallback&lt;void&gt; | 是 | 回调函数。 |
- 示例 **系统能力**:SystemCapability.WindowManager.WindowManager.Core
```
var type = window.TYPE_APP;
windowClass.setWindowType(type, (err, data) => {
if (err) {
console.error('Failed to set the window type. Cause: ' + JSON.stringify(err));
return;
}
console.info('Succeeded in setting the window type. Data: ' + JSON.stringify(data))
});
```
### setDimBehind<sup>7+</sup> - 参数
setDimBehind(dimBehindValue: number, callback: AsyncCallback&lt;void&gt;): void | 参数名 | 类型 | 必填 | 说明 |
| ------------ | ------- | ---- | ---------------------------------------------- |
| isFullScreen | boolean | 是 | 是否设为全屏状态,且全屏状态隐藏状态栏导航栏。 |
窗口叠加时,设备有子窗口的情况下设置靠后的窗口的暗度值。 - 返回值
- 参数 | 类型 | 说明 |
| 参数名 | 类型 | 必填 | 说明 | | ------------------- | ----------------------------------------------- |
| -------- | -------- | -------- | -------- | | Promise&lt;void&gt; | 以Promise形式返回结果,返回当前函数执行的结果。 |
| dimBehindValue | number | 是 | 表示靠后的窗口的暗度值,取值范围为0-1,1表示最暗。 |
| callback | AsyncCallback&lt;void&gt; | 是 | 回调函数。 |
- 示例 - 示例
``` ```
windowClass.setDimBehind(0.5, (err, data) => { var isFullScreen = true;
if (err) { let promise = windowClass.setFullScreen(isFullScreen);
console.error('Failed to set the dimness. Cause: ' + JSON.stringify(err)); promise.then(()=> {
return; console.info('Succeeded in enabling the full-screen mode.'))
} }).catch((err)=>{
console.info('Succeeded in setting the dimness. Data:' + JSON.stringify(data)); console.error('Failed to enable the full-screen mode. Cause: ' + JSON.stringify(err));
}); });
``` ```
...@@ -498,121 +980,119 @@ setDimBehind(dimBehindValue: number, callback: AsyncCallback&lt;void&gt;): void ...@@ -498,121 +980,119 @@ setDimBehind(dimBehindValue: number, callback: AsyncCallback&lt;void&gt;): void
setLayoutFullScreen(isLayoutFullScreen: boolean, callback: AsyncCallback&lt;void&gt;): void setLayoutFullScreen(isLayoutFullScreen: boolean, callback: AsyncCallback&lt;void&gt;): void
设置窗口的布局是否为全屏显示状态。 设置窗口的布局是否为全屏显示状态,使用callback方式作为异步方法。
**系统能力**:SystemCapability.WindowManager.WindowManager.Core
- 参数 - 参数
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | 参数名 | 类型 | 必填 | 说明 |
| isLayoutFullScreen | boolean | 是 | 窗口的布局是否为全屏显示状态。 | | ------------------ | ------------------------- | ---- | ------------------------------------------------------------ |
| callback | AsyncCallback&lt;void&gt; | 是 | 回调函数。 | | isLayoutFullScreen | boolean | 是 | 窗口的布局是否为全屏显示状态,且全屏状态下状态栏、导航栏仍然显示。 |
| callback | AsyncCallback&lt;void&gt; | 是 | 回调函数。 |
- 示例 - 示例
``` ```
var isLayoutFullScreen= true; var isLayoutFullScreen= true;
windowClass.setLayoutFullScreen(isLayoutFullScreen, (err, data) => { windowClass.setLayoutFullScreen(isLayoutFullScreen, (err) => {
if (err) { if (err) {
console.error('Failed to set the window layout to full-screen mode. Cause:' + JSON.stringify(err)); console.error('Failed to set the window layout to full-screen mode. Cause:' + JSON.stringify(err));
return; return;
} }
console.info('Succeeded in setting the window layout to full-screen mode. Data:' + JSON.stringify(data)); console.info('Succeeded in setting the window layout to full-screen mode.');
}); });
``` ```
### setFocusable<sup>7+</sup> ### setLayoutFullScreen<sup>7+</sup>
setFocusable(isFocusable: boolean, callback: AsyncCallback&lt;void&gt;): void
设置点击时是否支持切换焦点窗口。 setLayoutFullScreen(isLayoutFullScreen: boolean): Promise&lt;void&gt;
- 参数 设置窗口的布局是否为全屏显示状态,使用Promise方式作为异步方法。
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| isFocusable | boolean | 是 | 点击时是否支持切换焦点窗口。 |
| callback | AsyncCallback&lt;void&gt; | 是 | 回调函数。 |
- 示例 **系统能力**:SystemCapability.WindowManager.WindowManager.Core
```
var isFocusable= true;
windowClass.setFocusable(isFocusable, (err, data) => {
if (err) {
console.error('Failed to set the window to be focusable. Cause:' + JSON.stringify(err));
return;
}
console.info('Succeeded in setting the window to be focusable. Data: ' + JSON.stringify(data));
});
```
### setTouchable<sup>7+</sup> - 参数
setTouchable(isTouchable: boolean, callback: AsyncCallback&lt;void&gt;): void | 参数名 | 类型 | 必填 | 说明 |
| ------------------ | ------- | ---- | ------------------------------------------------------------ |
| isLayoutFullScreen | boolean | 是 | 窗口的布局是否为全屏显示状态,且全屏状态下状态栏、导航栏仍然显示。 |
设置窗口是否为可触状态。 - 返回值
- 参数 | 类型 | 说明 |
| 参数名 | 类型 | 必填 | 说明 | | ------------------- | ----------------------------------------------- |
| -------- | -------- | -------- | -------- | | Promise&lt;void&gt; | 以Promise形式返回结果,返回当前函数执行的结果。 |
| isTouchable | boolean | 是 | 窗口是否为可触状态。 |
| callback | AsyncCallback&lt;void&gt; | 是 | 回调函数。 |
- 示例 - 示例
``` ```
var isTouchable = true; var isLayoutFullScreen = true;
windowClass.setTouchable(isTouchable, (err, data) => { let promise = windowClass.setLayoutFullScreen(isLayoutFullScreen);
if (err) { promise.then(()=> {
console.error('Failed to set the window to be touchable. Cause:' + JSON.stringify(err)); console.info('Succeeded in setting the window layout to full-screen mode.'))
return; }).catch((err)=>{
} console.error('Failed to set the window layout to full-screen mode. Cause:' + JSON.stringify(err));
console.info('Succeeded in setting the window to be touchable. Data:' + JSON.stringify(data));
}); });
``` ```
### setPrivacyMode<sup>7+</sup> ### setSystemBarEnable<sup>7+</sup>
setSystemBarEnable(names: Array<'status' | 'navigation'>, callback: AsyncCallback&lt;void&gt;): void
setPrivacyMode(isPrivacyMode: boolean, callback: AsyncCallback&lt;void&gt;): void 设置导航栏、状态栏的可见模式,使用callback方式作为异步方法。
设置窗口是否为隐私模式。 **系统能力**:SystemCapability.WindowManager.WindowManager.Core
- 参数 - 参数
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | 参数名 | 类型 | 必填 | 说明 |
| isPrivacyMode | boolean | 是 | 窗口是否为隐私模式。 | | -------- | ------------------------- | ---- | ------------------------------------------------------------ |
| callback | AsyncCallback&lt;void&gt; | 是 | 回调函数。 | | names | Array | 是 | 设置状态栏和导航栏是否显示。例如,需全部显示,该参数设置为["status",&nbsp;"navigation"], 不设置,则默认不显示。 |
| callback | AsyncCallback&lt;void&gt; | 是 | 回调函数。 |
- 示例 - 示例
``` ```
var isPrivacyMode = true; var names = ["status", "navigation"];
windowClass.setPrivacyMode(isPrivacyMode, (err, data) => { windowClass.setSystemBarEnable(names, (err) => {
if (err) { if (err) {
console.error('Failed to set the window to privacy mode. Cause:' + JSON.stringify(err)); console.error('Failed to set the system bar to be visible. Cause:' + JSON.stringify(err));
return; return;
} }
console.info('Succeeded in setting the window to privacy mode. Data:' + JSON.stringify(data)); console.info('Succeeded in setting the system bar to be visible.');
}); });
``` ```
### setSystemBarEnable<sup>7+</sup> ### setSystemBarEnable<sup>7+</sup>
setSystemBarEnable(names: Array, callback: AsyncCallback&lt;void&gt;): void setSystemBarEnable(names: Array<'status' | 'navigation'>): Promise&lt;void&gt;
设置导航栏、状态栏的可见模式,使用Promise方式作为异步方法。
设置导航栏、状态栏的可见模式。 **系统能力**:SystemCapability.WindowManager.WindowManager.Core
- 参数 - 参数
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | 参数名 | 类型 | 必填 | 说明 |
| names | Array | 是 | 设置状态栏和导航栏是否显示。例如,需全部显示,该参数设置为["status",&nbsp;"navigation"]。 | | ------ | ----- | ---- | ------------------------------------------------------------ |
| callback | AsyncCallback&lt;void&gt; | 是 | 回调函数。 | | names | Array | 是 | 设置状态栏和导航栏是否显示。例如,需全部显示,该参数设置为["status",&nbsp;"navigation"], 不设置,则默认不显示。 |
- 返回值
| 类型 | 说明 |
| ------------------- | ----------------------------------------------- |
| Promise&lt;void&gt; | 以Promise形式返回结果,返回当前函数执行的结果。 |
- 示例 - 示例
``` ```
var names = ["status", "navigation"]; var names = ["status", "navigation"];
windowClass.setSystemBarEnable(names, (err, data) => { let promise = windowClass.setSystemBarEnable(names);
if (err) { promise.then(()=> {
console.error('Failed to set the system bar to be visible. Cause:' + JSON.stringify(err)); console.info('Succeeded in setting the system bar to be visible.'))
return; }).catch((err)=>{
} console.error('Failed to set the system bar to be visible. Cause:' + JSON.stringify(err));
console.info('Succeeded in setting the system bar to be visible. Data: ' + JSON.stringify(data));
}); });
``` ```
...@@ -620,343 +1100,394 @@ setSystemBarEnable(names: Array, callback: AsyncCallback&lt;void&gt;): void ...@@ -620,343 +1100,394 @@ setSystemBarEnable(names: Array, callback: AsyncCallback&lt;void&gt;): void
setSystemBarProperties(systemBarProperties: SystemBarProperties, callback: AsyncCallback&lt;void&gt;): void setSystemBarProperties(systemBarProperties: SystemBarProperties, callback: AsyncCallback&lt;void&gt;): void
设置窗口内导航条状态栏的属性。 设置窗口内导航栏、状态栏的属性,使用callback方式作为异步方法。
**系统能力**:SystemCapability.WindowManager.WindowManager.Core
- 参数 - 参数
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | 参数名 | 类型 | 必填 | 说明 |
| SystemBarProperties | [SystemBarProperties](#systembarproperties) | 是 | 导航条状态栏的属性。 | | ------------------- | ------------------------------------------- | ---- | -------------------- |
| callback | AsyncCallback&lt;void&gt; | 是 | 回调函数。 | | SystemBarProperties | [SystemBarProperties](#systembarproperties) | 是 | 导航栏状态栏的属性。 |
| callback | AsyncCallback&lt;void&gt; | 是 | 回调函数。 |
- 示例 - 示例
``` ```
var SystemBarProperties={ var SystemBarProperties={
statusBarColor: '#ff00ff', statusBarColor: '#ff00ff',
navigationBarColor: '#00ff00', navigationBarColor: '#00ff00',
//以下两个属性从API Version7开始支持 //以下两个属性从API Version7开始支持
isStatusBarLightIcon: true, isStatusBarLightIcon: true,
isNavigationBarLightIcon:false isNavigationBarLightIcon:false,
//以下两个属性从API Version8开始支持
statusBarContentColor:'#ffffff'
navigationBarContentColor:'#00ffff'
}; };
windowClass.setSystemBarProperties(SystemBarProperties, (err, data) => { windowClass.setSystemBarProperties(SystemBarProperties, (err) => {
if (err) { if (err) {
console.error('Failed to set the system bar properties. Cause: ' + JSON.stringify(err)); console.error('Failed to set the system bar properties. Cause: ' + JSON.stringify(err));
return; return;
} }
console.info('Succeeded in setting the system bar properties. Data: ' + JSON.stringify(data)); console.info('Succeeded in setting the system bar properties.');
}); });
``` ```
### getProperties ### setSystemBarProperties
getProperties(callback: AsyncCallback&lt;WindowProperties&gt;): void setSystemBarProperties(systemBarProperties: SystemBarProperties): Promise&lt;void&gt;
获取当前窗口的属性,异步返回WindowProperties。 设置窗口内导航栏、状态栏的属性,使用Promise方式作为异步方法。
**系统能力**:SystemCapability.WindowManager.WindowManager.Core
- 参数 - 参数
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | 参数名 | 类型 | 必填 | 说明 |
| callback | AsyncCallback&lt;[WindowProperties](#windowproperties)&gt; | 是 | 回调返回窗口属性。 | | ------------------- | ------------------------------------------- | ---- | -------------------- |
| SystemBarProperties | [SystemBarProperties](#systembarproperties) | 是 | 导航栏状态栏的属性。 |
- 返回值
| 类型 | 说明 |
| ------------------- | ----------------------------------------------- |
| Promise&lt;void&gt; | 以Promise形式返回结果,返回当前函数执行的结果。 |
- 示例 - 示例
``` ```
windowClass.getProperties((err, data) => { var SystemBarProperties={
if (err) { statusBarColor: '#ff00ff',
console.error('Failed to obtain the window properties. Cause: ' + JSON.stringify(err)); navigationBarColor: '#00ff00',
return; //以下两个属性从API Version7开始支持
} isStatusBarLightIcon: true,
console.info('Succeeded in obtaining the window properties. Data: ' + JSON.stringify(data)); isNavigationBarLightIcon:false,
//以下两个属性从API Version8开始支持
statusBarContentColor:'#ffffff'
navigationBarContentColor:'#00ffff'
};
let promise = windowClass.setSystemBarProperties(SystemBarProperties);
promise.then(()=> {
console.info('Succeeded in setting the system bar properties.'))
}).catch((err)=>{
console.error('Failed to set the system bar properties. Cause: ' + JSON.stringify(err));
}); });
``` ```
### getAvoidArea<sup>7+</sup> ### loadContent<sup>8+</sup>
getAvoidArea(type: AvoidAreaType, callback: AsyncCallback&lt;AvoidArea&gt;): void loadContent(path: string, storage: ContentStorage, callback: AsyncCallback&lt;void&gt;): void
当前窗口加载具体页面内容,使用callback方式作为异步方法。
获取窗口内容规避的区域。如系统的系统栏区域 、凹口区域。 **系统能力**:SystemCapability.WindowManager.WindowManager.Core
- 参数 - 参数
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | 参数名 | 类型 | 必填 | 说明 |
| type | [AvoidAreaType](#avoidareatype) | 是 | 表示规避区类型。type为TYPE_SYSTEM,表示系统默认区域。type为TYPE_CUTOUT,表示刘海屏区域。 | | -------- | ------------------------- | ---- | -------------------- |
| callback | AsyncCallback&lt;[AvoidArea](#avoidarea)&gt; | 是 | 回调返回窗口内容规避区域。 | | path | string | 是 | 设置加载页面的路径。 |
| storage | ContentStorage | 否 | 当前应用内的数据。 |
| callback | AsyncCallback&lt;void&gt; | 是 | 回调函数。 |
- 示例 - 示例
``` ```
var type = window.AvoidAreaType.TYPE_SYSTEM; windowClass.loadContent("pages/page2/page2", (err) => {
windowClass.getAvoidArea(type, (err, data) => { if (err) {
if (err) { console.error('Failed to load the content. Cause:' + JSON.stringify(err));
console.error('Failed to obtain the area. Cause:' + JSON.stringify(err)); return;
return; }
} console.info('Succeeded in loading the content.');
console.info('Succeeded in obtaining the area. Data:' + JSON.stringify(data));
}); });
``` ```
### moveTo<sup>7+</sup> ### loadContent<sup>8+</sup>
moveTo(x: number, y: number, callback: AsyncCallback&lt;void&gt;): void loadContent(path: string, storage?: ContentStorage): Promise&lt;void&gt;
当前窗口加载具体页面内容,使用Promise方式作为异步方法。
窗口位置移动。 **系统能力**:SystemCapability.WindowManager.WindowManager.Core
- 参数 - 参数
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | 参数名 | 类型 | 必填 | 说明 |
| x | number | 是 | 窗口在x轴方向移动的值,值为正表示右移。 | | ------- | -------------- | ---- | -------------------- |
| y | number | 是 | 窗口在y轴方向移动的值,值为正表示下移。 | | path | string | 是 | 设置加载页面的路径。 |
| callback | AsyncCallback&lt;void&gt; | 是 | 回调函数。 | | storage | ContentStorage | 否 | 当前应用内的数据。 |
- 返回值
| 类型 | 说明 |
| ------------------- | ----------------------------------------------- |
| Promise&lt;void&gt; | 以Promise形式返回结果,返回当前函数执行的结果。 |
- 示例 - 示例
``` ```
windowClass.moveTo(300, 300, (err, data)=>{ let promise = windowClass.loadContent("pages/page2/page2");
if (err) { promise.then(()=> {
console.error('Failed to move the window. Cause:' + JSON.stringify(err)); console.info('Succeeded in loading the content.'))
return; }).catch((err)=>{
} console.error('Failed to load the content. Cause: ' + JSON.stringify(err));
console.info('Window moved. Data:' + JSON.stringify(data));
}); });
``` ```
### resetSize<sup>7+</sup> ### isShowing<sup>7+</sup>
resetSize(width: number, height: number, callback: AsyncCallback&lt;void&gt;): void isShowing(callback: AsyncCallback&lt;boolean&gt;): void
判断当前窗口是否已显示,使用callback方式作为异步方法。
改变当前窗口大小。 **系统能力**:SystemCapability.WindowManager.WindowManager.Core
- 参数 - 参数
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | 参数名 | 类型 | 必填 | 说明 |
| width | number | 是 | 目标窗口的宽度。 | | -------- | ---------------------------- | ---- | -------------------------------- |
| height | number | 是 | 目标窗口的高度。 | | callback | AsyncCallback&lt;boolean&gt; | 是 | 回调函数返回是否显示子窗口结果。 |
| callback | AsyncCallback&lt;void&gt; | 是 | 回调函数。 |
- 示例 - 示例
``` ```
windowClass.resetSize(500, 1000, (err, data) => { windowClass.isShowing((err) => {
if (err) { if (err) {
console.error('Failed to change the window size. Cause:' + JSON.stringify(err)); console.error('Failed to check whether the window is showing. Cause:' + JSON.stringify(err));
return; return;
} }
console.info('Window size changed. Data:' + JSON.stringify(data)); console.info('Succeeded in checking whether the window is showing. Cause:')
}); });
``` ```
### loadContent<sup>7+</sup> ### isShowing<sup>7+</sup>
isShowing(): Promise&lt;boolean&gt;
loadContent(path: string, callback: AsyncCallback&lt;void&gt;): void 判断当前窗口是否已显示,使用Promise方式作为异步方法。
子窗口加载具体页面内容。 **系统能力**:SystemCapability.WindowManager.WindowManager.Core
- 参数 - 返回值
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | 类型 | 说明 |
| path | string | 是 | 设置加载页面的代码路径。 | | ---------------------- | ----------------------------------------------------- |
| callback | AsyncCallback&lt;void&gt; | 是 | 回调函数。 | | Promise&lt;boolean&gt; | 以Promise形式返回结果,返回当前窗口是否已显示的结果。 |
- 示例 - 示例
``` ```
windowClass.loadContent("pages/page2/page2", (err, data) => { let promise = windowClass.isShowing();
if (err) { promise.then(()=> {
console.error('Failed to load the content. Cause:' + JSON.stringify(err)); console.info('Succeeded in checking whether the window is showing.')
return; }).catch((err)=>{
} console.error('Failed to check whether the window is showing. Cause: ' + JSON.stringify(err));
console.info('Succeeded in loading the content. Data:' + JSON.stringify(data));
}); });
``` ```
### hide<sup>7+</sup> ### on('windowSizeChange'|'systemAvoidAreaChange')
hide (callback: AsyncCallback&lt;void&gt;): void on(type: 'windowSizeChange'|'systemAvoidAreaChange', callback: Callback&lt;AvoidArea | Size&gt;): void
开启监听。
隐藏子窗口。 **系统能力**:SystemCapability.WindowManager.WindowManager.Core
- 参数 - 参数
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | 参数名 | 类型 | 必填 | 说明 |
| callback | AsyncCallback&lt;void&gt; | 是 | 回调函数。 | | -------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ |
| type | string | 是 | 设置监听类型。<br/>-&nbsp;type为'windowSizeChange'<sup>7+</sup>时表示监听类型为窗口尺寸变化监听;<br/>-&nbsp;type为'systemAvoidAreaChange'<sup>7+</sup>时表示监听类型为系统窗口规避区变化监听。 |
| callback | Callback&lt;[AvoidArea](#avoidarea)&nbsp;\|&nbsp;[Size](#size)&gt; | 是 | 回调返回监听到的信息。 |
- 示例 - 示例
``` ```
windowClass.hide((err, data) => { var type = 'windowSizeChange';
if (err) { windowClass.on(type, (data) => {
console.error('Failed to hide the subwindow. Cause: ' + JSON.stringify(err)); console.info('Succeeded in enabling the listener for window size changes. Data: ' + JSON.stringify(data));
return; });
}
console.info('Subwindow hidden. Data:' + JSON.stringify(data))
})
``` ```
### show<sup>7+</sup> ### off('windowSizeChange'|'systemAvoidAreaChange')<sup>7+</sup>
show(callback: AsyncCallback&lt;void&gt;): void off(type: 'windowSizeChange'|'systemAvoidAreaChange', callback?: Callback&lt;AvoidArea | Size &gt;): void
显示子窗口。 关闭监听。
**系统能力**:SystemCapability.WindowManager.WindowManager.Core
- 参数 - 参数
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | 参数名 | 类型 | 必填 | 说明 |
| callback | AsyncCallback&lt;void&gt; | 是 | 回调函数。 | | -------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ |
| type | string | 是 | 设置监听类型。<br/>-&nbsp;type为'windowSizeChange'<sup>7+</sup>时表示监听类型为窗口尺寸变化监听;<br/>-&nbsp;type为'systemAvoidAreaChange'<sup>7+</sup>时表示监听类型为系统窗口规避区变化监听。 |
| callback | Callback&lt;[AvoidArea](#avoidarea)&nbsp;\|&nbsp;[Size](#size)&gt; | 否 | 回调返回监听到的信息。 |
- 示例 - 示例
``` ```
windowClass.show((err, data) => { var type = 'windowSizeChange';
if (err) { windowClass.off(type);
console.error('Failed to show the subwindow. Cause: ' + JSON.stringify(err));
return;
}
console.info('Succeeded in showing the subwindow. Data: ' + JSON.stringify(data))
})
``` ```
### isShowing<sup>7+</sup> ### isSupportWideGamut<sup>8+</sup>
isShowing(callback: AsyncCallback&lt;boolean&gt;): void isSupportWideGamut(callback: AsyncCallback&lt;boolean&gt;): void
判断子窗口是否已显示。 判断当前窗口是否支持广色域模式,使用callback方式作为异步方法。
**系统能力**:SystemCapability.WindowManager.WindowManager.Core
- 参数 - 参数
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | 参数名 | 类型 | 必填 | 说明 |
| callback | AsyncCallback&lt;boolean&gt; | 是 | 回调函数返回是否显示子窗口结果。 | | -------- | ---------------------------- | ---- | -------------------------------- |
| callback | AsyncCallback&lt;boolean&gt; | 是 | 回调函数返回是否支持广色域模式。 |
- 示例 - 示例
``` ```
windowClass.isShowing((err, data) => { windowClass.isSupportWideGamut((err) => {
if (err) { if (err) {
console.error('Failed to check whether the subwindow is showing. Cause:' + JSON.stringify(err)); console.error('Failed to check whether the window support WideGamut. Cause:' + JSON.stringify(err));
return; return;
} }
console.info('Succeeded in checking whether the subwindow is showing. Cause:' + JSON.stringify(data)) console.info('Succeeded in checking whether the window support WideGamut.')
}) })
``` ```
### destroy<sup>7+</sup> ### isSupportWideGamut<sup>8+</sup>
destroy(callback: AsyncCallback&lt;void&gt;): void isSupportWideGamut(): Promise&lt;boolean&gt;
销毁子窗口 判断当前窗口是否支持广色域模式,使用Promise方式作为异步方法
- 参数 **系统能力**:SystemCapability.WindowManager.WindowManager.Core
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | - 返回值
| callback | AsyncCallback&lt;void&gt; | 是 | 回调函数。 |
| 类型 | 说明 |
| ---------------------- | ------------------------------------------------------------ |
| Promise&lt;boolean&gt; | 以Promise形式返回结果,返回当前窗口是否支持广色域模式的结果。 |
- 示例 - 示例
``` ```
windowClass.destroy((err, data) => { let promise = windowClass.isSupportWideGamut();
if (err) { promise.then(()=> {
console.error('Failed to destroy the subwindow. Cause:' + JSON.stringify(err)); console.info('Succeeded in checking whether the window support WideGamut.')
return; }).catch((err)=>{
} console.error('Failed to check whether the window support WideGamut. Cause: ' + JSON.stringify(err));
console.info('Succeeded in destroying the subwindow. Data:' + JSON.stringify(data)) });
})
``` ```
### setOutsideTouchable<sup>7+</sup> ### setColorSpace<sup>8+</sup>
setOutsideTouchable(touchable: boolean, callback: AsyncCallback&lt;void&gt;): void; setColorSpace(colorSpace:ColorSpace, callback: AsyncCallback&lt;void&gt;): void
设置是否允许可点击子窗口以外的区域。 设置当前窗口为广色域模式或默认色域模式,使用callback方式作为异步方法。
**系统能力**:SystemCapability.WindowManager.WindowManager.Core
- 参数 - 参数
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | 参数名 | 类型 | 必填 | 说明 |
| touchable | boolean | 是 | 设置是否可点击。 | | ---------- | ------------------------- | ---- | ------------ |
| callback | AsyncCallback&lt;void&gt; | 是 | 回调函数。 | | colorSpace | [ColorSpace](#colorspace) | 是 | 设置色域模式 |
| callback | AsyncCallback&lt;void&gt; | 是 | 回调函数。 |
- 示例 - 示例
``` ```
windowClass.setOutsideTouchable(true, (err, data) => { windowClass.setColorSpace(window.ColorSpace.WIDE_GAMUT, (err) => {
if (err) { if (err) {
console.error('Failed to set the area to be touchable. Cause: ' + JSON.stringify(err)); console.error('Failed to set window colorspace. Cause:' + JSON.stringify(err));
return; return;
} }
console.info('Succeeded in setting the area to be touchable. Data: ' + JSON.stringify(data)) console.info('Succeeded in setting window colorspace.')
}) })
``` ```
### on('keyboardHeightChange') ### setColorSpace<sup>8+</sup>
on(type: string, callback: AsyncCallback&lt;number&gt;): void setColorSpace(colorSpace:ColorSpace): Promise&lt;void&gt;
> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** 设置当前窗口为广色域模式或默认色域模式,使用promise方式作为异步方法。
> 从 API Version 7 开始废弃。
开启监听键盘高度变化。 **系统能力**:SystemCapability.WindowManager.WindowManager.Core
- 参数 - 参数
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | 参数名 | 类型 | 必填 | 说明 |
| type | string | 是 | 设置监听类型为监听键盘高度变化,应设置type为'keyboardHeightChange'。 | | ---------- | ------------------------- | ---- | ------------ |
| callback | AsyncCallback&lt;number&gt; | 是 | 回调返回监听到的键盘高度。 | | colorSpace | [ColorSpace](#colorspace) | 是 | 设置色域模式 |
- 返回值
| 类型 | 说明 |
| ------------------- | ----------------------------------------------- |
| Promise&lt;void&gt; | 以Promise形式返回结果,返回当前函数执行的结果。 |
- 示例 - 示例
``` ```
var type= 'keyboardHeightChange'; let promise = windowClass.isSupportWideGamut(window.ColorSpace.WIDE_GAMUT);
windowClass.on(type, (err, data) => { promise.then(()=> {
if (err) { console.info('Succeeded in setting window colorspace.')
console.error('Failed to enable the listener for keyboard height changes. Cause: ' + JSON.stringify(err)); }).catch((err)=>{
return; console.error('Failed to set window colorspacet. Cause: ' + JSON.stringify(err));
}
console.info('Succeeded in enabling the listener for keyboard height changes. Data: ' + JSON.stringify(data));
}); });
``` ```
### off('keyboardHeightChange') ### getColorSpace<sup>8+</sup>
off(type: string, callback?: AsyncCallback&lt;number&gt;): void getColorSpace(callback: AsyncCallback&lt;ColorSpace&gt;): void
> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** 获取当前窗口色域模式,使用callback方式作为异步方法。
> 从 API Version 7 开始废弃。
关闭监听键盘高度变化。 **系统能力**:SystemCapability.WindowManager.WindowManager.Core
- 参数 - 参数
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | 参数名 | 类型 | 必填 | 说明 |
| type | string | 是 | 设置监听类型为监听键盘高度变化,应设置type为'keyboardHeightChange'。 | | -------- | ---------------------------------------------- | ---- | -------------------------- |
| callback | AsyncCallback&lt;number&gt; | 否 | 回调返回监听到的键盘高度。 | | callback | AsyncCallback&lt;[ColorSpace](#colorspace)&gt; | 是 | 回调函数返回当前色域模式。 |
- 示例 - 示例
``` ```
var type= 'keyboardHeightChange'; windowClass.getColorSpace((err, data) => {
windowClass.off(type); if (err) {
console.error('Failed to get window color space. Cause:' + JSON.stringify(err));
return;
}
console.info('Succeeded in getting window color space. Cause:' + JSON.stringify(data))
})
``` ```
### on('keyboardHeightChange'|'windowSizeChange'<sup>7+</sup>|'systemAvoidAreaChange'<sup>7+</sup>) ### getColorSpace<sup>8+</sup>
on(type: string, callback: Callback&lt;AvoidArea | Size | number&gt;): void
开启监听。
- 参数
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| type | string | 是 | 设置监听类型。<br/>-&nbsp;type为'keyboardHeightChange'时表示监听类型为键盘高度变化监听;<br/>-&nbsp;type为'windowSizeChange'7+时表示监听类型为窗口尺寸变化监听;<br/>-&nbsp;type为'systemAvoidAreaChange'7+时表示监听类型为系统窗口规避区变化监听。 |
| callback | Callback&lt;[AvoidArea](#avoidarea)&nbsp;\|&nbsp;[Size](#size)&nbsp;\|&nbsp;number&gt; | 是 | 回调返回监听到的信息。 |
- 示例 getColorSpace(): Promise&lt;ColorSpace&gt;
```
var type = 'windowSizeChange';
windowClass.on(type, (data) => {
console.info('Succeeded in enabling the listener for window size changes. Data: ' + JSON.stringify(data));
});
```
### off('keyboardHeightChange'|'windowSizeChange'<sup>7+</sup>|'systemAvoidAreaChange'<sup>7+</sup>) 获取当前窗口色域模式,使用Promise方式作为异步方法。
off(type: string, callback?: Callback&lt;AvoidArea | Size | number&gt;): void **系统能力**:SystemCapability.WindowManager.WindowManager.Core
关闭监听。 - 返回值
- 参数 | 类型 | 说明 |
| 参数名 | 类型 | 必填 | 说明 | | ---------------------------------------- | ----------------------------------------- |
| -------- | -------- | -------- | -------- | | Promise&lt;[ColorSpace](#colorspace)&gt; | 以Promise形式返回结果,返回当前色域模式。 |
| type | string | 是 | 设置监听类型。<br/>-&nbsp;type为'keyboardHeightChange'时表示监听类型为键盘高度变化监听;<br/>-&nbsp;type为'windowSizeChange'7+时表示监听类型为窗口尺寸变化监听;<br/>-&nbsp;type为'systemAvoidAreaChange'7+时表示监听类型为系统窗口规避区变化监听。 |
| callback | Callback&lt;[AvoidArea](#avoidarea)&nbsp;\|&nbsp;[Size](#size)&nbsp;\|&nbsp;number&gt; | 否 | 回调返回监听到的信息。 |
- 示例 - 示例
``` ```
var type = 'windowSizeChange'; let promise = windowClass.getColorSpace();
windowClass.off(type); promise.then((data)=> {
console.info('Succeeded in getting window color space. Cause:' + JSON.stringify(data))
}).catch((err)=>{
console.error('Failed to set window colorspacet. Cause: ' + JSON.stringify(err));
});
``` ```
# richtext<a name="ZH-CN_TOPIC_0000001173164701"></a> # richtext<a name="ZH-CN_TOPIC_0000001173164701"></a>
>![](../../public_sys-resources/icon-note.gif) **说明:** 该组件从API Version 8开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。
富文本组件,用于展示富文本信息,内容需要写在元素标签内。 富文本组件,用于展示富文本信息,内容需要写在元素标签内。
## 权限列表<a name="section11257113618419"></a> ## 权限列表<a name="section11257113618419"></a>
......
...@@ -50,6 +50,8 @@ ...@@ -50,6 +50,8 @@
- 基础组件 - 基础组件
- [Blank](ts-basic-components-blank.md) - [Blank](ts-basic-components-blank.md)
- [Button](ts-basic-components-button.md) - [Button](ts-basic-components-button.md)
- [Checkbox](ts-basic-components-checkbox.md)
- [CheckboxGroup](ts-basic-components-checkboxgroup.md)
- [DataPanel](ts-basic-components-datapanel.md) - [DataPanel](ts-basic-components-datapanel.md)
- [DatePicker](ts-basic-components-datepicker.md) - [DatePicker](ts-basic-components-datepicker.md)
- [Divider](ts-basic-components-divider.md) - [Divider](ts-basic-components-divider.md)
...@@ -130,5 +132,7 @@ ...@@ -130,5 +132,7 @@
- [警告弹窗](ts-methods-alert-dialog-box.md) - [警告弹窗](ts-methods-alert-dialog-box.md)
- [列表选择弹窗](ts-methods-action-sheet.md) - [列表选择弹窗](ts-methods-action-sheet.md)
- [自定义弹窗](ts-methods-custom-dialog-box.md) - [自定义弹窗](ts-methods-custom-dialog-box.md)
- [日期时间选择弹窗](ts-methods-datepicker-dialog.md)
- [文本选择弹窗](ts-methods-textpicker-dialog.md)
- 附录 - 附录
- [文档中涉及到的内置枚举值](ts-appendix-enums.md) - [文档中涉及到的内置枚举值](ts-appendix-enums.md)
...@@ -90,3 +90,11 @@ ...@@ -90,3 +90,11 @@
| Off | 不显示。 | | Off | 不显示。 |
| On | 常驻显示。 | | On | 常驻显示。 |
| Auto | 按需显示(触摸时显示,2s后消失)。 | | Auto | 按需显示(触摸时显示,2s后消失)。 |
## LayoutDirection枚举说明
| 名称 | 描述 |
| -------- | -------- |
| Row | 主轴与行方向一致作为布局模式。 |
| Column | 主轴与列方向一致作为布局模式。 |
| RowReverse | 与Row相反方向进行布局。 |
| ColumnReverse | 与Column相反方向进行布局。 |
\ No newline at end of file
...@@ -14,7 +14,7 @@ ...@@ -14,7 +14,7 @@
## 子组件 ## 子组件
可以包含子组件。 可以包含单个子组件。
## 接口 ## 接口
......
# Checkbox
> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
> 该组件从API Version 8开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。
提供多选框组件,通常用于某选项的打开或关闭。
## 权限列表
## 子组件
## 接口
Checkbox( name?: string, group?: string )
- 参数
| 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 |
| --------| --------| ------ | -------- | -------- |
| name | string | 否 | - | 多选框名称。 |
| group | string | 否 | - | 多选框的群组名称。 |
## 属性
| 名称 | 参数类型 | 默认值 | 描述 |
| ------------- | ------- | ------ | -------- |
| select | bool | false | 设置多选框是否选中。 |
| selectedColor | Color | - | 设置多选框选中状态颜色。 |
## 事件
| 名称 | 功能描述 |
| ----------| -------- |
|onChange(callback: (value: boolean) => void) | 当选中状态发生变化时,触发该回调。<br>- value为true时,表示已选中。<br>- value为false时,表示未选中。 |
## 示例
```
@Entry‘
@Component
struct CheckboxExample {
build() {
Row() {
Checkbox({name: 'checkbox1', group: 'checkboxGroup'})
.select(true)
.selectedColor(0xed6f21)
.onChange((value: boolean) => {
console.info('Checkbox1 change is'+ value)
})
Checkbox({name: 'checkbox2', group: 'checkboxGroup'})
.select(false)
.selectedColor(0x39a2db)
.onChange((value: boolean) => {
console.info('Checkbox2 change is'+ value)
})
}
}
}
```
![](figures/checkbox.gif)
\ No newline at end of file
# CheckboxGroup
> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
> 该组件从API Version 8开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。
多选框群组,用于控制多选框全选或者不全选状态。
## 权限列表
## 子组件
## 接口
CheckboxGroup( group?: string )
创建多选框群组,可以控制群组内的Checkbox全选或者不全选,相同group的Checkbox和CheckboxGroup为同一群组。
- 参数
| 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 |
| -------- | -------- | -------- | -------- | -------- |
| group | string | 否 | - | 群组名称。|
## 属性
| 名称 | 参数类型 | 默认值 | 描述 |
| -------- | -------- | -------- | -------- |
| selectAll | bool | false | 设置是否全选。 |
| selectedColor | Color | - | 设置被选中或部分选中状态的颜色。 |
## 事件
| 名称 | 功能描述 |
| -------- | -------- |
| onChange (callback: (names: Array&lt;string&gt;, status: SelectStatus) => void ) |CheckboxGroup的选中状态或群组内的Checkbox的选中状态发生变化时,触发回调。<br>- names:群组内所有被选中的多选框名称。<br>- status:选中状态。|
- SelectStatus枚举说明
| 名称 | 描述 |
| ----- | -------------------- |
| All | 群组多选择框全部选择。 |
| Part | 群组多选择框部分选择。 |
| None | 群组多选择框全部没有选择。 |
## 示例
```
@Entry
@Component
struct CheckboxExample {
build() {
Scroll() {
Column() {
CheckboxGroup({group : 'checkboxGroup'})
.selectedColor(0xed6f21)
.onChange((itemName:CheckboxGroupResult) => {
console.info("TextPicker::dialogResult is" + JSON.stringify(itemName))
})
Checkbox({ name: 'checkbox1', group: 'checkboxGroup' })
.select(true)
.selectedColor(0x39a2db)
.onChange((value: boolean) => {
console.info('Checkbox1 change is' + value)
})
Checkbox({ name: 'checkbox2', group: 'checkboxGroup' })
.select(false)
.selectedColor(0x39a2db)
.onChange((value: boolean) => {
console.info('Checkbox2 change is' + value)
})
Checkbox({ name: 'checkbox3', group: 'checkboxGroup' })
.select(true)
.selectedColor(0x39a2db)
.onChange((value: boolean) => {
console.info('Checkbox3 change is' + value)
})
}
}
}
}
```
![](figures/checkboxgroup.gif)
# RichText
> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
> 该组件从API Version 8开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。
富文本组件,解析并显示HTML格式文本。
## 权限列表
## 子组件
不包含子组件。
## 接口
RichText\(content:string\)
- 参数
| 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 |
| -------- | -------- | -------- | -------- | -------- |
| content | string | 是 | - | 表示HTML格式的字符串。 |
## 事件
| 名称 | 描述 |
| -------- | -------- |
| onStart() => void | 加载网页时触发。 |
| onComplete() => void | 网页加载结束时触发。 |
## 支持标签
| 名称 | 描述 | 示例 |
| -------- | -------- | -------- |
| \<h1>--\<h6> | 被用来定义HTML,\<h1>定义重要等级最高的标题,\<h6>定义重要等级最低的标题。 | \<h1>这是一个标题\</h1>\<h2>这是h2标题\</h2> |
| \<p>\</p> | 定义段落。 | \<p>这是一个段落\</p> |
| \<br/> | 插入一个简单的换行符。 | \<p>这是一个段落\<br/>这是换行段落\</p> |
| \<hr/> | 定义HTML页面中的主题变化(比如话题的转移),并显示为一条水平线。 | \<p>这个一个段落\</p>\<hr/>\<p>这是一个段落\</p> |
| \<div>\</div> | 常用于组合块级元素,以便通过CSS来对这些元素进行格式化。 | \<div style='color:#0000FF'>\<h3>这是一个在div元素中的标题。\</h3>\</div> |
| \<i>\</i> | 定义与文本中其余部分不同的部分,并把这部分文本呈现为斜体文本。 | \<p>\<i>这是一个斜体\</i>\</p> |
| \<u>\</u> | 定义与常规文本风格不同的文本,像拼写错误的单词或者汉语中的专有名词,应尽量避免使用\<u>为文本加下划线,用户会把它混淆为一个超链接。 | \<p>这是带有下划线的段落\</p> |
| \<style>\</style> | 定义HTML文档的样式信息。 | \<style>h1{color:red;}p{color:blue;}\</style> |
| style | 属性规定元素的行内样式,写在标签内部,在使用的时候需用引号来进行区分,并以; 间隔样式,style='width: 500px;height: 500px;border: 1px soild;margin: 0 auto;'。 | \<h1 style='color:blue;text-align:center'>这是一个标题\</h1>\<p style='color:green'>这是一个段落。\</p> |
| \<script>\</script> | 用于定义客户端文本,比如JavaScript。 | \<script>document.write("Hello World!")\</script> |
## 示例
```
@Entry
@Component
struct RichTextExample {
@State data: string = '<h1 style='text-align: center;'>h1标题</h1>
<h1 style='text-align: center;'><i>h1斜体</i></h1>
<h1 style='text-align: center;'><u>h1下划线</u></h1>
<h2 style='text-align: center;'>h2标题</h2>
<h3 style='text-align: center;'>h3标题</h3>
<p style='text-align: center;'>p常规</p><hr/>
<div style='width: 500px;height: 500px;border: 1px solid;margin: 0auto;'>
<p style='font-size: 35px;text-align: center;font-weight: bold; color: rgb(24,78,228)'>字体大小35px,行高45px</p>
<p style='background-color: #e5e5e5;line-height: 45px;font-size: 35px;text-indent: 2em;'>
这是一段文字这是一段文字这是一段文字这是一段文字这是一段文字这是一段文字这是一段文字这是一段文字
这是一段文字</p></div>'
build() {
Flex({direction: FlexDirection.Column,alignItems: ItemAlign.Center,
justifyContent: FlexAlign.Center }){
RichText(this.data)
.onStart(()=>{
console.info("RichText onStart")
})
.onComplete(()=>{
console.info("RichText onComplete")
})
}
}
}
```
\ No newline at end of file
...@@ -51,7 +51,8 @@ Column(value:{space?: Length}) ...@@ -51,7 +51,8 @@ Column(value:{space?: Length})
@Component @Component
struct ColumnExample { struct ColumnExample {
build() { build() {
Text('space').fontSize(9).fontColor(0xCCCCCC).width('90%') Column() {
Text('space').fontSize(9).fontColor(0xCCCCCC).width('90%')
Column({ space: 5 }) { Column({ space: 5 }) {
Column().width('100%').height(30).backgroundColor(0xAFEEEE) Column().width('100%').height(30).backgroundColor(0xAFEEEE)
Column().width('100%').height(30).backgroundColor(0x00FFFF) Column().width('100%').height(30).backgroundColor(0x00FFFF)
......
...@@ -3,8 +3,9 @@ ...@@ -3,8 +3,9 @@
> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
> 该组件从API Version 7开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。 > 该组件从API Version 7开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。
网格容器,由“行”和“列”分割的单元格所组成,通过指定“项目”所在的单元格做出各种各样的布局。
网格容器,二维布局,将容器划分成"行"和"列",产生单元格,然后指定"项目所在"的单元格,可以任意组合不同的网格,做出各种各样的布局。
## 权限列表 ## 权限列表
...@@ -17,7 +18,7 @@ ...@@ -17,7 +18,7 @@
包含[GridItem](ts-container-griditem.md)子组件。 包含[GridItem](ts-container-griditem.md)子组件。
## 接口说明 ## 接口
Grid() Grid()
...@@ -30,20 +31,29 @@ Grid() ...@@ -30,20 +31,29 @@ Grid()
| rowsTemplate | string | '1fr' | 用于设置当前网格布局行的数量,不设置时默认1行&nbsp;示例,&nbsp;'1fr&nbsp;1fr&nbsp;2fr'分三行,将父组件允许的高分为4等份,第一行占1份,第二行占一份,第三行占2份。 | | rowsTemplate | string | '1fr' | 用于设置当前网格布局行的数量,不设置时默认1行&nbsp;示例,&nbsp;'1fr&nbsp;1fr&nbsp;2fr'分三行,将父组件允许的高分为4等份,第一行占1份,第二行占一份,第三行占2份。 |
| columnsGap | Length | 0 | 用于设置列与列的间距。 | | columnsGap | Length | 0 | 用于设置列与列的间距。 |
| rowsGap | Length | 0 | 用于设置行与行的间距。 | | rowsGap | Length | 0 | 用于设置行与行的间距。 |
| editMode | boolean | flase | 是否进入编辑模式,进入编辑模式可以拖拽Gird组件内部[GridItem](ts-container-griditem.md)。 | | editMode <font color=ff0000><sup>8+</sup></font> | boolean | flase | 是否进入编辑模式,进入编辑模式可以拖拽Gird组件内部[GridItem](ts-container-griditem.md)。 |
| maxCount | number | 1 | 表示可显示的最大行数。 | | layoutDirection<font color=ff0000><sup>8+</sup></font> | [LayoutDirection](ts-appendix-enums.md) | LayoutDirection.Row |设置布局的主轴方向,目前支持的主轴布局方向如下:<br/>-&nbsp;LayoutDirection.Row:沿水平方向布局,即先填满一列,再去填下一列。 <br/>-&nbsp;LayoutDirection.Column:沿垂直方向布局,即先填满一行,再去填下一行。|
| minCount | number | 1 | 表示可显示的最小行数。 | | maxCount <font color=ff0000><sup>8+</sup></font> | number | 1 | 当layoutDirection是Row时,表示可显示的最大行数<br/>当layoutDirection是Column时,表示可显示的最大列数。 |
| cellLength | number | 0 | 表示每行的固定高度。 | | minCount <font color=ff0000><sup>8+</sup></font> | number | 1 | 当layoutDirection是Row时,表示可显示的最小行数<br/>当layoutDirection是Column时,表示可显示的最小列数。 |
| $multiSelectable^{8+}$ | boolean | false | 是否开启鼠标框选。<br/>-&nbsp;false:关闭框选。<br/>-&nbsp;true:开启框选。 | | cellLength <font color=ff0000><sup>8+</sup></font> | number | 0 | 当layoutDirection是Row时,表示一行的高度<br/>当layoutDirection是Column时,表示一列的宽度。 |
| multiSelectable<font color=ff0000><sup>8+</sup></font> | boolean | false | 是否开启鼠标框选。<br/>-&nbsp;false:关闭框选。<br/>-&nbsp;true:开启框选。 |
| dragAnimation<font color=ff0000><sup>8+</sup></font> | boolean | false | 是否开启拖拽GridItem动画。 |
| edgeEffection<font color=ff0000><sup>8+</sup></font> | EdgeEffect | EdgeEffect.Spring | 设置边缘滑动效果,目前支持的滑动效果参见EdgeEffect枚举说明。 |
- EdgeEffect枚举说明
| 名称 | 描述 |
| -------- | -------- |
| Spring | 弹性物理动效,滑动到边缘后可以根据初始速度或通过触摸事件继续滑动一段距离,松手后回弹。 |
| None | 滑动到边缘后无效果。 |
## 事件 ## 事件
| 名称 | 功能描述 | | 名称 | 功能描述 |
| -------- | -------- | | -------- | -------- |
| onScrollIndex(first:&nbsp;number)&nbsp;=&gt;&nbsp;void | 当前列表显示的起始位置item发生变化时触发。 | | onScrollIndex(first:&nbsp;number)&nbsp;=&gt;&nbsp;void | 当前列表显示的起始位置item发生变化时触发。 |
## 示例 ## 示例
``` ```
...@@ -105,4 +115,4 @@ struct GridExample { ...@@ -105,4 +115,4 @@ struct GridExample {
} }
``` ```
![zh-cn_image_0000001219744183](figures/zh-cn_image_0000001219744183.gif) ![zh-cn_image_0000001219744183](figures/zh-cn_image_0000001219744183.gif)
\ No newline at end of file
# Web # Web
>![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** >![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
>该组件从 API Version 8 开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。 >该组件从API Version 8开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。
提供具有网页显示能力的 Web 组件。 提供具有网页显示能力的Web组件。
## 权限列表 ## 权限列表
...@@ -17,40 +17,68 @@ ohos.permission.READ_USER_STORAGE ...@@ -17,40 +17,68 @@ ohos.permission.READ_USER_STORAGE
## 接口 ## 接口
- Web\(options: {src: string, controller?: WebController}\) - Web\(options: { src: string, controller?: WebController }\)
表1 options 参数说明 表1 options参数说明
| 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | | 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 |
| ---------- | ------------------------------- | ---- | ------ | -------------- | | ---------- | ------------------------------- | ---- | ---- | ------- |
| src | string | 是 | - | 网页资源地址。 | | src | string | 是 | - | 网页资源地址。 |
| controller | [WebController](#WebController) | 否 | - | 控制器。 | | controller | [WebController](#WebController) | 否 | - | 控制器。 |
> ![icon-note.gif](public_sys-resources/icon-note.gif)**说明:** > ![icon-note.gif](public_sys-resources/icon-note.gif)**说明:**
> >
> - 一个页面只支持一个 Web 组件,全屏显示,页面中的其他组件会被 Web 组件遮挡;
> - 不支持转场动画; > - 不支持转场动画;
> - 只支持加载 rawfile 目录下的 html 文件,不支持远程资源。 > - 不支持音视频播放;
> - 不支持横竖屏事件。
## 属性 ## 属性
| 名称 | 参数类型 | 默认值 | 描述 |
| 名称 | 参数类型 | 默认值 | 描述 | | ----------------- | --------- | -------------- | ---------------------------------------- |
| ---------------- | ------- | ----- | ---------------------------------------- | | domStorageAccess | boolean | false | 设置是否开启DOM Storage API权限,默认未开启。 |
| javaScriptAccess | boolean | false | 是否允许执行 JavaScript 脚本,当设置为 false 时,不允许执行。 | | fileAccess | boolean | true | 设置是否开启Web中通过FILE方式访问应用中的本地文件, 默认启用。 |
| fileAccess | boolean | false | 启用或禁用 Web 中可通过 file 方式访问应用中的本地文件,当设置为 false 时,禁用。 | | geolocationAccess | boolean | true | 设置是否允许访问地理位置, 默认允许访问。 |
| imageAccess | boolean | true | 设置是否允许自动加载图片资源,默认允许。 |
| javaScriptAccess | boolean | true | 设置是否允许执行JavaScript脚本,默认允许执行。 |
| mixedMode | MixedMode | MixedMode.None | 设置是否允许加载HTTP和HTTPS混合内容,默认不允许加载HTTP和HTTPS混合内容。 |
| onlineImageAccess | boolean | true | 设置是否允许从网络加载图片资源(通过HTTP和HTTPS访问的资源),默认允许访问。 |
| zoomAccess | boolean | true | 设置是否支持使用屏幕控件或手势进行缩放,默认允许执行缩放。 |
> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
> >
> 不支持通用属性。 > 通用属性仅支持width、height、padding、margin、border。
- MixedMode枚举说明
| 名称 | 描述 |
| ---------- | ---------------------------------------- |
| All | 允许加载HTTP和HTTPS混合内容。 |
| Compatible | 混合内容兼容性模式,一些不安全的内容可能被安全来源加载,其他类型的内容将被阻止。 |
| None | 不允许加载HTTP和HTTPS混合内容。 |
## 事件 ## 事件
不支持通用事件 通用事件仅支持onFocus
| 名称 | 功能描述 | | 名称 | 功能描述 |
| ---------------------------------------- | ---------------------------------------- | | ---------------------------------------- | ---------------------------------------- |
| onPageEnd(callback: (event?: { url: string }) => void) | <p>网页加载结束时触发该回调。<br />url:Web 引擎返回的 URL。</p> | | onDownloadStart(callback: (event?: { url: string, userAgent: string, contentDisposition: string, mimetype: string, contentLength: number }) => void) | <p>下载开始时触发该回调。<br />url:Web引擎返回的下载URL。<br />userAgent:Web引擎返回的用户代理名称。<br />contentDisposition:Web引擎返回的响应头。<br />mimetype:Web引擎返回的mimetype信息。<br />contentLength:Web引擎返回的内容长度。</p> |
| onGeolocationHide(callback: () => void) | <p>调用onGeolocationShow时发出的地理位置权限请求被取消后触发该回调。</p> |
| onGeolocationShow(callback: (event?: { origin: string, geolocation: JsGeolocation }) => void) | <p>应用尝试使用地理位置时触发该回调,并向用户请求权限。<br/>origin:尝试获取地理位置的Web内容的来源。<br/>geolocation:用于请求地理位置权限。</p> |
| onPageBegin(callback: (event?: { url: string }) => void) | <p>网页加载时触发该回调。<br/>url:Web引擎返回的URL。</p> |
| onPageEnd(callback: (event?: { url: string }) => void) | <p>网页加载结束时触发该回调。<br/>url:Web引擎返回的URL。</p> |
| onProgressChange(callback: (event?: { newProgress: number }) => void) | <p>网页加载进度变化时触发该回调。<br/>newProgress:加载进度,取值范围为0到100的整数。</p> |
| onTitleReceive(callback: (event?: { title: string }) => void) | <p>网页主页面标题更改时触发该回调。<br/>title:标题内容。</p> |
### JsGeolocation 对象说明
用于请求地理位置权限。
- 接口
| 接口名称 | 功能描述 |
| ---------------------------------------- | ---------------------------------------- |
| invoke(origin: string, allow: boolean, retain: boolean): void | <p>通知系统用户是否批准该应用使用地理位置权限。<br/>origin:尝试获取地理位置的Web内容的来源。<br/>allow:用户是否批准该应用使用地理位置权限。true: 允许访问,false: 不允许访问。<br/>retain:是否允许将地理位置权限状态保存到系统中。true: 允许,false: 不允许。</p> |
## WebController ## WebController
...@@ -62,30 +90,158 @@ Web 组件的控制器。 ...@@ -62,30 +90,158 @@ Web 组件的控制器。
webController: WebController = new WebController() webController: WebController = new WebController()
``` ```
### runJavaScript ### accessBackward
accessBackward(): boolean
runJavaScript(script: string): void 当前页面是否可后退。
执行 JavaScript 脚本。 ### accessForward
accessForward(): boolean
当前页面是否可前进。
### accessStep
accessStep(step: number): boolean
当前页面是否可前进或者后退step步。
- 参数 - 参数
| 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | | 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 |
| ------ | ------ | ---- | ---- | -------------- | | ---- | ------ | ---- | ---- | --------------------- |
| script | string | 是 | - | JavaScript 脚本。 | | step | number | 是 | - | 要跳转的步数,正数代表前进,负数代表后退。 |
### deleteJavaScriptRegister
deleteJavaScriptRegister(options: { name: string }): void
清空指定对象已注册的JavaScript方法。
- options参数说明
| 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 |
| ---- | ------ | ---- | ---- | ----------------------- |
| name | string | 是 | - | 注册对象的名称,与HTML中调用的对象名一致。 |
### backward
backward(): void
页面后退。
### forward
forward(): void
页面前进。
### getHitTest
getHitTest(): HitTestType
获取当前已点击的对象类型。
- HitTestType枚举说明
| 名称 | 描述 |
| ------- | -------------------------------- |
| Edit | 可编辑的区域。 |
| Email | 邮件地址。 |
| Http | HTTP网址的HTML \<a\>标签。 |
| HttpImg | HTTP网址与\<img\>标签组成的HTML \<a\>标签。 |
| Img | HTML \<img\>标签。 |
| Map | 地图地址。 |
| Phone | 电话号码。 |
| Unknown | 未知内容。 |
### loadData
loadData(options: { data: string, mimeType: string, encoding: string, baseUrl?: string, historyUrl?: string }): void
加载数据。
- options参数说明
| 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 |
| ---------- | ------ | ---- | ---- | ------------------ |
| data | string | 是 | - | 需要加载的数据。 |
| mimeType | string | 是 | - | 媒体类型,格式为''\*/\*''。 |
| encoding | string | 是 | - | 编码类型。 |
| baseUrl | string | 否 | - | 基础URL。 |
| historyUrl | string | 否 | - | 历史URL。 |
### loadUrl ### loadUrl
loadUrl(url: string): void loadUrl(url: string, additionalHttpHeaders?: Array<{ key: string, value: string }>): void
加载 URL。 加载URL。
- 参数 - 参数
| 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | | 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 |
| ---- | ------ | ---- | ---- | ---------- | | --------------------- | ------------------------------------- | ---- | ---- | ---------- |
| url | string | 是 | - | 需要加载的 URL。 | | url | string | 是 | - | 需要加载的 URL。 |
| additionalHttpHeaders | Array<{ key: string, value: string }> | 否 | [] | HTTP附加信息。 |
### onActive
onActive(): void
页面重新激活。当Web被重新激活为活跃状态时,执行此方法。
### onInactive
onInactive(): void
页面暂停渲染。当Web被切换到后台不可见状态时,执行此方法。
### refresh
refresh(): void
刷新页面。
### registerJavaScriptProxy
registerJavaScriptProxy(options: { obj: object, name: string, methodList: string[] }): void
将JavaScript对象与方法注册到Web内核,可被已加载的HTML直接调用。注册后,须调用refresh接口生效。
- options 参数说明
| 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 |
| ---------- | -------- | ---- | ---- | ----------------------- |
| obj | object | 是 | - | 参与注册的对象。 |
| name | string | 是 | - | 注册对象的名称,与HTML中调用的对象名一致。 |
| methodList | string[] | 是 | - | 参与注册的方法。 |
### runJavaScript
runJavaScript(script: string, callback?: (result: string) => void): void
执行JavaScript脚本。
- 参数
| 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 |
| -------- | ------------------------ | ---- | ---- | ------------------------------------ |
| script | string | 是 | - | JavaScript脚本。 |
| callback | (result: string) => void | 否 | - | 回调执行JavaScript脚本结果,默认result为null字符串。 |
### requestFocus
requestFocus(): void
Web组件获焦。
### stop
stop(): void
停止页面加载。
## 示例 ## 示例
...@@ -99,9 +255,9 @@ struct WebComponent { ...@@ -99,9 +255,9 @@ struct WebComponent {
controller: WebController = new WebController(); controller: WebController = new WebController();
build() { build() {
Column() { Column() {
Web(src: $rawfile('index.html'), controller: this.controller) Web({ src: $rawfile('index.html'), controller: this.controller })
.javaScriptAccess(javaScriptAccess) .javaScriptAccess(this.javaScriptAccess)
.fileAccess(fileAccess) .fileAccess(this.fileAccess)
.onPageEnd(e => { .onPageEnd(e => {
// test() 在 index.html 中已定义 // test() 在 index.html 中已定义
this.controller.runJavaScript('test()'); this.controller.runJavaScript('test()');
...@@ -110,8 +266,9 @@ struct WebComponent { ...@@ -110,8 +266,9 @@ struct WebComponent {
} }
} }
} }
```
// index.html ```
<!-- index.html -->
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<meta charset="utf-8"> <meta charset="utf-8">
......
# 日期时间滑动选择器弹窗
> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
> 该组件从API Version 8开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。
根据指定范围的Date创建可以选择时间或者日期的滑动选择器,展示在弹窗上。
## 权限列表
## DatePickerDialog.show
show(options?: DatePickerDialogOption)
定义日期时间滑动选择器弹窗并弹出。
- DatePickerDialogOption参数
| 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 |
| -------- | -------- | -------- | -------- | -------- |
| start | Date | 否 | Date('1970-1-1') | 指定选择器的起始日期。 |
| end | Date | 否 | Date('2100-12-31') | 指定选择器的结束日期。 |
| selected | Date | 否 | 当前系统日期或时间 | 当type为DatePickerType.Date时,设置选中项的日期。当type为DatePickerType.Time时,设置选中项的时间。 |
| type | [DatePickerType](ts-basic-components-datepicker.md) | 否 | DatePickerType.Date | 指定选择器的类型,包括日期选择器和时间选择器,缺省使用日期选择器。 |
| lunar | boolean | 否 | false | 日期是否显示农历。 |
| useMilitaryTime | boolean | 否 | false | 展示时间是否为24小时制。 |
| onAccept | (value: [DatePickerResult](ts-basic-components-datepicker.md)) => void | 否 | - | 点击弹窗中确定按钮时触发。 |
| onCancel | () => void | 否 | - | 点击弹窗中取消按钮时触发。 |
| onChange | (value: [DatePickerResult](ts-basic-components-datepicker.md)) => void | 否 | - | 滑动选择器,当前选择项改变时触发。 |
## 示例
### 日期滑动选择器(显示农历)示例
```
@Entry
@Component
struct DatePickerDialogExample01 {
@State isLunar: boolean = true
@State isUseMilitaryTime: boolean = false
@State datePickerType: DatePickerType = DatePickerType.Date
selectedDate: Date = new Date("2000-1-1")
build() {
Flex({direction: FlexDirection.Column, alignItems: ItemAlign.Center,
justifyContent: FlexAlign.Center }) {
Button("DatePickerDialog").onClick(() => {
DatePickerDialog.show({
start: new Date("2000-1-1"),
end: new Date("2005-1-1"),
selected: this.selectedDate,
type: this.datePickerType,
lunar: this.isLunar,
useMilitaryTime: this.isUseMilitaryTime,
onAccept: (value: DatePickerResult) => {
console.info("DatePickerDialog:onAccept()" + JSON.stringify(value))
if (this.datePickerType == DatePickerType.Date) {
this.selectedDate.setFullYear(value.year, value.month, value.day)
} else if (this.datePickerType == DatePickerType.Time) {
this.selectedDate.setHours(value.hour, value.minute, value.second)
}
},
onCancel: () => {
console.info("DatePickerDialog:onCancel()")
},
onChange: (value: DatePickerResult) => {
console.info("DatePickerDialog:onChange()" + JSON.stringify(value))
}
})
})
}
}
}
```
### 日期滑动选择器(不显示农历)示例
```
@Entry
@Component
struct DatePickerDialogExample02 {
@State isLunar: boolean = false
@State isUseMilitaryTime: boolean = false
@State datePickerType: DatePickerType = DatePickerType.Date
selectedDate: Date = new Date("2000-1-1")
build() {
Flex({direction: FlexDirection.Column, alignItems: ItemAlign.Center,
justifyContent: FlexAlign.Center }) {
Button("DatePickerDialog").onClick(() => {
DatePickerDialog.show({
start: new Date("2000-1-1"),
end: new Date("2005-1-1"),
selected: this.selectedDate,
type: this.datePickerType,
lunar: this.isLunar,
useMilitaryTime: this.isUseMilitaryTime,
onAccept: (value: DatePickerResult) => {
console.info("DatePickerDialog:onAccept()" + JSON.stringify(value))
if (this.datePickerType == DatePickerType.Date) {
this.selectedDate.setFullYear(value.year, value.month, value.day)
} else if (this.datePickerType == DatePickerType.Time) {
this.selectedDate.setHours(value.hour, value.minute, value.second)
}
},
onCancel: () => {
console.info("DatePickerDialog:onCancel()")
},
onChange: (value: DatePickerResult) => {
console.info("DatePickerDialog:onChange()" + JSON.stringify(value))
}
})
})
}
}
}
```
### 时间滑动选择器(24小时制)示例
```
@Entry
@Component
struct DatePickerDialogExample03 {
@State isLunar: boolean = false
@State isUseMilitaryTime: boolean = true
@State datePickerType: DatePickerType = DatePickerType.Time
selectedDate: Date = new Date("2000-1-1")
build() {
Flex({direction: FlexDirection.Column, alignItems: ItemAlign.Center,
justifyContent: FlexAlign.Center }) {
Button("DatePickerDialog").onClick(() => {
DatePickerDialog.show({
start: new Date("2000-1-1"),
end: new Date("2005-1-1"),
selected: this.selectedDate,
type: this.datePickerType,
lunar: this.isLunar,
useMilitaryTime: this.isUseMilitaryTime,
onAccept: (value: DatePickerResult) => {
console.info("DatePickerDialog:onAccept()" + JSON.stringify(value))
if (this.datePickerType == DatePickerType.Date) {
this.selectedDate.setFullYear(value.year, value.month, value.day)
} else if (this.datePickerType == DatePickerType.Time) {
this.selectedDate.setHours(value.hour, value.minute, value.second)
}
},
onCancel: () => {
console.info("DatePickerDialog:onCancel()")
},
onChange: (value: DatePickerResult) => {
console.info("DatePickerDialog:onChange()" + JSON.stringify(value))
}
})
})
}
}
}
```
### 时间滑动选择器(12小时制)示例
```
@Entry
@Component
struct DatePickerDialogExample04 {
@State isLunar: boolean = false
@State isUseMilitaryTime: boolean = false
@State datePickerType: DatePickerType = DatePickerType.Time
selectedDate: Date = new Date("2000-1-1")
build() {
Flex({direction: FlexDirection.Column, alignItems: ItemAlign.Center,
justifyContent: FlexAlign.Center }) {
Button("DatePickerDialog").onClick(() => {
DatePickerDialog.show({
start: new Date("2000-1-1"),
end: new Date("2005-1-1"),
selected: this.selectedDate,
type: this.datePickerType,
lunar: this.isLunar,
useMilitaryTime: this.isUseMilitaryTime,
onAccept: (value: DatePickerResult) => {
console.info("DatePickerDialog:onAccept()" + JSON.stringify(value))
if (this.datePickerType == DatePickerType.Date) {
this.selectedDate.setFullYear(value.year, value.month, value.day)
} else if (this.datePickerType == DatePickerType.Time) {
this.selectedDate.setHours(value.hour, value.minute, value.second)
}
},
onCancel: () => {
console.info("DatePickerDialog:onCancel()")
},
onChange: (value: DatePickerResult) => {
console.info("DatePickerDialog:onChange()" + JSON.stringify(value))
}
})
})
}
}
}
```
# 文本滑动选择器弹窗
> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
> 该组件从API Version 8开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。
根据指定的选择范围创建文本选择器,展示在弹窗上。
## 权限列表
## TextPickerDialog.show
show(options: TextPickerDialogOption)
定义文本滑动选择器弹窗并弹出。
- TextPickerDialogOption参数
| 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 |
| -------- | -------- | -------- | -------- | -------- |
| range | string[] | 是 | - | 选择器的数据选择范围。 |
| selected | number | 否 | 第一个元素 | 选中项在数组中的index值。 |
| defaultPickerItemHeight | number | 否 | - | 默认Picker内容项元素高度。 |
| onAccept | (value: TextPickerResult) => void | 否 | - | 点击弹窗中确定按钮时触发。 |
| onCancel | () => void | 否 | - | 点击弹窗中取消按钮时触发。 |
| onChange | (value: TextPickerResult) => void | 否 | - | 滑动选择器,当前选择项改变时触发。 |
- TextPickerResult对象说明
| 名称 | 参数类型 | 描述 |
| -------- | -------- | -------- |
| value | string | 选中项文本。 |
| index | number | 选中项在数组中的index值。 |
## 示例
```
@Entry
@Component
struct TextPickerDialogExample {
@State select: number = 1
private fruits: string[] = ['apple1', 'orange2', 'peach3', 'grape4']
build() {
Flex({direction: FlexDirection.Column, alignItems: ItemAlign.Center,
justifyContent: FlexAlign.Center }) {
Button("TextPickerDialog").onClick(() => {
TextPickerDialog.show({
range: this.fruits,
selected: this.select,
onAccept: (value: TextPickerResult) => {
console.info("TextPickerDialog:onAccept()" + JSON.stringify(value))
this.select = value.index
},
onCancel: () => {
console.info("TextPickerDialog:onCancel()")
},
onChange: (value: TextPickerResult) => {
console.info("TextPickerDialog:onChange()" + JSON.stringify(value))
}
})
})
}
}
}
```
...@@ -4,7 +4,4 @@ ...@@ -4,7 +4,4 @@
- [用户认证开发概述](userauth-overview.md) - [用户认证开发概述](userauth-overview.md)
- [用户认证开发指导](userauth-guidelines.md) - [用户认证开发指导](userauth-guidelines.md)
- Hap包签名工具 - Hap包签名工具
- [Hap包签名工具开发指南](hapsigntool_guidelines.md) - [Hap包签名工具开发指南](hapsigntool-guidelines.md)
- 密钥管理
- [密钥管理开发概述](huks-overview.md)
- [密钥管理开发指导](huks-guidelines.md)
\ No newline at end of file
...@@ -76,6 +76,7 @@ ...@@ -76,6 +76,7 @@
- [@Builder](ts-component-based-builder.md) - [@Builder](ts-component-based-builder.md)
- [@Extend](ts-component-based-extend.md) - [@Extend](ts-component-based-extend.md)
- [@CustomDialog](ts-component-based-customdialog.md) - [@CustomDialog](ts-component-based-customdialog.md)
- [@Styles](ts-component-based-styles.md)
- UI状态管理 - UI状态管理
- [基本概念](ts-ui-state-mgmt-concepts.md) - [基本概念](ts-ui-state-mgmt-concepts.md)
- 管理组件拥有的状态 - 管理组件拥有的状态
......
...@@ -41,3 +41,93 @@ struct CompA { ...@@ -41,3 +41,93 @@ struct CompA {
} }
} }
``` ```
## @BuilderParam<sup>8+<sup>
@BuilderParam装饰器用于修饰自定义组件内函数类型的属性(例如:`@BuilderParam content: () => any;`),并且在初始化自定义组件时被@BuilderParam修饰的属性必须赋值。
### 引入动机
当开发者创建自定义组件,想对该组件添加特定功能时(如:仅对自定义组件添加一个点击跳转操作)。若直接在组件内嵌入事件方法,将会导致所有初始化该组件的地方均增加了该功能。为解决此问题,引入了@BuilderParam装饰器,此装饰器修饰的属性值可为@Builder修饰的方法,开发者可在初始化自定义组件时对此属性进行赋值,为自定义组件增加特定的的功能。
### 参数初始化组件
通过参数初始化组件时,将@Builder装饰的方法赋值给@BuilderParam修饰的属性,并在自定义组件内调用content属性值。
```
@Component
struct CustomContainer {
header: string = "";
@BuilderParam content: () => any;
footer: string = "";
build() {
Column() {
Text(this.header)
.fontSize(50)
this.content()
Text(this.footer)
.fontSize(50)
}
}
}
@Entry
@Component
struct CustomContainerUser {
@Builder specificParam(label: string) {
Column() {
Text(label).fontSize(50)
}
}
build() {
Column() {
CustomContainer({
header: "Header",
content: this.specificParam("111")
footer: "Footer",
})
}
}
}
```
### 尾随闭包初始化组件
在自定义组件中使用@BuilderParam修饰的属性接收尾随闭包(在初始化自定义组件时,组件名称紧跟一个大括号“{}”形成尾随闭包场景(`CustomComponent(){}`)。开发者可把尾随闭包看做一个容器,向其填充内容,如在闭包内增加组件(`{Column(){Text("content")}`),闭包内语法规范与[build](../ui/ts-function-build.md)一致。此场景下自定义组件内有且仅有一个使用@BuilderParam修饰的属性。
示例:在闭包内增加Column组件并添加点击事件,在新增的Column组件内调用@Builder修饰的specificParam方法,点击Column组件后该改变自定义组件中header的属性值为“changeHeader”。并且在初始化自定义组件时会把尾随闭包的内容赋值给使用@BuilderParam修饰的closer属性。
```
@Component
struct CustomContainer {
header: string = "";
@BuilderParam closer: () => any;
build() {
Column() {
Text(this.header)
.fontSize(50)
this.closer()
}
}
}
@Builder function specificParam(label1: string, label2: string) {
Column() {
Text(label1)
.fontSize(50)
Text(label2)
.fontSize(50)
}
}
@Entry
@Component
struct CustomContainerUser {
@State text: string = "header"
build() {
Column() {
CustomContainer({
header: this.text,
}){
Column(){
specificParam("111", "22")
}.onClick(()=>{
this.text = "changeHeader"
})
}
}
}
}
```
# @Styles
@Styles装饰器将新的属性函数添加到基本组件上,如**Text****Column****Button**等。当前@Styles仅支持[通用属性](../reference/arkui-ts/ts-universal-attributes.md)。通过@Styles装饰器可以快速定义并复用组件的自定义样式。
@Styles可以定义在组件内或组件外,在组件外定义时需带上function关键字,组件内定义时不需要。
```
@Styles function globalFancy() {
.backgroundColor(Color.Red)
}
@Entry
@Component
struct FancyUse {
@Styles componentFancy() {
.backgroundColor(Color.Blue)
}
build() {
Column({ space: 10 }) {
Text("Fancy")
.globalFancy()
.width(100)
.height(100)
.fontSize(30)
Text("Fancy")
.componentFancy()
.width(100)
.height(100)
.fontSize(30)
}
}
}
```
@Styles还可以在[StateStyles](../reference/arkui-ts/ts-universal-attributes-polymorphic-style.md)属性内部使用,在组件处于不同的状态时赋予相应的属性。
在StateStyles内可以直接调用组件外定义的Styles,但需要通过this关键字调用组件内定义的Styles。
```
@Styles function globalFancy() {
.width(100)
.height(100)
}
@Entry
@Component
struct FancyUse {
@Styles function componentFancy() {
.width(50)
.height(50)
}
build() {
Row({ space: 10 }) {
Button() {
Text("Fancy")
}
.stateStyles({
normal: {
.width(80)
.height(80)
},
disabled: this.componentFancy,
pressed: globalFancy
})
}
}
}
```
...@@ -135,3 +135,34 @@ build() { ...@@ -135,3 +135,34 @@ build() {
Text(this.calcTextValue()) // this function call is ok. Text(this.calcTextValue()) // this function call is ok.
} }
``` ```
## $$
$$支持变量双向绑定,支持简单变量、@State、@Link、@Prop等类型。
当前$$仅支持[bindPopup](../reference/arkui-ts/ts-universal-attributes-popup.md)属性的show参数和@State变量之间的渲染,以及Radio组件的checked属性。
```
@Entry
@Component
struct bindPopup {
@State customPopup: boolean = false
build() {
Column() {
Button(){
Text('Popup')
}
.onClick(()=>{
this.customPopup = !this.customPopup
})
.bindPopup(
$$this.customPopup, {
message: "showPopup"
}
)
}
}
}
```
...@@ -347,8 +347,17 @@ root { ...@@ -347,8 +347,17 @@ root {
node1 { node1 {
attributes; attributes;
} }
node2 {
attr_1 = &root.node1;
}
```
```
node2 { node2 {
node1 {
attributes;
}
attr_1 = &node1; attr_1 = &node1;
} }
``` ```
......
...@@ -15,7 +15,7 @@ ...@@ -15,7 +15,7 @@
### 功能简介 ### 功能简介
Sensor设备作为外接设备重要组成模块,通过Sensor驱动模型屏蔽硬件器件差异,为上层Sensor服务系统提供稳定的Sensor基础能力接口,包括Sensor列表查询、Sensor启停、Sensor订阅及取消订阅,Sensor参数配置等功能;Sensor设备驱动的开发是基于HDF驱动框架基础上,结合操作系统适配层(OSAL)和平台驱动接口(比如I2C/SPI/UART总线等平台资源)能力,屏蔽不同操作系统和平台总线资源差异,实现Sensor驱动“一次开发,多系统部署”的目标。Sensor驱动模型如[图1](#fig10451455446)所示:<a name="section3634112111"></a> Sensor驱动模型屏蔽硬件器件差异,为上层Sensor服务系统提供稳定的Sensor基础能力接口,包括Sensor列表查询、Sensor启停、Sensor订阅及取消订阅,Sensor参数配置等功能;Sensor设备驱动的开发是基于HDF驱动框架基础上,结合操作系统适配层(OSAL)和平台驱动接口(比如I2C/SPI/UART总线等平台资源)能力,屏蔽不同操作系统和平台总线资源差异,实现Sensor驱动“一次开发,多系统部署”的目标。Sensor驱动模型如[图1](#fig10451455446)所示:<a name="section3634112111"></a>
**图 1** Sensor驱动模型图<a name="fig10451455446"></a> **图 1** Sensor驱动模型图<a name="fig10451455446"></a>
![Sensor驱动模型图](figures/Sensor%E9%A9%B1%E5%8A%A8%E6%A8%A1%E5%9E%8B%E5%9B%BE.png) ![Sensor驱动模型图](figures/Sensor%E9%A9%B1%E5%8A%A8%E6%A8%A1%E5%9E%8B%E5%9B%BE.png)
...@@ -24,9 +24,9 @@ Sensor设备作为外接设备重要组成模块,通过Sensor驱动模型屏 ...@@ -24,9 +24,9 @@ Sensor设备作为外接设备重要组成模块,通过Sensor驱动模型屏
通过介绍Sensor驱动模型的加载以及运行流程,对模型内部关键组件以及关联组件之间的关系进行了划分,整体加载流程如[图2](#Sensor驱动模型图)所示: 通过介绍Sensor驱动模型的加载以及运行流程,对模型内部关键组件以及关联组件之间的关系进行了划分,整体加载流程如[图2](#Sensor驱动模型图)所示:
**图 2** Sensor驱动模型运行图 **图 2** Sensor驱动运行图
![Sensor驱动模型运行图](figures/Sensor%E9%A9%B1%E5%8A%A8%E6%A8%A1%E5%9E%8B%E8%BF%90%E8%A1%8C%E5%9B%BE.png) ![Sensor驱动运行图](figures/Sensor%E9%A9%B1%E5%8A%A8%E8%BF%90%E8%A1%8C%E5%9B%BE.png)
Sensor驱动模型以标准系统Hi3516DV300产品中的加速度传感器驱动为例,介绍整个驱动加载及运行流程: Sensor驱动模型以标准系统Hi3516DV300产品中的加速度传感器驱动为例,介绍整个驱动加载及运行流程:
...@@ -249,6 +249,7 @@ Sensor驱动模型要求驱动开发者实现的接口功能,参考[表3](#tab ...@@ -249,6 +249,7 @@ Sensor驱动模型要求驱动开发者实现的接口功能,参考[表3](#tab
</tr> </tr>
</tbody> </tbody>
</table> </table>
接口实现参考[开发实例](#section257750691)章节。 接口实现参考[开发实例](#section257750691)章节。
### 开发步骤<a name="section7893102915819"></a> ### 开发步骤<a name="section7893102915819"></a>
...@@ -438,7 +439,7 @@ Sensor驱动模型要求驱动开发者实现的接口功能,参考[表3](#tab ...@@ -438,7 +439,7 @@ Sensor驱动模型要求驱动开发者实现的接口功能,参考[表3](#tab
return HDF_SUCCESS; return HDF_SUCCESS;
} }
/* 挂载加速度计传感器驱动归一化的接口函数 */ /* 注册加速度计传感器驱动归一化的接口函数 */
static int32_t InitAccelOps(struct SensorCfgData *config, struct SensorDeviceInfo *deviceInfo) static int32_t InitAccelOps(struct SensorCfgData *config, struct SensorDeviceInfo *deviceInfo)
{ {
CHECK_NULL_PTR_RETURN_VALUE(config, HDF_ERR_INVALID_PARAM); CHECK_NULL_PTR_RETURN_VALUE(config, HDF_ERR_INVALID_PARAM);
...@@ -513,7 +514,7 @@ Sensor驱动模型要求驱动开发者实现的接口功能,参考[表3](#tab ...@@ -513,7 +514,7 @@ Sensor驱动模型要求驱动开发者实现的接口功能,参考[表3](#tab
return drvData->accelCfg; return drvData->accelCfg;
…… ……
} }
/* 加速度计传感器驱动初始化入口函数,主要功能为对传感器私有数据的结构体对象进行初始化,传感器HCS数据配置对象空间分配,传感器HCS数据配置初始化入口函数调用,传感器设备探测是否在位功能,传感器数据上报定时器创建,传感器归一化接口挂载,传感器设备注册功能 */ /* 加速度计传感器驱动初始化入口函数,主要功能为对传感器私有数据的结构体对象进行初始化,传感器HCS数据配置对象空间分配,传感器HCS数据配置初始化入口函数调用,传感器设备探测是否在位功能,传感器数据上报定时器创建,传感器归一化接口注册,传感器设备注册功能 */
int32_t InitAccelDriver(struct HdfDeviceObject *device) int32_t InitAccelDriver(struct HdfDeviceObject *device)
{ {
int32_t AccelInitDriver(struct HdfDeviceObject *device) int32_t AccelInitDriver(struct HdfDeviceObject *device)
...@@ -530,7 +531,7 @@ Sensor驱动模型要求驱动开发者实现的接口功能,参考[表3](#tab ...@@ -530,7 +531,7 @@ Sensor驱动模型要求驱动开发者实现的接口功能,参考[表3](#tab
HDF_LOGE("%s: Malloc accel config data failed", __func__); HDF_LOGE("%s: Malloc accel config data failed", __func__);
return HDF_FAILURE; return HDF_FAILURE;
} }
/* 挂接寄存器分组信息 */ /* 注册寄存器分组信息 */
drvData->accelCfg->regCfgGroup = &g_regCfgGroup[0]; drvData->accelCfg->regCfgGroup = &g_regCfgGroup[0];
…… ……
return HDF_SUCCESS; return HDF_SUCCESS;
...@@ -557,7 +558,7 @@ Sensor驱动模型要求驱动开发者实现的接口功能,参考[表3](#tab ...@@ -557,7 +558,7 @@ Sensor驱动模型要求驱动开发者实现的接口功能,参考[表3](#tab
4. 加速度传感器差异化驱动私有HCS配置实现 4. 加速度传感器差异化驱动私有HCS配置实现
- 为了方便开发者使用传感器HCS私有配置,在sensor_common.hcs里面定义通用的传感器配置模板,加速度传感器直接引用模板修改对应的属性值即可 - 为了方便开发者使用传感器HCS私有配置,在sensor_common.hcs里面定义通用的传感器配置模板。
``` ```
accel sensor common config template accel sensor common config template
...@@ -595,7 +596,7 @@ Sensor驱动模型要求驱动开发者实现的接口功能,参考[表3](#tab ...@@ -595,7 +596,7 @@ Sensor驱动模型要求驱动开发者实现的接口功能,参考[表3](#tab
} }
``` ```
- 开发者使用传感器HCS配置,在accel_config.hcs里面配置通用的传感器模板,加速度传感器直接引用模板并修改对应的属性值,在此基础上新增寄存器配置,生成accel_bmi160_config.hcs配置文件 - 开发者配置accel_bmi160_config.hcs文件时,引用加速度传感器的模板,并根据需要修改模板中继承的字段。如果需要新增寄存器配置字段,在配置传感器HCS后扩展
``` ```
/* 根据不同器件硬件差异,修改模板配置,不修改的就会默认采用模板配置 */ /* 根据不同器件硬件差异,修改模板配置,不修改的就会默认采用模板配置 */
...@@ -612,7 +613,7 @@ Sensor驱动模型要求驱动开发者实现的接口功能,参考[表3](#tab ...@@ -612,7 +613,7 @@ Sensor驱动模型要求驱动开发者实现的接口功能,参考[表3](#tab
busType = 0; // 0:i2c 1:spi busType = 0; // 0:i2c 1:spi
busNum = 6; busNum = 6;
busAddr = 0x68; busAddr = 0x68;
regWidth = 1; // 1btye regWidth = 1; // 1 btye
} }
sensorIdAttr :: sensorIdInfo{ sensorIdAttr :: sensorIdInfo{
chipName = "bmi160"; chipName = "bmi160";
...@@ -711,7 +712,7 @@ Sensor驱动模型要求驱动开发者实现的接口功能,参考[表3](#tab ...@@ -711,7 +712,7 @@ Sensor驱动模型要求驱动开发者实现的接口功能,参考[表3](#tab
HDF_LOGE("%s: Register BMI160 accel failed", __func__); HDF_LOGE("%s: Register BMI160 accel failed", __func__);
return HDF_FAILURE; return HDF_FAILURE;
} }
/* 初始化器件配置 * /* 初始化器件配置 */
ret = InitBmi160(drvData->sensorCfg); ret = InitBmi160(drvData->sensorCfg);
if (ret != HDF_SUCCESS) { if (ret != HDF_SUCCESS) {
HDF_LOGE("%s: Init BMI160 accel failed", __func__); HDF_LOGE("%s: Init BMI160 accel failed", __func__);
......
...@@ -11,11 +11,11 @@ ...@@ -11,11 +11,11 @@
### 功能简介 ### 功能简介
为了快速开发传感器驱动,基于HDF(Hardware Driver Foundation)驱动框架开发了马达驱动模型。马达设备模型抽象,屏蔽设备驱动与系统交互的实现,为硬件服务层提供统一稳定的驱动接口能力,为驱动开发者提供开放的接口实现和抽象的配置接口能力。用于不同操作系统马达设备部件的部署指导和马达设备部件驱动的开发。马达驱动模型如[图1](马达驱动模型图)所示: 为了快速开发传感器驱动,基于HDF(Hardware Driver Foundation)驱动框架开发了马达驱动模型。马达驱动模型,屏蔽设备驱动与系统交互的实现,为硬件服务层提供统一稳定的驱动接口能力,为驱动开发者提供开放的接口和解析接口的能力。用于不同操作系统马达设备部件的部署指导和马达设备部件驱动的开发。马达驱动模型如[图1](马达驱动模型图)所示:
**图 1** 马达驱动模型图 **图 1** 马达驱动模型图
![Vibrator驱动模型](figures/Vibrator%E9%A9%B1%E5%8A%A8%E6%A8%A1%E5%9E%8B.png) ![Vibrator驱动模型](figures/Vibrator%E9%A9%B1%E5%8A%A8%E6%A8%A1%E5%9E%8B%E5%9B%BE.png)
### 运作机制 ### 运作机制
...@@ -28,12 +28,12 @@ ...@@ -28,12 +28,12 @@
马达驱动模型以标准系统Hi3516DV300产品为例,介绍整个驱动加载及运行流程: 马达驱动模型以标准系统Hi3516DV300产品为例,介绍整个驱动加载及运行流程:
1. 从device info HCS 的Vibrator Host读取Vibrator管理配置信息。 1. 从device info HCS 的Vibrator Host读取Vibrator管理配置信息。
2. 解析Vibrator配置信息,并关联对应设备驱动。 2. 解析Vibrator管理配置信息,并关联对应马达抽象驱动。
3. 从linear_vibrator_config HCS读取Vibrator数据配置信息。 3. 从linear_vibrator_config HCS读取Vibrator数据配置信息。
4. 解析Vibrator数据配置信息,并关联对应Haptic驱动。 4. 解析Vibrator数据配置信息,并关联对应Haptic驱动。
5. 客户端下发Vibrator Stub控制到服务端。 5. 客户端下发Vibrator Stub控制到服务端。
6. 服务端调用Vibrator Stub控制 6. Vibrator Stub控制调用马达服务
7. 启动马达抽象驱动接口。 7. 初始化马达抽象驱动接口。
8. Haptic中起线程,解析效果模块。 8. Haptic中起线程,解析效果模块。
9. Haptic调用马达抽象驱动中的Start接口。 9. Haptic调用马达抽象驱动中的Start接口。
10. 马达抽象驱动调用马达差异化驱动中的Start接口。 10. 马达抽象驱动调用马达差异化驱动中的Start接口。
...@@ -143,7 +143,7 @@ Vibrator驱动模型为上层马达硬件服务层提供稳定的马达控制能 ...@@ -143,7 +143,7 @@ Vibrator驱动模型为上层马达硬件服务层提供稳定的马达控制能
} }
``` ```
- 马达设备管理模块负责系统中马达器件接口发布,在系统启动过程中,HDF框架机制通过马达 Host里设备HCS配置信息,加载设备管理驱动 - 在系统启动过程中,HDF设备管理模块通过设备HCS配置信息,加载马达抽象驱动,并对外发布马达驱动接口
``` ```
/* 马达设备HCS配置 */ /* 马达设备HCS配置 */
...@@ -167,7 +167,7 @@ Vibrator驱动模型为上层马达硬件服务层提供稳定的马达控制能 ...@@ -167,7 +167,7 @@ Vibrator驱动模型为上层马达硬件服务层提供稳定的马达控制能
- 创建马达效果模型。 - 创建马达效果模型。
``` ```
/* 创建马达效果模型,分配资源,解析马达HCS配置 */ /* 创建马达效果模型,分配资源,解析马达效果HCS配置 */
int32_t CreateVibratorHaptic(struct HdfDeviceObject *device) int32_t CreateVibratorHaptic(struct HdfDeviceObject *device)
{ {
struct VibratorHapticData *hapticData = NULL; struct VibratorHapticData *hapticData = NULL;
...@@ -245,7 +245,7 @@ Vibrator驱动模型为上层马达硬件服务层提供稳定的马达控制能 ...@@ -245,7 +245,7 @@ Vibrator驱动模型为上层马达硬件服务层提供稳定的马达控制能
config.cfgMode = VIBRATOR_MODE_ONCE; config.cfgMode = VIBRATOR_MODE_ONCE;
config.duration = duration; config.duration = duration;
config.effect = NULL; config.effect = NULL;
/* 据振动效果的模式创建 */ /* 根据振动效果的模式创建定时器 */
ret = StartHaptic(&config); ret = StartHaptic(&config);
if (ret != HDF_SUCCESS) { if (ret != HDF_SUCCESS) {
HDF_LOGE("%s: start haptic fail!", __func__); HDF_LOGE("%s: start haptic fail!", __func__);
...@@ -302,7 +302,7 @@ Vibrator驱动模型为上层马达硬件服务层提供稳定的马达控制能 ...@@ -302,7 +302,7 @@ Vibrator驱动模型为上层马达硬件服务层提供稳定的马达控制能
4. 马达驱动模型提供给开发者马达驱动差异化接口,开发者实现差异化接口。 4. 马达驱动模型提供给开发者马达驱动差异化接口,开发者实现差异化接口。
- 此接口在差异化器件驱动初始化成功时,注册差异实现接口,方便实现器件差异的驱动接口。 - 在差异化器件驱动初始化成功时,注册差异实现接口,方便实现器件差异的驱动接口。
``` ```
/* 注册马达差异化实现接口 */ /* 注册马达差异化实现接口 */
...@@ -326,7 +326,7 @@ Vibrator驱动模型为上层马达硬件服务层提供稳定的马达控制能 ...@@ -326,7 +326,7 @@ Vibrator驱动模型为上层马达硬件服务层提供稳定的马达控制能
- 马达驱动模型提供给开发者马达驱动差异化接口,具体实现如下: - 马达驱动模型提供给开发者马达驱动差异化接口,具体实现如下:
``` ```
/* 按照指定持续时间触发马达线性驱动 */ /* 按照指定持续时间触发线性马达的振动 */
static int32_t StartLinearVibrator() static int32_t StartLinearVibrator()
{ {
int32_t ret; int32_t ret;
...@@ -341,7 +341,7 @@ Vibrator驱动模型为上层马达硬件服务层提供稳定的马达控制能 ...@@ -341,7 +341,7 @@ Vibrator驱动模型为上层马达硬件服务层提供稳定的马达控制能
return HDF_SUCCESS; return HDF_SUCCESS;
} }
/* 按照预置振动效果启动马达线性驱动 */ /* 按照预置振动效果触发线性马达的振动 */
static int32_t StartEffectLinearVibrator(uint32_t effectType) static int32_t StartEffectLinearVibrator(uint32_t effectType)
{ {
(void)effectType; (void)effectType;
...@@ -349,7 +349,7 @@ Vibrator驱动模型为上层马达硬件服务层提供稳定的马达控制能 ...@@ -349,7 +349,7 @@ Vibrator驱动模型为上层马达硬件服务层提供稳定的马达控制能
return HDF_SUCCESS; return HDF_SUCCESS;
} }
/* 按照指定的振动模式停止马达线性驱动 */ /* 按照指定的振动模式停止线性马达的振动 */
static int32_t StopLinearVibrator() static int32_t StopLinearVibrator()
{ {
int32_t ret; int32_t ret;
......
...@@ -101,10 +101,12 @@ static UINT32 Example_Interrupt(VOID) ...@@ -101,10 +101,12 @@ static UINT32 Example_Interrupt(VOID)
UINT32 ret; UINT32 ret;
HWI_PRIOR_T hwiPrio = 3; HWI_PRIOR_T hwiPrio = 3;
HWI_MODE_T mode = 0; HWI_MODE_T mode = 0;
HWI_ARG_T arg = 0; HwiIrqParam irqParam;
(void)memset_s(&irqParam, sizeof(HwiIrqParam), 0, sizeof(HwiIrqParam));
irqParam.pDevId = 0;
/*创建中断*/ /*创建中断*/
ret = LOS_HwiCreate(HWI_NUM_TEST, hwiPrio, mode, (HWI_PROC_FUNC)HwiUsrIrq, arg); ret = LOS_HwiCreate(HWI_NUM_TEST, hwiPrio, mode, (HWI_PROC_FUNC)HwiUsrIrq, &irqParam);
if(ret == LOS_OK){ if(ret == LOS_OK){
printf("Hwi create success!\n"); printf("Hwi create success!\n");
} else { } else {
......
...@@ -89,7 +89,7 @@ ...@@ -89,7 +89,7 @@
- [HiSysEvent打点配置指导](subsys-dfx-hisysevent-logging-config.md) - [HiSysEvent打点配置指导](subsys-dfx-hisysevent-logging-config.md)
- [HiSysEvent打点指导](subsys-dfx-hisysevent-logging.md) - [HiSysEvent打点指导](subsys-dfx-hisysevent-logging.md)
- [HiSysEvent订阅指导](subsys-dfx-hisysevent-listening.md) - [HiSysEvent订阅指导](subsys-dfx-hisysevent-listening.md)
- [HiSysEvent查询指导](subsys-dfx-hisysevent-querying.md) - [HiSysEvent查询指导](subsys-dfx-hisysevent-query.md)
- [HiSysEvent工具使用指导](subsys-dfx-hisysevent-tool.md) - [HiSysEvent工具使用指导](subsys-dfx-hisysevent-tool.md)
- [研发工具链](subsys-toolchain.md) - [研发工具链](subsys-toolchain.md)
- [bytrace使用指导](subsys-toolchain-bytrace-guide.md) - [bytrace使用指导](subsys-toolchain-bytrace-guide.md)
......
...@@ -27,8 +27,8 @@ HiSysEvent提供了跨进程订阅机制,开发者可以通过注册订阅接 ...@@ -27,8 +27,8 @@ HiSysEvent提供了跨进程订阅机制,开发者可以通过注册订阅接
| 接口名称 | 描述 | | 接口名称 | 描述 |
| -------- | --------- | | -------- | --------- |
|int HiSysEventManager::AddEventListener(std::shared_ptr&lt;HiSysEventSubscribeCallBackBase&gt; listener, std::vector&lt;ListenerRule&gt;&amp; rules)|接口功能:注册订阅HiSysEvent系统事件侦听对象,可设置规则订阅某些事件。<br><br>输入参数:<ul><li>listener:订阅回调对象。</li><li>rules:事件订阅规则。</li></ul>返回值:<ul><li>0:订阅成功,重复订阅。</li><li>1:订阅成功,初次订阅。</li><li>其他值:订阅失败。</li></ul>| |int HiSysEventManager::AddEventListener(std::shared_ptr&lt;HiSysEventSubscribeCallBack&gt; listener, std::vector&lt;ListenerRule&gt;&amp; rules)|接口功能:注册订阅HiSysEvent系统事件侦听对象,可设置规则订阅某些事件。<br><br>输入参数:<ul><li>listener:订阅回调对象。</li><li>rules:事件订阅规则。</li></ul>返回值:<ul><li>0:订阅成功,重复订阅。</li><li>1:订阅成功,初次订阅。</li><li>其他值:订阅失败。</li></ul>|
|void HiSysEventManager::RemoveListener(std::shared_ptr&lt;HiSysEventSubscribeCallBackBase&gt; listener)|接口功能:移除订阅hisysevent系统事件侦听对象。<br><br>输入参数:<ul><li>listener:订阅回调对象。</ul>返回值:<br>&emsp;&emsp;无。| |void HiSysEventManager::RemoveListener(std::shared_ptr&lt;HiSysEventSubscribeCallBack&gt; listener)|接口功能:移除订阅hisysevent系统事件侦听对象。<br><br>输入参数:<ul><li>listener:订阅回调对象。</ul>返回值:<br>&emsp;&emsp;无。|
**表 2** ListenerRule订阅规则对象 **表 2** ListenerRule订阅规则对象
...@@ -46,11 +46,11 @@ HiSysEvent提供了跨进程订阅机制,开发者可以通过注册订阅接 ...@@ -46,11 +46,11 @@ HiSysEvent提供了跨进程订阅机制,开发者可以通过注册订阅接
| PREFIX | 前缀匹配类型 | | PREFIX | 前缀匹配类型 |
| REGULAR | 正则匹配类型 | | REGULAR | 正则匹配类型 |
**表 4** HiSysEventSubscribeCallBackBase订阅对象 **表 4** HiSysEventSubscribeCallBack订阅对象
| 接口名称 | 描述 | | 接口名称 | 描述 |
| -------- | --------- | | -------- | --------- |
|void HiSysEventSubscribeCallBackBase::OnHandle(const std::string&amp; domain, const std::string&amp; eventName, const int eventType, const std::string&amp; eventDetail)|接口功能:订阅事件的回调接口。<br><br>输入参数:<ul><li>domain:事件所属领域。</li><li>eventName:事件的名称。</li><li>eventType:事件类型。</li><li>eventDetail:包含事件相关信息的字符串,以json的形式体现。</li></ul>返回值:<br>&emsp;&emsp;无。| |void HiSysEventSubscribeCallBack::OnHandle(const std::string&amp; domain, const std::string&amp; eventName, const int eventType, const std::string&amp; eventDetail)|接口功能:订阅事件的回调接口。<br><br>输入参数:<ul><li>domain:事件所属领域。</li><li>eventName:事件的名称。</li><li>eventType:事件类型。</li><li>eventDetail:包含事件相关信息的字符串,以json的形式体现。</li></ul>返回值:<br>&emsp;&emsp;无。|
### 开发实例<a name="section123181432175110"></a> ### 开发实例<a name="section123181432175110"></a>
...@@ -68,9 +68,9 @@ HiSysEvent提供了跨进程订阅机制,开发者可以通过注册订阅接 ...@@ -68,9 +68,9 @@ HiSysEvent提供了跨进程订阅机制,开发者可以通过注册订阅接
#include <string> #include <string>
class DemoListener : public OHOS::HiviewDFX::HiSysEventSubscribeCallBackNative { class DemoListener : public OHOS::HiviewDFX::HiSysEventSubscribeCallBack {
public: public:
explicit DemoListener() : HiSysEventSubscribeCallBackNative() {} explicit DemoListener() : HiSysEventSubscribeCallBack() {}
void OnHandle(const std::string& domain, const std::string& eventName, const int eventType, void OnHandle(const std::string& domain, const std::string& eventName, const int eventType,
const std::string& eventDetail); const std::string& eventDetail);
virtual ~DemoListener() {} virtual ~DemoListener() {}
......
...@@ -17,7 +17,7 @@ HiSysEvent提供了查询接口,支持开发者设置条件查询HiSysEvent事 ...@@ -17,7 +17,7 @@ HiSysEvent提供了查询接口,支持开发者设置条件查询HiSysEvent事
| 接口名称 | 描述 | | 接口名称 | 描述 |
| -------- | --------- | | -------- | --------- |
| bool HiSysEventManager::QueryHiSysEvent(struct QueryArg&amp; queryArg, std::vector&lt;struct QueryRule&gt;&amp; queryRules, std::shared_ptr&lt;HiSysEventQueryCallBackBase&gt; queryCallBack) | 接口功能:<br>&emsp;&emsp;支持设置查询时间段,事件领域,事件名称等,查询满足条件的HiSysEvent事件。<br><br>输入参数:<ul><li>queryArg:查询参数。</li><li>queryRules:事件过滤规则。</li><li>queryCallBack:查询接口回调对象。</li></ul>返回值:<ul><li>true:查询成功。</li><li>false:查询失败。</li></ul> | | bool HiSysEventManager::QueryHiSysEvent(struct QueryArg&amp; queryArg, std::vector&lt;struct QueryRule&gt;&amp; queryRules, std::shared_ptr&lt;HiSysEventQueryCallBack&gt; queryCallBack) | 接口功能:<br>&emsp;&emsp;支持设置查询时间段,事件领域,事件名称等,查询满足条件的HiSysEvent事件。<br><br>输入参数:<ul><li>queryArg:查询参数。</li><li>queryRules:事件过滤规则。</li><li>queryCallBack:查询接口回调对象。</li></ul>返回值:<ul><li>true:查询成功。</li><li>false:查询失败。</li></ul> |
**表 2** QueryArg查询参数对象 **表 2** QueryArg查询参数对象
...@@ -36,12 +36,12 @@ HiSysEvent提供了查询接口,支持开发者设置条件查询HiSysEvent事 ...@@ -36,12 +36,12 @@ HiSysEvent提供了查询接口,支持开发者设置条件查询HiSysEvent事
| domain | string类型,用来标识查询规则对象的事件所属领域,如果传入的是空字符串,则默认事件领域字段匹配成功。 | | domain | string类型,用来标识查询规则对象的事件所属领域,如果传入的是空字符串,则默认事件领域字段匹配成功。 |
| eventList | std::vector&lt;std::string&gt;类型,事件名称的列表,如果传入的是空字符串,则默认事件名称字段匹配成功。 | | eventList | std::vector&lt;std::string&gt;类型,事件名称的列表,如果传入的是空字符串,则默认事件名称字段匹配成功。 |
**表 4** HiSysEventQueryCallBackBase查询回调对象 **表 4** HiSysEventQueryCallBack查询回调对象
| 接口名称 | 描述 | | 接口名称 | 描述 |
| -------- | --------- | | -------- | --------- |
| void HiSysEventQueryCallBackBase::OnQuery(const ::std::vector&lt;std::string&gt;&amp; sysEvent, const ::std::vector&lt;int64_t&gt;&amp; seq) | 接口功能:订阅事件查询中的回调。<br><br>输入参数:<ul><li>sysEvent:返回事件集合。</li><li>seq:事件序列集合。</li></ul>返回值:<br>&emsp;&emsp;无。 | | void HiSysEventQueryCallBack::OnQuery(const ::std::vector&lt;std::string&gt;&amp; sysEvent, const ::std::vector&lt;int64_t&gt;&amp; seq) | 接口功能:订阅事件查询中的回调。<br><br>输入参数:<ul><li>sysEvent:返回事件集合。</li><li>seq:事件序列集合。</li></ul>返回值:<br>&emsp;&emsp;无。 |
| void HiSysEventQueryCallBackBase::OnComplete(int32_t reason, int32_t total) | 接口功能:订阅事件查询完成的回调。<br><br>输入参数:<ul><li>reason:查询结束返回原因,目前默认是0。</li><li>total:本次查询总共返回的事件总数量。</li></ul>返回值:<br>&emsp;&emsp;无。 | | void HiSysEventQueryCallBack::OnComplete(int32_t reason, int32_t total) | 接口功能:订阅事件查询完成的回调。<br><br>输入参数:<ul><li>reason:查询结束返回原因,目前默认是0。</li><li>total:本次查询总共返回的事件总数量。</li></ul>返回值:<br>&emsp;&emsp;无。 |
### 开发实例<a name="section14286111855212"></a> ### 开发实例<a name="section14286111855212"></a>
...@@ -55,13 +55,13 @@ C++接口实例。 ...@@ -55,13 +55,13 @@ C++接口实例。
- 实现对应的查询回调接口: - 实现对应的查询回调接口:
void HiSysEventQueryCallBackBase::OnQuery\(const ::std::vector<std::string\>& sysEvent, const ::std::vector<int64\_t\>& seq\) void HiSysEventQueryCallBack::OnQuery\(const ::std::vector<std::string\>& sysEvent, const ::std::vector<int64\_t\>& seq\)
void HiSysEventQueryCallBackBase::OnComplete\(int32\_t reason, int32\_t total\) void HiSysEventQueryCallBack::OnComplete\(int32\_t reason, int32\_t total\)
- 在相应的业务逻辑里面调用查询接口: - 在相应的业务逻辑里面调用查询接口:
HiSysEventManager::QueryHiSysEvent\(struct QueryArg& queryArg, std::vector<struct QueryRule\>& queryRules, std::shared\_ptr<HiSysEventQueryCallBackBase\> queryCallBack\) HiSysEventManager::QueryHiSysEvent\(struct QueryArg& queryArg, std::vector<struct QueryRule\>& queryRules, std::shared\_ptr<HiSysEventQueryCallBack\> queryCallBack\)
``` ```
......
...@@ -6,6 +6,6 @@ ...@@ -6,6 +6,6 @@
- **[HiSysEvent订阅指导](subsys-dfx-hisysevent-listening.md)** - **[HiSysEvent订阅指导](subsys-dfx-hisysevent-listening.md)**
- **[HiSysEvent查询指导](subsys-dfx-hisysevent-querying.md)** - **[HiSysEvent查询指导](subsys-dfx-hisysevent-query.md)**
- **[HiSysEvent工具使用指导](subsys-dfx-hisysevent-tool.md)** - **[HiSysEvent工具使用指导](subsys-dfx-hisysevent-tool.md)**
\ No newline at end of file
...@@ -8,6 +8,8 @@ ...@@ -8,6 +8,8 @@
- **[HiSysEvent开发指导](subsys-dfx-hisysevent.md)** - **[HiSysEvent开发指导](subsys-dfx-hisysevent.md)**
-[HiSysEvent打点配置指导](subsys-dfx-hisysevent-logging-config.md)
- [HiSysEvent打点指导](subsys-dfx-hisysevent-logging.md) - [HiSysEvent打点指导](subsys-dfx-hisysevent-logging.md)
- [HiSysEvent订阅指导](subsys-dfx-hisysevent-listening.md) - [HiSysEvent订阅指导](subsys-dfx-hisysevent-listening.md)
......
zh-cn/readme/figures/appexecfwk.png

30.3 KB | W: | H:

zh-cn/readme/figures/appexecfwk.png

37.1 KB | W: | H:

zh-cn/readme/figures/appexecfwk.png
zh-cn/readme/figures/appexecfwk.png
zh-cn/readme/figures/appexecfwk.png
zh-cn/readme/figures/appexecfwk.png
  • 2-up
  • Swipe
  • Onion skin
# **用户程序框架子系统** # **包管理子系统**
## 简介 ## 简介
用户程序框架子系统是OpenHarmony为开发者提供的一套开发OpenHarmony应用程序的框架。 包管理子系统负责应用安装包的管理,提供安装包的信息查询、安装、更新、卸载和包信息存储等能力。具体功能如下:
**包含以下模块** 包管理子系统架构如下图所示
- **AppKit**:是用户程序框架提供给开发者的开发包,开发者基于该开发包可以开发出基于Ability组件的应用。 ![](figures/appexecfwk.png)
- **AppManagerService**:应用管理服务,用于管理应用运行关系、调度应用进程生命周期及状态的系统服务。
- **BundleManagerService**:是负责管理安装包的系统服务,常见的比如包安装、更新,卸载和包信息查询等,运行在Foundation进程。
应用程序框架子系统架构如下图所示: ## 部件内子模块职责
![](figures/appexecfwk.png)
| 子模块名称 | 职责 |
| ---------------- | ------------------------------------------------------------ |
| 包管理接口模块 | 1.对外提供的安装更新卸载及通知接口;<br>2.对外提供的包/组件信息/权限信息查询接口;<br>3.对外提供的应用权限查询接口;<br>4.对外提供的清除数据的接口; |
| 扫描模块 | 1.预置应用的扫描;<br>2.已安装三方应用的扫描;<br>3.包配置文件的解析; |
| 安全管理模块 | 1.安装过程中的签名校验;<br>2.安装过程中应用所申请权限的授予;<br>3.应用运行中权限的校验; |
| DBMS模块 | 1.获取指定设备ability信息; |
| 安装管理模块 | 1.安装、更新、卸载逻辑处理及结果通知; |
| 包信息管理模块 | 1.包信息、组件信息的存储及同步; |
| 设备状态监听模块 | 1.监听设备的上下线; |
| Installd模块 | 特权进程:<br>1)用于创建、删除等目录操作;<br>2)用于创建、删除等文件操作;<br>3)用于设备目录的沙箱uid/gid等操作 |
| DFX | 1.包管理维测工具 |
## 目录 ## 目录
...@@ -29,24 +35,12 @@ foundation/appexecfwk/standard ...@@ -29,24 +35,12 @@ foundation/appexecfwk/standard
├── interfaces ├── interfaces
│   └── innerkits # 内部接口存放目录 │   └── innerkits # 内部接口存放目录
├── services ├── services
│   ├── appmgr # 用户程序管理服务框架代码
│   └── bundlemgr # 包管理服务框架代码 │   └── bundlemgr # 包管理服务框架代码
│   └── dbms # 分布式包管理服务框架代码
├── test # 测试目录 ├── test # 测试目录
└── tools # bm命令存放目录 └── tools # bm命令存放目录
``` ```
### 使用说明
当前版本用户程序框架不具备权限管理的能力。
以下模块的JS接口为非正式API,仅供Launcher、Settings、SystemUI等系统应用使用,不排除对这些接口进行变更的可能性,后续版本将提供正式API。
- @ohos.bundle_mgr.d.ts
- bundleinfo.d.ts
- common.d.ts
- installresult.d.ts
- moduleinfo.d.ts
### bm工具命令 ### bm工具命令
bm是用来方便开发者调试的一个工具。bm工具被hdc工具封装,进入hdc shell命令后,就可以使用bm工具。 bm是用来方便开发者调试的一个工具。bm工具被hdc工具封装,进入hdc shell命令后,就可以使用bm工具。
...@@ -74,11 +68,10 @@ bm help ...@@ -74,11 +68,10 @@ bm help
命令可以组合,下面列出部分命令。 命令可以组合,下面列出部分命令。
| 命令                                | 描述                       | | 命令                                | 描述                       |
| ----------------------------------- | -------------------------- | | ----------------------------------- | -------------------------- |
| bm install -h, --help | 显示install支持的命令信息 | | bm install -h | 显示install支持的命令信息 |
| bm install -p <hap-file-path>    | 安装hap包,支持指定路径和多个hap同时安装 | | bm install -p <hap-file-path>    | 安装hap包,支持指定路径和多个hap同时安装 |
| bm install -p <hap-file-path> -u <user-id>   |给指定用户安装一个hap包 | | bm install -p <hap-file-path> -u <user-id>   |给指定用户安装一个hap包 |
| bm install -r -p <hap-file-path> | 覆盖安装一个hap包 | | bm install -r -p <hap-file-path> | 覆盖安装一个hap包 |
| bm install -f -p <hap-file-path> | 强制安装一个hap包 |
| bm install -r -p <hap-file-path> -u <user-id> | 给指定用户覆盖安装一个hap包 | | bm install -r -p <hap-file-path> -u <user-id> | 给指定用户覆盖安装一个hap包 |
* 示例 * 示例
...@@ -87,8 +80,6 @@ bm help ...@@ -87,8 +80,6 @@ bm help
bm install -p /data/app/ohosapp.hap bm install -p /data/app/ohosapp.hap
# 覆盖安装一个hap # 覆盖安装一个hap
bm install -p /data/app/ohosapp.hap -r bm install -p /data/app/ohosapp.hap -r
# 强制安装一个hap
bm install -p /data/app/ohosapp.hap -f
``` ```
#### 卸载命令 #### 卸载命令
命令可以组合,下面列出部分命令。-u未指定情况下,默认为所有用户。 命令可以组合,下面列出部分命令。-u未指定情况下,默认为所有用户。
...@@ -184,10 +175,8 @@ bm get -u ...@@ -184,10 +175,8 @@ bm get -u
## 相关仓 ## 相关仓
用户程序框架子系统 包管理子系统
**appexecfwk_standard** **appexecfwk_standard**
aafwk_standard developtools_packing_tool
startup_appspawn
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册