未验证 提交 f84be461 编写于 作者: O openharmony_ci 提交者: Gitee

!2414 2241 处理完成:js-apis-deviceUsageStatistics.md 刷新

Merge pull request !2414 from ester.zhou/TR-2241
...@@ -11,17 +11,19 @@ import bundleState from '@ohos.bundleState' ...@@ -11,17 +11,19 @@ import bundleState from '@ohos.bundleState'
``` ```
## bundleState.isIdleState ## bundleState.isIdleState
isIdleState(bundleName: string, callback: AsyncCallback&lt;boolean&gt;): void<br>
isIdleState(bundleName: string, callback: AsyncCallback&lt;boolean&gt;): void
Checks whether the application specified by **bundleName** is in the idle state. This API uses an asynchronous callback to return the result. Checks whether the application specified by **bundleName** is in the idle state. This API uses an asynchronous callback to return the result.
**System capability**: SystemCapability.ResourceSchedule.UsageStatistics.AppGroup **System capability**: SystemCapability.ResourceSchedule.UsageStatistics.AppGroup
**Parameters** **Parameters**
| Name| Type| Mandatory| Description| | Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
| bundleName | string | Yes| Bundle name of an application.| | bundleName | string | Yes| Bundle name of an application.|
| callback | AsyncCallback&lt;boolean&gt; | Yes| Callback used to return the result. Returns whether the application specified by **bundleName** is in the idle state if the value of **bundleName** is valid; returns **null** otherwise.| | callback | AsyncCallback&lt;boolean&gt; | Yes| Callback used to return the result. Returns whether the application specified by **bundleName** is in the idle state if the value of **bundleName** is valid; returns **null** otherwise.|
**Example** **Example**
...@@ -36,22 +38,24 @@ Checks whether the application specified by **bundleName** is in the idle state. ...@@ -36,22 +38,24 @@ Checks whether the application specified by **bundleName** is in the idle state.
``` ```
## bundleState.isIdleState ## bundleState.isIdleState
isIdleState(bundleName: string): Promise&lt;boolean&gt;<br>
isIdleState(bundleName: string): Promise&lt;boolean&gt;
Checks whether the application specified by **bundleName** is in the idle state. This API uses a promise to return the result. Checks whether the application specified by **bundleName** is in the idle state. This API uses a promise to return the result.
**System capability**: SystemCapability.ResourceSchedule.UsageStatistics.AppGroup **System capability**: SystemCapability.ResourceSchedule.UsageStatistics.AppGroup
**Parameters** **Parameters**
| Name| Type| Mandatory| Description| | Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
| bundleName | string | Yes| Bundle name of an application.| | bundleName | string | Yes| Bundle name of an application.|
**Return value** **Return value**
| Type| Description| | Type| Description|
| -------- | -------- | | -------- | -------- |
| Promise&lt;boolean&gt; | Promise used to return the result. Returns whether the application specified by **bundleName** is in the idle state if the value of **bundleName** is valid; returns **null** otherwise.| | Promise&lt;boolean&gt; | Promise used to return the result. Returns whether the application specified by **bundleName** is in the idle state if the value of **bundleName** is valid; returns **null** otherwise.|
**Example** **Example**
...@@ -64,16 +68,18 @@ Checks whether the application specified by **bundleName** is in the idle state. ...@@ -64,16 +68,18 @@ Checks whether the application specified by **bundleName** is in the idle state.
``` ```
## bundleState.queryAppUsagePriorityGroup ## bundleState.queryAppUsagePriorityGroup
queryAppUsagePriorityGroup(callback: AsyncCallback&lt;number&gt;): void<br>
queryAppUsagePriorityGroup(callback: AsyncCallback&lt;number&gt;): void
Queries the priority group of the current invoker application. This API uses an asynchronous callback to return the result. Queries the priority group of the current invoker application. This API uses an asynchronous callback to return the result.
**System capability**: SystemCapability.ResourceSchedule.UsageStatistics.AppGroup **System capability**: SystemCapability.ResourceSchedule.UsageStatistics.AppGroup
**Parameters** **Parameters**
| Name| Type| Mandatory| Description| | Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
| callback | AsyncCallback&lt;number&gt; | Yes| Callback used to return the result.| | callback | AsyncCallback&lt;number&gt; | Yes| Callback used to return the result.|
**Example** **Example**
...@@ -88,16 +94,18 @@ Queries the priority group of the current invoker application. This API uses an ...@@ -88,16 +94,18 @@ Queries the priority group of the current invoker application. This API uses an
``` ```
## bundleState.queryAppUsagePriorityGroup ## bundleState.queryAppUsagePriorityGroup
queryAppUsagePriorityGroup(): Promise&lt;number&gt;<br>
queryAppUsagePriorityGroup(): Promise&lt;number&gt;
Queries the priority group of the current invoker application. This API uses a promise to return the result. Queries the priority group of the current invoker application. This API uses a promise to return the result.
**System capability**: SystemCapability.ResourceSchedule.UsageStatistics.AppGroup **System capability**: SystemCapability.ResourceSchedule.UsageStatistics.AppGroup
**Return value** **Return value**
| Type| Description| | Type| Description|
| -------- | -------- | | -------- | -------- |
| Promise&lt;number&gt; | Promise used to return the result.| | Promise&lt;number&gt; | Promise used to return the result.|
**Example** **Example**
...@@ -110,19 +118,22 @@ Queries the priority group of the current invoker application. This API uses a p ...@@ -110,19 +118,22 @@ Queries the priority group of the current invoker application. This API uses a p
``` ```
## bundleState.queryBundleStateInfos ## bundleState.queryBundleStateInfos
queryBundleStateInfos(begin: number, end: number, callback: AsyncCallback&lt;BundleActiveInfoResponse&gt;): void<br>
Queries the application usage duration statistics based on the specified start time and end time. This API uses an asynchronous callback to return the result.<br> queryBundleStateInfos(begin: number, end: number, callback: AsyncCallback&lt;BundleActiveInfoResponse&gt;): void
Queries the application usage duration statistics based on the specified start time and end time. This API uses an asynchronous callback to return the result.
**Required permissions**: ohos.permission.BUNDLE_ACTIVE_INFO **Required permissions**: ohos.permission.BUNDLE_ACTIVE_INFO
**System capability**: SystemCapability.ResourceSchedule.UsageStatistics.App **System capability**: SystemCapability.ResourceSchedule.UsageStatistics.App
**Parameters** **Parameters**
| Name| Type| Mandatory| Description| | Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
| begin | number | Yes| Start time.| | begin | number | Yes| Start time.|
| end | number | Yes| End time.| | end | number | Yes| End time.|
| callback | AsyncCallback&lt;[BundleActiveInfoResponse](#bundleactiveinforesponse)&gt; | Yes| Callback used to return the result.| | callback | AsyncCallback&lt;[BundleActiveInfoResponse](#bundleactiveinforesponse)&gt; | Yes| Callback used to return the result.|
**Example** **Example**
...@@ -143,24 +154,27 @@ Queries the application usage duration statistics based on the specified start t ...@@ -143,24 +154,27 @@ Queries the application usage duration statistics based on the specified start t
``` ```
## bundleState.queryBundleStateInfos ## bundleState.queryBundleStateInfos
queryBundleStateInfos(begin: number, end: number): Promise&lt;BundleActiveInfoResponse&gt;<br>
Queries the application usage duration statistics based on the specified start time and end time. This API uses a promise to return the result.<br> queryBundleStateInfos(begin: number, end: number): Promise&lt;BundleActiveInfoResponse&gt;
Queries the application usage duration statistics based on the specified start time and end time. This API uses a promise to return the result.
**Required permissions**: ohos.permission.BUNDLE_ACTIVE_INFO **Required permissions**: ohos.permission.BUNDLE_ACTIVE_INFO
**System capability**: SystemCapability.ResourceSchedule.UsageStatistics.App **System capability**: SystemCapability.ResourceSchedule.UsageStatistics.App
**Parameters** **Parameters**
| Name| Type| Mandatory| Description| | Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
| begin | number | Yes| Start time.| | begin | number | Yes| Start time.|
| end | number | Yes| End time.| | end | number | Yes| End time.|
**Return value** **Return value**
| Type| Description| | Type| Description|
| -------- | -------- | | -------- | -------- |
| Promise&lt;[BundleActiveInfoResponse](#bundleactiveinforesponse)&gt; | Promise used to return the result.| | Promise&lt;[BundleActiveInfoResponse](#bundleactiveinforesponse)&gt; | Promise used to return the result.|
**Example** **Example**
...@@ -179,20 +193,23 @@ Queries the application usage duration statistics based on the specified start t ...@@ -179,20 +193,23 @@ Queries the application usage duration statistics based on the specified start t
``` ```
## bundleState.queryBundleStateInfoByInterval ## bundleState.queryBundleStateInfoByInterval
queryBundleStateInfoByInterval(byInterval: IntervalType, begin: number, end: number, callback: AsyncCallback&lt;Array&lt;BundleStateInfo&gt;&gt;): void<br>
Queries the application usage duration statistics in the specified time frame at the specified interval (daily, weekly, monthly, or annually). This API uses an asynchronous callback to return the result.<br> queryBundleStateInfoByInterval(byInterval: IntervalType, begin: number, end: number, callback: AsyncCallback&lt;Array&lt;BundleStateInfo&gt;&gt;): void
Queries the application usage duration statistics in the specified time frame at the specified interval (daily, weekly, monthly, or annually). This API uses an asynchronous callback to return the result.
**Required permissions**: ohos.permission.BUNDLE_ACTIVE_INFO **Required permissions**: ohos.permission.BUNDLE_ACTIVE_INFO
**System capability**: SystemCapability.ResourceSchedule.UsageStatistics.App **System capability**: SystemCapability.ResourceSchedule.UsageStatistics.App
**Parameters** **Parameters**
| Name| Type| Mandatory| Description| | Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
| byInterval | [IntervalType](#intervaltype) | Yes| Interval type.| | byInterval | [IntervalType](#intervaltype) | Yes| Interval type.|
| begin | number | Yes| Start time.| | begin | number | Yes| Start time.|
| end | number | Yes| End time.| | end | number | Yes| End time.|
| callback | AsyncCallback&lt;Array&lt;[BundleStateInfo](#bundlestateinfo)&gt;&gt; | Yes| Callback used to return the result.| | callback | AsyncCallback&lt;Array&lt;[BundleStateInfo](#bundlestateinfo)&gt;&gt; | Yes| Callback used to return the result.|
**Example** **Example**
...@@ -211,25 +228,28 @@ Queries the application usage duration statistics in the specified time frame at ...@@ -211,25 +228,28 @@ Queries the application usage duration statistics in the specified time frame at
``` ```
## bundleState.queryBundleStateInfoByInterval ## bundleState.queryBundleStateInfoByInterval
queryBundleStateInfoByInterval(byInterval: IntervalType, begin: number, end: number): Promise&lt;Array&lt;BundleStateInfo&gt;&gt;<br>
Queries the application usage duration statistics in the specified time frame at the specified interval (daily, weekly, monthly, or annually). This API uses a promise to return the result.<br> queryBundleStateInfoByInterval(byInterval: IntervalType, begin: number, end: number): Promise&lt;Array&lt;BundleStateInfo&gt;&gt;
Queries the application usage duration statistics in the specified time frame at the specified interval (daily, weekly, monthly, or annually). This API uses a promise to return the result.
**Required permissions**: ohos.permission.BUNDLE_ACTIVE_INFO **Required permissions**: ohos.permission.BUNDLE_ACTIVE_INFO
**System capability**: SystemCapability.ResourceSchedule.UsageStatistics.App **System capability**: SystemCapability.ResourceSchedule.UsageStatistics.App
**Parameters** **Parameters**
| Name| Type| Mandatory| Description| | Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
| byInterval | [IntervalType](#intervaltype) | Yes| Interval type.| | byInterval | [IntervalType](#intervaltype) | Yes| Interval type.|
| begin | number | Yes| Start time.| | begin | number | Yes| Start time.|
| end | number | Yes| End time.| | end | number | Yes| End time.|
**Return value** **Return value**
| Type| Description| | Type| Description|
| -------- | -------- | | -------- | -------- |
| Promise&lt;Array&lt;[BundleStateInfo](#bundlestateinfo)&gt;&gt; | Promise used to return the result.| | Promise&lt;Array&lt;[BundleStateInfo](#bundlestateinfo)&gt;&gt; | Promise used to return the result.|
**Example** **Example**
...@@ -246,19 +266,22 @@ Queries the application usage duration statistics in the specified time frame at ...@@ -246,19 +266,22 @@ Queries the application usage duration statistics in the specified time frame at
``` ```
## bundleState.queryBundleActiveStates ## bundleState.queryBundleActiveStates
queryBundleActiveStates(begin: number, end: number, callback: AsyncCallback&lt;Array&lt;BundleActiveState&gt;&gt;): void<br>
Queries events of all applications based on the specified start time and end time. This API uses an asynchronous callback to return the result.<br> queryBundleActiveStates(begin: number, end: number, callback: AsyncCallback&lt;Array&lt;BundleActiveState&gt;&gt;): void
Queries events of all applications based on the specified start time and end time. This API uses an asynchronous callback to return the result.
**Required permissions**: ohos.permission.BUNDLE_ACTIVE_INFO **Required permissions**: ohos.permission.BUNDLE_ACTIVE_INFO
**System capability**: SystemCapability.ResourceSchedule.UsageStatistics.App **System capability**: SystemCapability.ResourceSchedule.UsageStatistics.App
**Parameters** **Parameters**
| Name| Type| Mandatory| Description| | Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
| begin | number | Yes| Start time.| | begin | number | Yes| Start time.|
| end | number | Yes| End time.| | end | number | Yes| End time.|
| callback | AsyncCallback&lt;Array&lt;[BundleActiveState](#bundleactivestate)&gt;&gt; | Yes| Callback used to return the result.| | callback | AsyncCallback&lt;Array&lt;[BundleActiveState](#bundleactivestate)&gt;&gt; | Yes| Callback used to return the result.|
**Example** **Example**
...@@ -277,24 +300,27 @@ Queries events of all applications based on the specified start time and end tim ...@@ -277,24 +300,27 @@ Queries events of all applications based on the specified start time and end tim
``` ```
## bundleState.queryBundleActiveStates ## bundleState.queryBundleActiveStates
queryBundleActiveStates(begin: number, end: number): Promise&lt;Array&lt;BundleActiveState&gt;&gt;<br>
Queries events of all applications based on the specified start time and end time. This API uses a promise to return the result.<br> queryBundleActiveStates(begin: number, end: number): Promise&lt;Array&lt;BundleActiveState&gt;&gt;
Queries events of all applications based on the specified start time and end time. This API uses a promise to return the result.
**Required permissions**: ohos.permission.BUNDLE_ACTIVE_INFO **Required permissions**: ohos.permission.BUNDLE_ACTIVE_INFO
**System capability**: SystemCapability.ResourceSchedule.UsageStatistics.App **System capability**: SystemCapability.ResourceSchedule.UsageStatistics.App
**Parameters** **Parameters**
| Name| Type| Mandatory| Description| | Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
| begin | number | Yes| Start time.| | begin | number | Yes| Start time.|
| end | number | Yes| End time.| | end | number | Yes| End time.|
**Return value** **Return value**
| Type| Description| | Type| Description|
| -------- | -------- | | -------- | -------- |
| Promise&lt;Array&lt;[BundleActiveState](#bundleactivestate)&gt;&gt; | Promise used to return the result.| | Promise&lt;Array&lt;[BundleActiveState](#bundleactivestate)&gt;&gt; | Promise used to return the result.|
**Example** **Example**
...@@ -311,18 +337,20 @@ Queries events of all applications based on the specified start time and end tim ...@@ -311,18 +337,20 @@ Queries events of all applications based on the specified start time and end tim
``` ```
## bundleState.queryCurrentBundleActiveStates ## bundleState.queryCurrentBundleActiveStates
queryCurrentBundleActiveStates(begin: number, end: number, callback: AsyncCallback&lt;Array&lt;BundleActiveState&gt;&gt;): void<br>
queryCurrentBundleActiveStates(begin: number, end: number, callback: AsyncCallback&lt;Array&lt;BundleActiveState&gt;&gt;): void
Queries events of this application based on the specified start time and end time. This API uses an asynchronous callback to return the result. Queries events of this application based on the specified start time and end time. This API uses an asynchronous callback to return the result.
**System capability**: SystemCapability.ResourceSchedule.UsageStatistics.App **System capability**: SystemCapability.ResourceSchedule.UsageStatistics.App
**Parameters** **Parameters**
| Name| Type| Mandatory| Description| | Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
| begin | number | Yes| Start time.| | begin | number | Yes| Start time.|
| end | number | Yes| End time.| | end | number | Yes| End time.|
| callback | AsyncCallback&lt;Array&lt;[BundleActiveState](#bundleactivestate)&gt;&gt; | Yes| Callback used to return the result.| | callback | AsyncCallback&lt;Array&lt;[BundleActiveState](#bundleactivestate)&gt;&gt; | Yes| Callback used to return the result.|
**Example** **Example**
...@@ -341,23 +369,25 @@ Queries events of this application based on the specified start time and end tim ...@@ -341,23 +369,25 @@ Queries events of this application based on the specified start time and end tim
``` ```
## bundleState.queryCurrentBundleActiveStates ## bundleState.queryCurrentBundleActiveStates
queryCurrentBundleActiveStates(begin: number, end: number): Promise&lt;Array&lt;BundleActiveState&gt;&gt;<br>
queryCurrentBundleActiveStates(begin: number, end: number): Promise&lt;Array&lt;BundleActiveState&gt;&gt;
Queries events of this application based on the specified start time and end time. This API uses a promise to return the result. Queries events of this application based on the specified start time and end time. This API uses a promise to return the result.
**System capability**: SystemCapability.ResourceSchedule.UsageStatistics.App **System capability**: SystemCapability.ResourceSchedule.UsageStatistics.App
**Parameters** **Parameters**
| Name| Type| Mandatory| Description| | Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
| begin | number | Yes| Start time.| | begin | number | Yes| Start time.|
| end | number | Yes| End time.| | end | number | Yes| End time.|
**Return value** **Return value**
| Type| Description| | Type| Description|
| -------- | -------- | | -------- | -------- |
| Promise&lt;Array&lt;[BundleActiveState](#bundleactivestate)&gt;&gt; | Promise used to return the result.| | Promise&lt;Array&lt;[BundleActiveState](#bundleactivestate)&gt;&gt; | Promise used to return the result.|
**Example** **Example**
...@@ -377,6 +407,7 @@ Queries events of this application based on the specified start time and end tim ...@@ -377,6 +407,7 @@ Queries events of this application based on the specified start time and end tim
Provides the usage duration information of an application. Provides the usage duration information of an application.
### Attributes ### Attributes
**System capability**: SystemCapability.ResourceSchedule.UsageStatistics.App **System capability**: SystemCapability.ResourceSchedule.UsageStatistics.App
| Name| Type| Mandatory| Description| | Name| Type| Mandatory| Description|
...@@ -390,23 +421,26 @@ Provides the usage duration information of an application. ...@@ -390,23 +421,26 @@ Provides the usage duration information of an application.
| fgAbilityAccessTotalTime | number | No| Total time that the application accesses the foreground.<br>This API is defined but not implemented in OpenHarmony 3.1 Release. It will be available for use in OpenHarmony 3.1 MR.| | fgAbilityAccessTotalTime | number | No| Total time that the application accesses the foreground.<br>This API is defined but not implemented in OpenHarmony 3.1 Release. It will be available for use in OpenHarmony 3.1 MR.|
| fgAbilityPrevAccessTime | number | No| Last time when the application accessed the foreground.<br>This API is defined but not implemented in OpenHarmony 3.1 Release. It will be available for use in OpenHarmony 3.1 MR.| | fgAbilityPrevAccessTime | number | No| Last time when the application accessed the foreground.<br>This API is defined but not implemented in OpenHarmony 3.1 Release. It will be available for use in OpenHarmony 3.1 MR.|
| infosBeginTime | number | No| Time logged in the first application usage record in the **BundleActiveInfo** object.<br>This API is defined but not implemented in OpenHarmony 3.1 Release. It will be available for use in OpenHarmony 3.1 MR.| | infosBeginTime | number | No| Time logged in the first application usage record in the **BundleActiveInfo** object.<br>This API is defined but not implemented in OpenHarmony 3.1 Release. It will be available for use in OpenHarmony 3.1 MR.|
| infosBeginTime | number | No| Time logged in the last application usage record in the **BundleActiveInfo** object.<br>This API is defined but not implemented in OpenHarmony 3.1 Release. It will be available for use in OpenHarmony 3.1 MR.| | infosEndTime | number | No| Time logged in the last application usage record in the **BundleActiveInfo** object.<br>This API is defined but not implemented in OpenHarmony 3.1 Release. It will be available for use in OpenHarmony 3.1 MR.|
### merge ### merge
merge(toMerge: BundleStateInfo): void merge(toMerge: BundleStateInfo): void
Merges the application usage information that has the same bundle name.<br> Merges the application usage information that has the same bundle name.
This API is defined but not implemented in OpenHarmony 3.1 Release. It will be available for use in OpenHarmony 3.1 MR. This API is defined but not implemented in OpenHarmony 3.1 Release. It will be available for use in OpenHarmony 3.1 MR.
**System capability**: SystemCapability.ResourceSchedule.UsageStatistics.App **System capability**: SystemCapability.ResourceSchedule.UsageStatistics.App
**Parameters** **Parameters**
| Name| Type| Mandatory| Description| | Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
| toMerge | [BundleStateInfo](#bundlestateinfo) | Yes| Application usage information to merge.| | toMerge | [BundleStateInfo](#bundlestateinfo) | Yes| Application usage information to merge.|
## BundleActiveState ## BundleActiveState
Provides information about an application event. Provides information about an application event.
**System capability**: SystemCapability.ResourceSchedule.UsageStatistics.App **System capability**: SystemCapability.ResourceSchedule.UsageStatistics.App
...@@ -421,15 +455,17 @@ Provides information about an application event. ...@@ -421,15 +455,17 @@ Provides information about an application event.
| nameOfClass | string | No| Class name.<br>This API is defined but not implemented in OpenHarmony 3.1 Release. It will be available for use in OpenHarmony 3.1 MR.| | nameOfClass | string | No| Class name.<br>This API is defined but not implemented in OpenHarmony 3.1 Release. It will be available for use in OpenHarmony 3.1 MR.|
## BundleActiveInfoResponse ## BundleActiveInfoResponse
Provides the usage duration information of applications. Provides the usage duration information of applications.
**System capability**: SystemCapability.ResourceSchedule.UsageStatistics.App **System capability**: SystemCapability.ResourceSchedule.UsageStatistics.App
| Name| Type| Mandatory| Description| | Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
| [key: string]: BundleStateInfo | [BundleStateInfo](#bundlestateinfo) | Yes| Usage duration information by application.| | [key: string]: BundleStateInfo | [key: string]: [BundleStateInfo](#bundlestateinfo) | Yes| Usage duration information by application.|
## IntervalType ## IntervalType
Enumerates the interval types for querying the application usage duration. Enumerates the interval types for querying the application usage duration.
**System capability**: SystemCapability.ResourceSchedule.UsageStatistics.App **System capability**: SystemCapability.ResourceSchedule.UsageStatistics.App
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册