js-apis-deviceUsageStatistics.md 53.4 KB
Newer Older
W
wyuanchao 已提交
1 2
# 设备使用信息统计

N
nobbo 已提交
3 4 5
本模块提供设备使用信息统计能力。

设备使用信息统计,系统应用可调用接口实现如下功能:
N
nobbo 已提交
6 7 8

- 查询设备上各应用在不同时间段的使用时长、各应用的事件(前台、后台、长时任务开始、长时任务结束)信息及各应用的通知次数信息。
- 查询系统事件(休眠、唤醒、解锁、锁屏)统计信息。
Z
zhangxiujian 已提交
9 10 11
- 查询应用分组信息(其他应用和自身应用)。
- 查询应用空闲状态(其他应用和自身应用)。
- 设置应用分组信息(其他应用)。
N
nobbo 已提交
12
- 注册和解除注册应用分组变化监听。
N
nobbo 已提交
13 14

三方应用可调用接口实现如下功能:
N
nobbo 已提交
15 16 17 18

- 查询应用空闲状态(仅限自身应用)。
- 查询应用分组信息(仅限自身应用)。
- 查询应用事件(仅限自身应用)。
N
nobbo 已提交
19

W
wyuanchao 已提交
20 21 22 23 24 25 26
> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
> 本模块首批接口从API version 7开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。


## 导入模块

```
W
wyuanchao 已提交
27
import bundleState from '@ohos.bundleState'
W
wyuanchao 已提交
28 29
```

W
wyuanchao 已提交
30
## bundleState.isIdleState
W
wyuanchao 已提交
31 32 33

isIdleState(bundleName: string, callback: AsyncCallback<boolean>): void

W
wyuanchao 已提交
34
判断指定bundleName的应用当前是否是空闲状态,三方应用只能查询自身的空闲状态,使用Callback形式返回。
W
wyuanchao 已提交
35

W
wyuanchao 已提交
36 37 38
**系统能力**:SystemCapability.ResourceSchedule.UsageStatistics.AppGroup

**参数**
W
wyuanchao 已提交
39

H
HelloCrease 已提交
40 41 42 43
| 参数名        | 类型                           | 必填   | 说明                                       |
| ---------- | ---------------------------- | ---- | ---------------------------------------- |
| bundleName | string                       | 是    | 应用的bundleName。                           |
| callback   | AsyncCallback<boolean> | 是    | 指定的callback回调方法。如果指定的bundleName有效,则返回指定bundleName的应用当前是否是空闲状态;否则返回null。 |
W
wyuanchao 已提交
44

W
wyuanchao 已提交
45
**示例**
W
wyuanchao 已提交
46 47

  ```
W
wyuanchao 已提交
48
    bundleState.isIdleState("com.ohos.camera", (err, res) => {
W
wyuanchao 已提交
49
        if (err) {
W
wyuanchao 已提交
50
            console.log('BUNDLE_ACTIVE isIdleState callback failed, because: ' + err.code);
W
wyuanchao 已提交
51 52
        } else {
            console.log('BUNDLE_ACTIVE isIdleState callback succeeded, result: ' + JSON.stringify(res));
W
wyuanchao 已提交
53 54 55 56
        }
    });
  ```

W
wyuanchao 已提交
57
## bundleState.isIdleState
W
wyuanchao 已提交
58 59 60

isIdleState(bundleName: string): Promise<boolean>

W
wyuanchao 已提交
61
判断指定bundleName的应用当前是否是空闲状态,三方应用只能查询自身的空闲状态,使用Promise形式返回。
W
wyuanchao 已提交
62

W
wyuanchao 已提交
63 64 65
**系统能力**:SystemCapability.ResourceSchedule.UsageStatistics.AppGroup

**参数**
W
wyuanchao 已提交
66

H
HelloCrease 已提交
67 68 69
| 参数名        | 类型     | 必填   | 说明             |
| ---------- | ------ | ---- | -------------- |
| bundleName | string | 是    | 应用的bundleName。 |
W
wyuanchao 已提交
70

W
wyuanchao 已提交
71
**返回值**
W
wyuanchao 已提交
72

H
HelloCrease 已提交
73 74 75
| 类型                     | 说明                                       |
| ---------------------- | ---------------------------------------- |
| Promise<boolean> | 指定的Promise回调方法。如果指定的bundleName有效,则返回指定bundleName的应用当前是否是空闲状态;否则返回null。 |
W
wyuanchao 已提交
76

W
wyuanchao 已提交
77
**示例**
W
wyuanchao 已提交
78

H
houdisheng 已提交
79
  ```js
W
wyuanchao 已提交
80
    bundleState.isIdleState("com.ohos.camera").then( res => {
W
wyuanchao 已提交
81
        console.log('BUNDLE_ACTIVE isIdleState promise succeeded, result: ' + JSON.stringify(res));
W
wyuanchao 已提交
82
    }).catch( err => {
W
wyuanchao 已提交
83
        console.log('BUNDLE_ACTIVE isIdleState promise failed, because: ' + err.code);
W
wyuanchao 已提交
84 85 86
    });
  ```

W
wyuanchao 已提交
87
## bundleState.queryAppUsagePriorityGroup
W
wyuanchao 已提交
88

89
queryAppUsagePriorityGroup(): Promise<number>
Y
yupeng74@huawei.com 已提交
90

Y
yupeng74@huawei.com 已提交
91
查询当前应用的优先级分组。使用Promise形式返回其应用分组。
Y
yupeng74@huawei.com 已提交
92

Y
yupeng74@huawei.com 已提交
93
**系统能力**:SystemCapability.ResourceSchedule.UsageStatistics.AppGroup
Y
yupeng74@huawei.com 已提交
94 95 96

**返回值**

H
HelloCrease 已提交
97 98
| 类型              | 说明                          |
| --------------- | --------------------------- |
99
| Promise<number> | 指定的Promise回调方法。返回查询的应用分组结果。 |
Y
yupeng74@huawei.com 已提交
100 101 102 103 104 105 106 107 108 109 110

**示例**

```javascript
bundleState.queryAppUsagePriorityGroup().then( res => {
    console.log('BUNDLE_ACTIVE QueryPackageGroup promise succeeded. result: ' + JSON.stringify(res));
}).catch( err => {
    console.log('BUNDLE_ACTIVE QueryPackageGroup promise failed. because: ' + err.code);
});
```

Y
yupeng74@huawei.com 已提交
111
## bundleState.queryAppUsagePriorityGroup
Y
yupeng74@huawei.com 已提交
112

113
queryAppUsagePriorityGroup(callback: AsyncCallback<number>): void
Y
yupeng74@huawei.com 已提交
114

Y
yupeng74@huawei.com 已提交
115
查询当前应用的优先级分组。使用callback形式返回其应用分组。
Y
yupeng74@huawei.com 已提交
116

Y
yupeng74@huawei.com 已提交
117
**系统能力**:SystemCapability.ResourceSchedule.UsageStatistics.AppGroup
Y
yupeng74@huawei.com 已提交
118 119 120

**参数**

H
HelloCrease 已提交
121 122
| 参数名      | 类型                    | 必填   | 说明                         |
| -------- | --------------------- | ---- | -------------------------- |
123
| callback | AsyncCallback<number> | 是    | 指定的CallBack回调方法。返回查询的应用分组。 |
Y
yupeng74@huawei.com 已提交
124 125 126 127 128 129 130 131 132 133 134 135 136

**示例**

```javascript
bundleState.queryAppUsagePriorityGroup((err, res) => {
    if(err) {
        console.log('BUNDLE_ACTIVE QueryPackageGroup callback failed. because: ' + err.code);
    } else {
        console.log('BUNDLE_ACTIVE QueryPackageGroup callback succeeded. result: ' + JSON.stringify(res));
    }
});
```

W
wyuanchao 已提交
137
## bundleState.queryBundleStateInfos
W
wyuanchao 已提交
138 139 140 141 142

queryBundleStateInfos(begin: number, end: number, callback: AsyncCallback<BundleActiveInfoResponse>): void

通过指定起始和结束时间查询应用使用时长统计信息,使用Callback形式返回。

W
wyuanchao 已提交
143
**需要权限**:ohos.permission.BUNDLE_ACTIVE_INFO
W
wyuanchao 已提交
144

W
wyuanchao 已提交
145 146
**系统能力**:SystemCapability.ResourceSchedule.UsageStatistics.App

W
wyuanchao 已提交
147 148
**系统API**:此接口为系统接口,三方应用不支持调用。

W
wyuanchao 已提交
149
**参数**
W
wyuanchao 已提交
150

H
HelloCrease 已提交
151 152 153 154 155
| 参数名      | 类型                                       | 必填   | 说明                                      |
| -------- | ---------------------------------------- | ---- | --------------------------------------- |
| begin    | number                                   | 是    | 起始时间。                                   |
| end      | number                                   | 是    | 结束时间。                                   |
| callback | AsyncCallback<[BundleActiveInfoResponse](#bundleactiveinforesponse)> | 是    | 指定的callback回调方法。返回指定起始和结束时间内应用使用时长统计信息。 |
W
wyuanchao 已提交
156

W
wyuanchao 已提交
157
**示例**
W
wyuanchao 已提交
158

H
houdisheng 已提交
159
  ```js
W
wyuanchao 已提交
160
    bundleState.queryBundleStateInfos(0, 20000000000000, (err, res) => {
W
wyuanchao 已提交
161 162 163
        if (err) {
            console.log('BUNDLE_ACTIVE queryBundleStateInfos callback failed, because: ' + err.code);
        } else {
W
wyuanchao 已提交
164 165
            console.log('BUNDLE_ACTIVE queryBundleStateInfos callback success.');
            let i = 1;
W
wyuanchao 已提交
166
            for(let key in res){
W
wyuanchao 已提交
167 168 169
                console.log('BUNDLE_ACTIVE queryBundleStateInfos callback number : ' + i);
                console.log('BUNDLE_ACTIVE queryBundleStateInfos callback result ' + JSON.stringify(res[key]));
                i++;
W
wyuanchao 已提交
170 171 172 173 174
            }
        }
    });
  ```

W
wyuanchao 已提交
175
## bundleState.queryBundleStateInfos
W
wyuanchao 已提交
176 177 178 179 180

queryBundleStateInfos(begin: number, end: number): Promise<BundleActiveInfoResponse>

通过指定起始和结束时间查询应用使用时长统计信息,使用Promise形式返回。

W
wyuanchao 已提交
181
**需要权限**:ohos.permission.BUNDLE_ACTIVE_INFO
W
wyuanchao 已提交
182

W
wyuanchao 已提交
183 184
**系统能力**:SystemCapability.ResourceSchedule.UsageStatistics.App

W
wyuanchao 已提交
185 186
**系统API**:此接口为系统接口,三方应用不支持调用。

W
wyuanchao 已提交
187
**参数**
W
wyuanchao 已提交
188

H
HelloCrease 已提交
189 190 191 192
| 参数名   | 类型     | 必填   | 说明    |
| ----- | ------ | ---- | ----- |
| begin | number | 是    | 起始时间。 |
| end   | number | 是    | 结束时间。 |
W
wyuanchao 已提交
193

W
wyuanchao 已提交
194
**返回值**
W
wyuanchao 已提交
195

H
HelloCrease 已提交
196 197 198
| 类型                                       | 说明                                     |
| ---------------------------------------- | -------------------------------------- |
| Promise<[BundleActiveInfoResponse](#bundleactiveinforesponse)> | 指定的Promise回调方法。返回指定起始和结束时间内应用使用时长统计信息。 |
W
wyuanchao 已提交
199

W
wyuanchao 已提交
200
**示例**
W
wyuanchao 已提交
201

H
houdisheng 已提交
202
  ```js
W
wyuanchao 已提交
203
    bundleState.queryBundleStateInfos(0, 20000000000000).then( res => {
W
wyuanchao 已提交
204 205
        console.log('BUNDLE_ACTIVE queryBundleStateInfos promise success.');
        let i = 1;
W
wyuanchao 已提交
206
        for(let key in res){
W
wyuanchao 已提交
207 208 209
            console.log('BUNDLE_ACTIVE queryBundleStateInfos promise number : ' + i);
            console.log('BUNDLE_ACTIVE queryBundleStateInfos promise result ' + JSON.stringify(res[key]));
            i++;
W
wyuanchao 已提交
210 211
        }
    }).catch( err => {
W
wyuanchao 已提交
212
        console.log('BUNDLE_ACTIVE queryBundleStateInfos promise failed, because: ' + err.code);
W
wyuanchao 已提交
213 214 215
    });
  ```

W
wyuanchao 已提交
216
## bundleState.queryBundleStateInfoByInterval
W
wyuanchao 已提交
217 218 219 220 221

queryBundleStateInfoByInterval(byInterval: IntervalType, begin: number, end: number, callback: AsyncCallback<Array<BundleStateInfo>>): void

通过指定时间段间隔(天、周、月、年)查询应用使用时长统计信息,使用Callback形式返回。

W
wyuanchao 已提交
222
**需要权限**:ohos.permission.BUNDLE_ACTIVE_INFO
W
wyuanchao 已提交
223

W
wyuanchao 已提交
224 225
**系统能力**:SystemCapability.ResourceSchedule.UsageStatistics.App

W
wyuanchao 已提交
226 227
**系统API**:此接口为系统接口,三方应用不支持调用。

W
wyuanchao 已提交
228
**参数**
W
wyuanchao 已提交
229

H
HelloCrease 已提交
230 231 232 233 234 235
| 参数名        | 类型                                       | 必填   | 说明                                       |
| ---------- | ---------------------------------------- | ---- | ---------------------------------------- |
| byInterval | [IntervalType](#intervaltype)            | 是    | 查询类型。                                    |
| begin      | number                                   | 是    | 起始时间。                                    |
| end        | number                                   | 是    | 结束时间。                                    |
| callback   | AsyncCallback<Array<[BundleStateInfo](#bundlestateinfo)>> | 是    | 指定的callback回调方法。返回指定时间段间隔(天、周、月、年)查询应用使用时长统计信息。 |
W
wyuanchao 已提交
236

W
wyuanchao 已提交
237
**示例**
W
wyuanchao 已提交
238

H
houdisheng 已提交
239
  ```js
W
wyuanchao 已提交
240
    bundleState.queryBundleStateInfoByInterval(0, 0, 20000000000000, (err, res) => {
W
wyuanchao 已提交
241 242 243
        if (err) {
            console.log('BUNDLE_ACTIVE queryBundleStateInfoByInterval callback failed, because: ' + err.code);
        } else {
W
wyuanchao 已提交
244
            console.log('BUNDLE_ACTIVE queryBundleStateInfoByInterval callback success.');
W
wyuanchao 已提交
245
            for (let i = 0; i < res.length; i++) {
W
wyuanchao 已提交
246 247
                console.log('BUNDLE_ACTIVE queryBundleStateInfoByInterval callback number : ' + (i + 1));
                console.log('BUNDLE_ACTIVE queryBundleStateInfoByInterval callback result ' + JSON.stringify(res[i]));
W
wyuanchao 已提交
248 249 250 251 252
            }
        }
    });
  ```

W
wyuanchao 已提交
253
## bundleState.queryBundleStateInfoByInterval
W
wyuanchao 已提交
254 255 256 257 258

queryBundleStateInfoByInterval(byInterval: IntervalType, begin: number, end: number): Promise&lt;Array&lt;BundleStateInfo&gt;&gt;

通过指定时间段间隔(天、周、月、年)查询应用使用时长统计信息,使用Promise形式返回。

W
wyuanchao 已提交
259
**需要权限**:ohos.permission.BUNDLE_ACTIVE_INFO
W
wyuanchao 已提交
260

W
wyuanchao 已提交
261 262
**系统能力**:SystemCapability.ResourceSchedule.UsageStatistics.App

W
wyuanchao 已提交
263 264
**系统API**:此接口为系统接口,三方应用不支持调用。

W
wyuanchao 已提交
265
**参数**
W
wyuanchao 已提交
266

H
HelloCrease 已提交
267 268 269 270 271
| 参数名        | 类型                            | 必填   | 说明    |
| ---------- | ----------------------------- | ---- | ----- |
| byInterval | [IntervalType](#intervaltype) | 是    | 查询类型。 |
| begin      | number                        | 是    | 起始时间。 |
| end        | number                        | 是    | 结束时间。 |
W
wyuanchao 已提交
272

W
wyuanchao 已提交
273
**返回值**
W
wyuanchao 已提交
274

H
HelloCrease 已提交
275 276 277
| 类型                                       | 说明                                       |
| ---------------------------------------- | ---------------------------------------- |
| Promise&lt;Array&lt;[BundleStateInfo](#bundlestateinfo)&gt;&gt; | 指定的Promise回调方法。返回指定时间段间隔(天、周、月、年)查询应用使用时长统计信息。 |
W
wyuanchao 已提交
278

W
wyuanchao 已提交
279
**示例**
W
wyuanchao 已提交
280

H
houdisheng 已提交
281
  ```js
W
wyuanchao 已提交
282
    bundleState.queryBundleStateInfoByInterval(0, 0, 20000000000000).then( res => {
W
wyuanchao 已提交
283
        console.log('BUNDLE_ACTIVE queryBundleStateInfoByInterval promise success.');
W
wyuanchao 已提交
284
        for (let i = 0; i < res.length; i++) {
W
wyuanchao 已提交
285 286
            console.log('BUNDLE_ACTIVE queryBundleStateInfoByInterval promise number : ' + (i + 1));
            console.log('BUNDLE_ACTIVE queryBundleStateInfoByInterval promise result ' + JSON.stringify(res[i]));
W
wyuanchao 已提交
287 288
        }
    }).catch( err => {
W
wyuanchao 已提交
289
        console.log('BUNDLE_ACTIVE queryBundleStateInfoByInterval promise failed, because: ' + err.code);
W
wyuanchao 已提交
290 291 292
    });
  ```

W
wyuanchao 已提交
293
## bundleState.queryBundleActiveStates
W
wyuanchao 已提交
294 295 296 297 298

queryBundleActiveStates(begin: number, end: number, callback: AsyncCallback&lt;Array&lt;BundleActiveState&gt;&gt;): void

通过指定起始和结束时间查询所有应用的事件集合,使用Callback形式返回。

W
wyuanchao 已提交
299
**需要权限**:ohos.permission.BUNDLE_ACTIVE_INFO
W
wyuanchao 已提交
300

W
wyuanchao 已提交
301 302
**系统能力**:SystemCapability.ResourceSchedule.UsageStatistics.App

W
wyuanchao 已提交
303 304
**系统API**:此接口为系统接口,三方应用不支持调用。

W
wyuanchao 已提交
305
**参数**
W
wyuanchao 已提交
306

H
HelloCrease 已提交
307 308 309 310 311
| 参数名      | 类型                                       | 必填   | 说明                                      |
| -------- | ---------------------------------------- | ---- | --------------------------------------- |
| begin    | number                                   | 是    | 起始时间。                                   |
| end      | number                                   | 是    | 结束时间。                                   |
| callback | AsyncCallback&lt;Array&lt;[BundleActiveState](#bundleactivestate)&gt;&gt; | 是    | 指定的callback回调方法。返回指定起始和结束时间查询所有应用的事件集合。 |
W
wyuanchao 已提交
312

W
wyuanchao 已提交
313
**示例**
W
wyuanchao 已提交
314

H
houdisheng 已提交
315
  ```js
W
wyuanchao 已提交
316
    bundleState.queryBundleActiveStates(0, 20000000000000, (err, res) => {
W
wyuanchao 已提交
317 318 319
        if (err) {
            console.log('BUNDLE_ACTIVE queryBundleActiveStates callback failed, because: ' + err.code);
        } else {
W
wyuanchao 已提交
320
            console.log('BUNDLE_ACTIVE queryBundleActiveStates callback success.');
W
wyuanchao 已提交
321
            for (let i = 0; i < res.length; i++) {
W
wyuanchao 已提交
322 323
                console.log('BUNDLE_ACTIVE queryBundleActiveStates callback number : ' + (i + 1));
                console.log('BUNDLE_ACTIVE queryBundleActiveStates callback result ' + JSON.stringify(res[i]));
W
wyuanchao 已提交
324 325 326 327 328
            }
        }
    });
  ```

W
wyuanchao 已提交
329
## bundleState.queryBundleActiveStates
W
wyuanchao 已提交
330 331 332 333 334

queryBundleActiveStates(begin: number, end: number): Promise&lt;Array&lt;BundleActiveState&gt;&gt;

通过指定起始和结束时间查询所有应用的事件集合,使用Promise形式返回。

W
wyuanchao 已提交
335
**需要权限**:ohos.permission.BUNDLE_ACTIVE_INFO
W
wyuanchao 已提交
336

W
wyuanchao 已提交
337 338
**系统能力**:SystemCapability.ResourceSchedule.UsageStatistics.App

W
wyuanchao 已提交
339 340
**系统API**:此接口为系统接口,三方应用不支持调用。

W
wyuanchao 已提交
341
**参数**
W
wyuanchao 已提交
342

H
HelloCrease 已提交
343 344 345 346
| 参数名   | 类型     | 必填   | 说明    |
| ----- | ------ | ---- | ----- |
| begin | number | 是    | 起始时间。 |
| end   | number | 是    | 结束时间。 |
W
wyuanchao 已提交
347

W
wyuanchao 已提交
348
**返回值**
W
wyuanchao 已提交
349

H
HelloCrease 已提交
350 351 352
| 类型                                       | 说明                                     |
| ---------------------------------------- | -------------------------------------- |
| Promise&lt;Array&lt;[BundleActiveState](#bundleactivestate)&gt;&gt; | 指定的Promise回调方法。返回指定起始和结束时间查询所有应用的事件集合。 |
W
wyuanchao 已提交
353

W
wyuanchao 已提交
354
**示例**
W
wyuanchao 已提交
355

H
houdisheng 已提交
356
  ```js
W
wyuanchao 已提交
357
    bundleState.queryBundleActiveStates(0, 20000000000000).then( res => {
W
wyuanchao 已提交
358
        console.log('BUNDLE_ACTIVE queryBundleActiveStates promise success.');
W
wyuanchao 已提交
359
        for (let i = 0; i < res.length; i++) {
W
wyuanchao 已提交
360 361
            console.log('BUNDLE_ACTIVE queryBundleActiveStates promise number : ' + (i + 1));
            console.log('BUNDLE_ACTIVE queryBundleActiveStates promise result ' + JSON.stringify(res[i]));
W
wyuanchao 已提交
362 363
        }
    }).catch( err => {
W
wyuanchao 已提交
364
        console.log('BUNDLE_ACTIVE queryBundleActiveStates promise failed, because: ' + err.code);
W
wyuanchao 已提交
365 366 367
    });
  ```

W
wyuanchao 已提交
368
## bundleState.queryCurrentBundleActiveStates
W
wyuanchao 已提交
369 370 371

queryCurrentBundleActiveStates(begin: number, end: number, callback: AsyncCallback&lt;Array&lt;BundleActiveState&gt;&gt;): void

W
wyuanchao 已提交
372 373
通过指定起始和结束时间查询当前应用的事件集合,使用Callback形式返回。

W
wyuanchao 已提交
374 375 376
**系统能力**:SystemCapability.ResourceSchedule.UsageStatistics.App

**参数**
W
wyuanchao 已提交
377

H
HelloCrease 已提交
378 379 380 381 382
| 参数名      | 类型                                       | 必填   | 说明                                      |
| -------- | ---------------------------------------- | ---- | --------------------------------------- |
| begin    | number                                   | 是    | 起始时间。                                   |
| end      | number                                   | 是    | 结束时间。                                   |
| callback | AsyncCallback&lt;Array&lt;[BundleActiveState](#bundleactivestate)&gt;&gt; | 是    | 指定的callback回调方法。返回指定起始和结束时间查询当前应用的事件集合。 |
W
wyuanchao 已提交
383

W
wyuanchao 已提交
384
**示例**
W
wyuanchao 已提交
385

H
houdisheng 已提交
386
  ```js
W
wyuanchao 已提交
387
    bundleState.queryCurrentBundleActiveStates(0, 20000000000000, (err, res) => {
W
wyuanchao 已提交
388 389 390
        if (err) {
            console.log('BUNDLE_ACTIVE queryCurrentBundleActiveStates callback failed, because: ' + err.code);
        } else {
W
wyuanchao 已提交
391
            console.log('BUNDLE_ACTIVE queryCurrentBundleActiveStates callback success.');
W
wyuanchao 已提交
392
            for (let i = 0; i < res.length; i++) {
W
wyuanchao 已提交
393 394
                console.log('BUNDLE_ACTIVE queryCurrentBundleActiveStates callback number : ' + (i + 1));
                console.log('BUNDLE_ACTIVE queryCurrentBundleActiveStates callback result ' + JSON.stringify(res[i]));
W
wyuanchao 已提交
395
            }
W
wyuanchao 已提交
396 397 398 399
        }
    });
  ```

W
wyuanchao 已提交
400
## bundleState.queryCurrentBundleActiveStates
W
wyuanchao 已提交
401 402 403

queryCurrentBundleActiveStates(begin: number, end: number): Promise&lt;Array&lt;BundleActiveState&gt;&gt;

W
wyuanchao 已提交
404 405
通过指定起始和结束时间查询当前应用的事件集合,使用Promise形式返回。

W
wyuanchao 已提交
406 407 408
**系统能力**:SystemCapability.ResourceSchedule.UsageStatistics.App

**参数**
W
wyuanchao 已提交
409

H
HelloCrease 已提交
410 411 412 413
| 参数名   | 类型     | 必填   | 说明    |
| ----- | ------ | ---- | ----- |
| begin | number | 是    | 起始时间。 |
| end   | number | 是    | 结束时间。 |
W
wyuanchao 已提交
414

W
wyuanchao 已提交
415
**返回值**
W
wyuanchao 已提交
416

H
HelloCrease 已提交
417 418 419
| 类型                                       | 说明                                     |
| ---------------------------------------- | -------------------------------------- |
| Promise&lt;Array&lt;[BundleActiveState](#bundleactivestate)&gt;&gt; | 指定的Promise回调方法。返回指定起始和结束时间查询当前应用的事件集合。 |
W
wyuanchao 已提交
420

W
wyuanchao 已提交
421
**示例**
W
wyuanchao 已提交
422

H
houdisheng 已提交
423
  ```js
W
wyuanchao 已提交
424
    bundleState.queryCurrentBundleActiveStates(0, 20000000000000).then( res => {
W
wyuanchao 已提交
425
        console.log('BUNDLE_ACTIVE queryCurrentBundleActiveStates promise success.');
W
wyuanchao 已提交
426
        for (let i = 0; i < res.length; i++) {
W
wyuanchao 已提交
427 428
            console.log('BUNDLE_ACTIVE queryCurrentBundleActiveStates promise number : ' + (i + 1));
            console.log('BUNDLE_ACTIVE queryCurrentBundleActiveStates promise result ' + JSON.stringify(res[i]));
W
wyuanchao 已提交
429 430
        }
    }).catch( err => {
W
wyuanchao 已提交
431
        console.log('BUNDLE_ACTIVE queryCurrentBundleActiveStates promise failed, because: ' + err.code);
W
wyuanchao 已提交
432 433 434
    });
  ```

H
houdisheng 已提交
435
## bundleState.getRecentlyUsedModules<sup>9+</sup>
H
houdisheng 已提交
436

437
getRecentlyUsedModules(maxNum?: number): Promise&lt;Array&lt;BundleActiveModuleInfo&gt;&gt;
H
houdisheng 已提交
438

H
houdisheng 已提交
439
据maxNum,查询FA使用记录,使用Promise形式返回不超过maxNum条FA使用记录,FA使用记录由近及远排序,maxNum最大为1000。
H
houdisheng 已提交
440 441 442 443 444

**需要权限**:ohos.permission.BUNDLE_ACTIVE_INFO

**系统能力**:SystemCapability.ResourceSchedule.UsageStatistics.App

W
wyuanchao 已提交
445 446
**系统API**:此接口为系统接口,三方应用不支持调用。

H
houdisheng 已提交
447 448
**参数**

H
HelloCrease 已提交
449 450 451
| 参数名    | 类型     | 必填   | 说明                                 |
| ------ | ------ | ---- | ---------------------------------- |
| maxNum | number | 否    | 返回条目的最大数量,最多支持1000条。若不填写,则默认为1000。 |
H
houdisheng 已提交
452 453 454

**返回值**

H
HelloCrease 已提交
455 456 457
| 类型                                       | 说明                                 |
| ---------------------------------------- | ---------------------------------- |
| Promise&lt;Array&lt;[BundleActiveModuleInfo](#bundleactivemoduleinfo9)&gt;&gt; | 指定的Promise回调方法。返回不超过maxNum条FA使用记录。 |
H
houdisheng 已提交
458 459 460

**示例**

H
houdisheng 已提交
461
  ```js
H
HelloCrease 已提交
462
    bundleState.getRecentlyUsedModules(1000).then( res => {
H
houdisheng 已提交
463
        console.log('BUNDLE_ACTIVE getRecentlyUsedModules promise succeeded');
H
houdisheng 已提交
464
        for (let i = 0; i < res.length; i++) {
H
houdisheng 已提交
465 466
            console.log('BUNDLE_ACTIVE getRecentlyUsedModules promise number : ' + (i + 1));
            console.log('BUNDLE_ACTIVE getRecentlyUsedModules promise result ' + JSON.stringify(res[i]));
H
houdisheng 已提交
467 468
        }
    }).catch( err=> {
H
houdisheng 已提交
469
        console.log('BUNDLE_ACTIVE getRecentlyUsedModules promise failed, because: ' + err.code);
H
houdisheng 已提交
470
    });
H
houdisheng 已提交
471

H
houdisheng 已提交
472
    // 无maxNum参数调用方式
H
houdisheng 已提交
473 474 475 476 477 478 479 480 481
    bundleState.getRecentlyUsedModules().then( res => {
        console.log('BUNDLE_ACTIVE getRecentlyUsedModules promise succeeded');
        for (let i = 0; i < res.length; i++) {
            console.log('BUNDLE_ACTIVE getRecentlyUsedModules promise number : ' + (i + 1));
            console.log('BUNDLE_ACTIVE getRecentlyUsedModules promise result ' + JSON.stringify(res[i]));
        }
    }).catch( err=> {
        console.log('BUNDLE_ACTIVE getRecentlyUsedModules promise failed, because: ' + err.code);
    });
H
houdisheng 已提交
482 483
  ```

H
houdisheng 已提交
484
## bundleState.getRecentlyUsedModules<sup>9+</sup>
H
houdisheng 已提交
485

486
getRecentlyUsedModules(callback: AsyncCallback&lt;Array&lt;BundleActiveModuleInfo&gt;&gt;): void
H
houdisheng 已提交
487

488
查询FA使用记录。使用CallBack形式返回数量不超过1000条FA使用记录(FA记录按时间由近及远排序)。
H
houdisheng 已提交
489 490 491 492 493

**需要权限**:ohos.permission.BUNDLE_ACTIVE_INFO

**系统能力**:SystemCapability.ResourceSchedule.UsageStatistics.App

W
wyuanchao 已提交
494 495
**系统API**:此接口为系统接口,三方应用不支持调用。

H
houdisheng 已提交
496 497
**参数**

H
HelloCrease 已提交
498 499 500
| 参数名      | 类型                                       | 必填   | 说明                                  |
| -------- | ---------------------------------------- | ---- | ----------------------------------- |
| callback | AsyncCallback&lt;Array&lt;[BundleActiveModuleInfo](#bundleactivemoduleinfo9)&gt;&gt; | 是    | 指定的CallBack回调方法。返回不超过maxNum条FA使用记录。 |
H
houdisheng 已提交
501 502 503

**示例**

H
houdisheng 已提交
504
  ```js
505
    bundleState.getRecentlyUsedModules((err, res) => {
H
houdisheng 已提交
506
        if(err) {
H
houdisheng 已提交
507
            console.log('BUNDLE_ACTIVE getRecentlyUsedModules callback failed, because: ' + err.code);
H
houdisheng 已提交
508
        } else {
H
houdisheng 已提交
509
            console.log('BUNDLE_ACTIVE getRecentlyUsedModules callback succeeded.');
H
houdisheng 已提交
510
                for (let i = 0; i < res.length; i++) {
H
houdisheng 已提交
511 512
                    console.log('BUNDLE_ACTIVE getRecentlyUsedModules callback number : ' + (i + 1));
                    console.log('BUNDLE_ACTIVE getRecentlyUsedModules callback result ' + JSON.stringify(res[i]));
H
houdisheng 已提交
513
                }
514
            }
H
houdisheng 已提交
515
    });
516
  ```
H
houdisheng 已提交
517

518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533
## bundleState.getRecentlyUsedModules<sup>9+</sup>

getRecentlyUsedModules(maxNum: number, callback: AsyncCallback&lt;Array&lt;BundleActiveModuleInfo&gt;&gt;): void

查询FA使用记录。使用CallBack形式返回数量最大不超过maxNum设置的值,FA使用记录由近及远排序,maxNum最大为1000。

**需要权限**:ohos.permission.BUNDLE_ACTIVE_INFO

**系统能力**:SystemCapability.ResourceSchedule.UsageStatistics.App

**系统API**:此接口为系统接口,三方应用不支持调用。

**参数**

| 参数名      | 类型                                       | 必填   | 说明                                  |
| -------- | ---------------------------------------- | ---- | ----------------------------------- |
534
| maxNum   | number                                   | 是    | 返回FA记录的最大数量,maxNum最大为1000。|
535 536 537 538 539 540
| callback | AsyncCallback&lt;Array&lt;[BundleActiveModuleInfo](#bundleactivemoduleinfo9)&gt;&gt; | 是    | 指定的CallBack回调方法。返回不超过maxNum条FA使用记录。 |

**示例**

  ```js
    bundleState.getRecentlyUsedModules(1000,(err, res) => {
H
houdisheng 已提交
541 542 543 544 545 546 547 548
        if(err) {
            console.log('BUNDLE_ACTIVE getRecentlyUsedModules callback failed, because: ' + err.code);
        } else {
            console.log('BUNDLE_ACTIVE getRecentlyUsedModules callback succeeded.');
                for (let i = 0; i < res.length; i++) {
                    console.log('BUNDLE_ACTIVE getRecentlyUsedModules callback number : ' + (i + 1));
                    console.log('BUNDLE_ACTIVE getRecentlyUsedModules callback result ' + JSON.stringify(res[i]));
                }
549
        }
H
houdisheng 已提交
550
    });
H
houdisheng 已提交
551 552
  ```

Y
yupeng74@huawei.com 已提交
553 554
## bundleState.queryAppUsagePriorityGroup<sup>9+</sup>

555
queryAppUsagePriorityGroup(bundleName? : string): Promise&lt;number&gt;
Y
yupeng74@huawei.com 已提交
556

557
可选参数。有参则查询指定bundleName的应用的分组。无参数时查询当前应用的分组。使用Promise形式返回其应用分组结果。
Y
yupeng74@huawei.com 已提交
558 559 560 561 562

**需要权限**:ohos.permission.BUNDLE_ACTIVE_INFO

**系统能力**:SystemCapability.ResourceSchedule.UsageStatistics.AppGroup

W
wyuanchao 已提交
563 564
**系统API**:此接口为系统接口,三方应用不支持调用。

Y
yupeng74@huawei.com 已提交
565 566
**参数**

H
HelloCrease 已提交
567 568
| 参数名        | 类型     | 必填   | 说明                                       |
| ---------- | ------ | ---- | ---------------------------------------- |
569
| bundleName | string | 否    | 可选参数。有参则查询指定bundleName的应用的分组。无参数时查询当前应用的分组。 |
Y
yupeng74@huawei.com 已提交
570 571 572

**返回值**

H
HelloCrease 已提交
573 574
| 类型              | 说明                          |
| --------------- | --------------------------- |
575
| Promise&lt;number&gt; | 指定的Promise回调方法。返回查询的应用分组结果。 |
Y
yupeng74@huawei.com 已提交
576 577 578 579 580

**示例**

```javascript
//有bundleName的promise
Y
yupeng74@huawei.com 已提交
581 582
let bundleName = "com.ohos.camera";
bundleState.queryAppUsagePriorityGroup(bundleName).then( res => {
Y
yupeng74@huawei.com 已提交
583 584 585 586 587 588 589 590 591 592 593 594 595 596
    console.log('BUNDLE_ACTIVE QueryPackageGroup promise succeeded. result: ' + JSON.stringify(res));
}).catch( err => {
    console.log('BUNDLE_ACTIVE QueryPackageGroup promise failed. because: ' + err.code);
});
//无bundleName的promise
bundleState.queryAppUsagePriorityGroup().then( res => {
    console.log('BUNDLE_ACTIVE QueryPackageGroup promise succeeded. result: ' + JSON.stringify(res));
}).catch( err => {
    console.log('BUNDLE_ACTIVE QueryPackageGroup promise failed. because: ' + err.code);
});
```

## bundleState.queryAppUsagePriorityGroup<sup>9+</sup>

597
queryAppUsagePriorityGroup(callback: AsyncCallback&lt;number&gt;): void
Y
yupeng74@huawei.com 已提交
598

599
查询当前应用的分组。使用callback形式返回其应用分组。
Y
yupeng74@huawei.com 已提交
600 601 602 603 604

**需要权限**:ohos.permission.BUNDLE_ACTIVE_INFO

**系统能力**:SystemCapability.ResourceSchedule.UsageStatistics.AppGroup

W
wyuanchao 已提交
605 606
**系统API**:此接口为系统接口,三方应用不支持调用。

Y
yupeng74@huawei.com 已提交
607 608
**参数**

H
HelloCrease 已提交
609 610
| 参数名        | 类型                    | 必填   | 说明                                       |
| ---------- | --------------------- | ---- | ---------------------------------------- |
611
| callback   | AsyncCallback&lt;number&gt; | 是    | 指定的CallBack回调方法。返回当前应用的分组。               |
Y
yupeng74@huawei.com 已提交
612 613 614 615

**示例**

```javascript
616
bundleState.queryAppUsagePriorityGroup((err, res) => {
Y
yupeng74@huawei.com 已提交
617 618 619 620 621 622
    if(err) {
        console.log('BUNDLE_ACTIVE QueryPackageGroup callback failed. because: ' + err.code);
    } else {
        console.log('BUNDLE_ACTIVE QueryPackageGroup callback succeeded. result: ' + JSON.stringify(res));
    }
});
623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641
```

## bundleState.queryAppUsagePriorityGroup<sup>9+</sup>

queryAppUsagePriorityGroup(bundleName : string, callback: AsyncCallback&lt;number&gt;): void

查询指定bundleName对应应用的分组。使用callback形式返回其应用分组。

**需要权限**:ohos.permission.BUNDLE_ACTIVE_INFO

**系统能力**:SystemCapability.ResourceSchedule.UsageStatistics.AppGroup

**系统API**:此接口为系统接口,三方应用不支持调用。

**参数**

| 参数名        | 类型                    | 必填   | 说明                                       |
| ---------- | --------------------- | ---- | ---------------------------------------- |
| bundleName | string                | 是    | 查询指定bundleName对应应用的分组。 |
642
| callback   | AsyncCallback&lt;number&gt; | 是    | 指定的CallBack回调方法。返回制指定bundleName的应用分组。|
643 644 645 646 647 648

**示例**

```javascript
let bundleName = "com.ohos.camera";
bundleState.queryAppUsagePriorityGroup(bundleName, (err, res) => {
Y
yupeng74@huawei.com 已提交
649 650 651 652 653 654 655 656
    if(err) {
        console.log('BUNDLE_ACTIVE QueryPackageGroup callback failed. because: ' + err.code);
    } else {
        console.log('BUNDLE_ACTIVE QueryPackageGroup callback succeeded. result: ' + JSON.stringify(res));
    }
});
```

Y
yupeng74@huawei.com 已提交
657 658
## bundleState.setBundleGroup<sup>9+</sup>

659
setBundleGroup(bundleName: string, newGroup: GroupType): Promise&lt;void&gt;
Y
yupeng74@huawei.com 已提交
660

661
将指定bundleName的应用的分组设置为newGroup,使用Promise形式返回设置是否成功。
Y
yupeng74@huawei.com 已提交
662 663 664

**需要权限**:ohos.permission.BUNDLE_ACTIVE_INFO

Y
yupeng74@huawei.com 已提交
665
**系统能力**:SystemCapability.ResourceSchedule.UsageStatistics.AppGroup
Y
yupeng74@huawei.com 已提交
666

W
wyuanchao 已提交
667 668
**系统API**:此接口为系统接口,三方应用不支持调用。

Y
yupeng74@huawei.com 已提交
669 670
**参数**

H
HelloCrease 已提交
671 672 673
| 参数名        | 类型        | 必填   | 说明   |
| ---------- | --------- | ---- | ---- |
| bundleName | string    | 是    | 应用名称 |
674
| newGroup   | [GroupType](#grouptype) | 是    | 应用分组 |
Y
yupeng74@huawei.com 已提交
675 676 677

**返回值**

H
HelloCrease 已提交
678 679
| 类型            | 说明                        |
| ------------- | ------------------------- |
680
| Promise&lt;void&gt; | 指定的Promise回调方法。返回本次设置是否成功 |
Y
yupeng74@huawei.com 已提交
681 682 683 684

**示例**

```javascript
685
let bundleName = "com.example.deviceUsageStatistics";
686
let newGroup = bundleState.GroupType.ACTIVE_GROUP_DAILY;
Y
yupeng74@huawei.com 已提交
687

688
bundleState.setBundleGroup(bundleName, newGroup).then( () => {
Y
yupeng74@huawei.com 已提交
689
    console.log('BUNDLE_ACTIVE SetBundleGroup promise succeeded.');
Y
yupeng74@huawei.com 已提交
690 691 692 693 694 695 696
}).catch( err => {
    console.log('BUNDLE_ACTIVE SetBundleGroup promise failed. because: ' + err.code);
});
```

## bundleState.setBundleGroup<sup>9+</sup>

697
setBundleGroup(bundleName: string, newGroup: GroupType, callback: AsyncCallback&lt;void&gt;): void
Y
yupeng74@huawei.com 已提交
698

699
将指定bundleName的应用的分组设置为newGroup,使用CallBack形式返回设置是否成功。
Y
yupeng74@huawei.com 已提交
700 701 702

**需要权限**:ohos.permission.BUNDLE_ACTIVE_INFO

Y
yupeng74@huawei.com 已提交
703
**系统能力**:SystemCapability.ResourceSchedule.UsageStatistics.AppGroup
Y
yupeng74@huawei.com 已提交
704

W
wyuanchao 已提交
705 706
**系统API**:此接口为系统接口,三方应用不支持调用。

Y
yupeng74@huawei.com 已提交
707 708
**参数**

H
HelloCrease 已提交
709 710 711
| 参数名        | 类型                  | 必填   | 说明                        |
| ---------- | ------------------- | ---- | ------------------------- |
| bundleName | string              | 是    | 应用名称                      |
712
| newGroup   | [GroupType](#grouptype)           | 是    | 应用分组                      |
713
| callback   | AsyncCallback&lt;void&gt; | 是    | 指定的CallBack回调方法。返回设置是否成功。 |
Y
yupeng74@huawei.com 已提交
714 715 716 717

**示例**

```javascript
718
let bundleName = "com.example.deviceUsageStatistics";
719
let newGroup = bundleState.GroupType.ACTIVE_GROUP_DAILY;
Y
yupeng74@huawei.com 已提交
720

721
bundleState.setBundleGroup(bundleName, newGroup, (err) => {
Y
yupeng74@huawei.com 已提交
722 723 724
    if(err) {
        console.log('BUNDLE_ACTIVE SetBundleGroup callback failed. because: ' + err.code);
    } else {
Y
yupeng74@huawei.com 已提交
725
        console.log('BUNDLE_ACTIVE SetBundleGroup callback succeeded.');
Y
yupeng74@huawei.com 已提交
726 727 728 729 730 731
    }
});
```

## bundleState.registerGroupCallBack<sup>9+</sup>

732
registerGroupCallBack(groupCallback: Callback&lt;BundleActiveGroupCallbackInfo&gt;): Promise&lt;void&gt;
Y
yupeng74@huawei.com 已提交
733

734
应用注册分组变化监听,待用户名下的某个应用分组发生变化时,通过callback形式向所有已注册分组变化监听的应用返回[BundleActiveGroupCallbackInfo](#bundleactivegroupcallbackinfo9)信息。使用Promise形式返回注册是否成功。
Y
yupeng74@huawei.com 已提交
735 736 737

**需要权限**:ohos.permission.BUNDLE_ACTIVE_INFO

Y
yupeng74@huawei.com 已提交
738
**系统能力**:SystemCapability.ResourceSchedule.UsageStatistics.AppGroup
Y
yupeng74@huawei.com 已提交
739

W
wyuanchao 已提交
740 741
**系统API**:此接口为系统接口,三方应用不支持调用。

Y
yupeng74@huawei.com 已提交
742 743
**参数**

744 745
| 参数名   | 类型                                                         | 必填 | 说明                                       |
| -------- | ------------------------------------------------------------ | ---- | ------------------------------------------ |
746
| callback | Callback&lt;[BundleActiveGroupCallbackInfo](#bundleactivegroupcallbackinfo9)&gt; | 是   | 指定的callback函数,返回应用分组变化的信息 |
Y
yupeng74@huawei.com 已提交
747 748 749

**返回值**

H
HelloCrease 已提交
750 751
| 类型            | 说明                      |
| ------------- | ----------------------- |
752
| Promise&lt;void&gt; | 指定的Promise回调方法。返回注册监听是否成功 |
Y
yupeng74@huawei.com 已提交
753 754 755 756 757 758

**示例**

```javascript
let onBundleGroupChanged = (err,res) =>{
    console.log('BUNDLE_ACTIVE onBundleGroupChanged RegisterGroupCallBack callback success.');
759 760 761 762 763
    console.log('BUNDLE_ACTIVE RegisterGroupCallBack result appUsageOldGroup is : ' + res.appUsageOldGroup);
    console.log('BUNDLE_ACTIVE RegisterGroupCallBack result appUsageNewGroup is : ' + res.appUsageNewGroup);
    console.log('BUNDLE_ACTIVE RegisterGroupCallBack result changeReason is : ' + res.changeReason);
    console.log('BUNDLE_ACTIVE RegisterGroupCallBack result userId is : ' + res.userId);
    console.log('BUNDLE_ACTIVE RegisterGroupCallBack result bundleName is : ' + res.bundleName);
Y
yupeng74@huawei.com 已提交
764
};
Y
yupeng74@huawei.com 已提交
765 766
bundleState.registerGroupCallBack(onBundleGroupChanged).then( () => {
    console.log('BUNDLE_ACTIVE RegisterGroupCallBack promise succeeded.');
Y
yupeng74@huawei.com 已提交
767 768 769 770 771 772 773
}).catch( err => {
    console.log('BUNDLE_ACTIVE RegisterGroupCallBack promise failed. because: ' + err.code);
});
```

## bundleState.registerGroupCallBack<sup>9+</sup>

774
registerGroupCallBack(groupCallback: Callback&lt;BundleActiveGroupCallbackInfo&gt;, callback: AsyncCallback&lt;void&gt;): void
Y
yupeng74@huawei.com 已提交
775

776
应用注册分组变化监听,待用户名下的某个应用分组发生变化时,通过callback形式向所有已注册分组变化监听的应用返回[BundleActiveGroupCallbackInfo](#bundleactivegroupcallbackinfo9)信息。使用异步callback形式返回注册监听是否成功。
Y
yupeng74@huawei.com 已提交
777 778 779

**需要权限**:ohos.permission.BUNDLE_ACTIVE_INFO

Y
yupeng74@huawei.com 已提交
780
**系统能力**:SystemCapability.ResourceSchedule.UsageStatistics.AppGroup
Y
yupeng74@huawei.com 已提交
781

W
wyuanchao 已提交
782 783
**系统API**:此接口为系统接口,三方应用不支持调用。

Y
yupeng74@huawei.com 已提交
784 785
**参数**

786 787
| 参数名   | 类型                                                         | 必填 | 说明                                         |
| -------- | ------------------------------------------------------------ | ---- | -------------------------------------------- |
788
| callback | Callback&lt;[BundleActiveGroupCallbackInfo](#bundleactivegroupcallbackinfo9)&gt; | 是   | 指定的callback函数,返回应用分组变化的信息   |
789
| callback | AsyncCallback&lt;void&gt;                                    | 是   | 指定的异步callback函数,返回注册监听是否成功 |
Y
yupeng74@huawei.com 已提交
790 791 792 793 794 795

**示例**

```javascript
let onBundleGroupChanged = (err,res) =>{
    console.log('BUNDLE_ACTIVE onBundleGroupChanged RegisterGroupCallBack callback success.');
796 797 798 799 800
    console.log('BUNDLE_ACTIVE RegisterGroupCallBack result appUsageOldGroup is : ' + res.appUsageOldGroup);
    console.log('BUNDLE_ACTIVE RegisterGroupCallBack result appUsageNewGroup is : ' + res.appUsageNewGroup);
    console.log('BUNDLE_ACTIVE RegisterGroupCallBack result changeReason is : ' + res.changeReason);
    console.log('BUNDLE_ACTIVE RegisterGroupCallBack result userId is : ' + res.userId);
    console.log('BUNDLE_ACTIVE RegisterGroupCallBack result bundleName is : ' + res.bundleName);
Y
yupeng74@huawei.com 已提交
801
};
Y
yupeng74@huawei.com 已提交
802
bundleState.registerGroupCallBack(onBundleGroupChanged, (err)=>{
Y
yupeng74@huawei.com 已提交
803 804 805 806 807 808 809 810 811 812
    if(err) {
        console.log('BUNDLE_ACTIVE RegisterGroupCallBack callback failed, because: ' + err.code);
    } else {
        console.log('BUNDLE_ACTIVE RegisterGroupCallBack callback success.');
    }
});
```

## bundleState.unRegisterGroupCallBack<sup>9+</sup>

813
unRegisterGroupCallBack(): Promise&lt;void&gt;
Y
yupeng74@huawei.com 已提交
814

815
应用解除分组变化监听,解除通过调用注册接口生成的监听。使用Promise形式返回解除监听是否成功。
Y
yupeng74@huawei.com 已提交
816 817 818

**需要权限**:ohos.permission.BUNDLE_ACTIVE_INFO

Y
yupeng74@huawei.com 已提交
819
**系统能力**:SystemCapability.ResourceSchedule.UsageStatistics.AppGroup
Y
yupeng74@huawei.com 已提交
820

W
wyuanchao 已提交
821 822
**系统API**:此接口为系统接口,三方应用不支持调用。

Y
yupeng74@huawei.com 已提交
823 824 825 826
**参数**:无参数

**返回值**

H
HelloCrease 已提交
827 828
| 类型            | 说明                       |
| ------------- | ------------------------ |
829
| Promise&lt;void&gt; | 指定的Promise回调方法。返回解除监听是否成功 |
Y
yupeng74@huawei.com 已提交
830 831 832 833

**示例**

```javascript
Y
yupeng74@huawei.com 已提交
834 835
bundleState.unRegisterGroupCallBack().then( () => {
    console.log('BUNDLE_ACTIVE UnRegisterGroupCallBack promise succeeded.');
Y
yupeng74@huawei.com 已提交
836 837 838 839 840 841 842
}).catch( err => {
    console.log('BUNDLE_ACTIVE UnRegisterGroupCallBack promise failed. because: ' + err.code);
});
```

## bundleState.unRegisterGroupCallBack<sup>9+</sup>

843
unRegisterGroupCallBack(callback: AsyncCallback&lt;void&gt;): void;
Y
yupeng74@huawei.com 已提交
844

845
应用解除分组变化监听,解除通过调用注册接口生成的监听。使用异步callback形式返回解除监听是否成功。
Y
yupeng74@huawei.com 已提交
846 847 848

**需要权限**:ohos.permission.BUNDLE_ACTIVE_INFO

Y
yupeng74@huawei.com 已提交
849
**系统能力**:SystemCapability.ResourceSchedule.UsageStatistics.AppGroup
Y
yupeng74@huawei.com 已提交
850

W
wyuanchao 已提交
851 852
**系统API**:此接口为系统接口,三方应用不支持调用。

Y
yupeng74@huawei.com 已提交
853 854
**参数**

H
HelloCrease 已提交
855 856
| 参数名      | 类型                  | 必填   | 说明             |
| -------- | ------------------- | ---- | -------------- |
857
| callback | AsyncCallback&lt;void&gt; | 是    | 解除监听是否成功的异步回调函数 |
Y
yupeng74@huawei.com 已提交
858 859 860 861

**示例**

```javascript
Y
yupeng74@huawei.com 已提交
862
bundleState.unRegisterGroupCallBack((err)=>{
Y
yupeng74@huawei.com 已提交
863 864 865 866 867 868 869 870
    if(err) {
        console.log('BUNDLE_ACTIVE UnRegisterGroupCallBack callback failed, because: ' + err.code);
    } else {
        console.log('BUNDLE_ACTIVE UnRegisterGroupCallBack callback success.');
    }
});
```

W
wyuanchao 已提交
871 872 873 874 875 876 877 878 879 880
## bundleState.queryBundleActiveEventStates<sup>9+</sup>

queryBundleActiveEventStates(begin: number, end: number): Promise&lt;Array&lt;BundleActiveEventState&gt;&gt;

通过指定起始和结束时间查询系统事件(休眠、唤醒、解锁、锁屏)统计信息,使用Promise形式返回。

**需要权限**:ohos.permission.BUNDLE_ACTIVE_INFO

**系统能力**:SystemCapability.ResourceSchedule.UsageStatistics.App

W
wyuanchao 已提交
881 882
**系统API**:此接口为系统接口,三方应用不支持调用。

W
wyuanchao 已提交
883 884
**参数**

H
HelloCrease 已提交
885 886 887 888
| 参数名   | 类型     | 必填   | 说明    |
| ----- | ------ | ---- | ----- |
| begin | number | 是    | 起始时间。 |
| end   | number | 是    | 结束时间。 |
W
wyuanchao 已提交
889 890 891

**返回值**

H
HelloCrease 已提交
892 893 894
| 类型                                       | 说明                                       |
| ---------------------------------------- | ---------------------------------------- |
| Promise&lt;Array&lt;[BundleActiveEventState](#bundleactiveeventstate9)&gt;&gt; | 指定的Promise回调方法。返回指定起始和结束时间查询系统事件(休眠、唤醒、解锁、锁屏)统计信息。 |
W
wyuanchao 已提交
895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916

**示例**

  ```js
    bundleState.queryBundleActiveEventStates(0, 20000000000000).then( res => {
        console.log('BUNDLE_ACTIVE queryBundleActiveEventStates promise success.');
        console.log('BUNDLE_ACTIVE queryBundleActiveEventStates promise result ' + JSON.stringify(res));
    }).catch( err=> {
        console.log('BUNDLE_ACTIVE queryBundleActiveEventStates promise failed, because: ' + err.code);
    });
  ```

## bundleState.queryBundleActiveEventStates<sup>9+</sup>

queryBundleActiveEventStates(begin: number, end: number, callback: AsyncCallback&lt;Array&lt;BundleActiveEventState&gt;&gt;): void

通过指定起始和结束时间查询系统事件(休眠、唤醒、解锁、锁屏)统计信息,使用Callback形式返回。

**需要权限**:ohos.permission.BUNDLE_ACTIVE_INFO

**系统能力**:SystemCapability.ResourceSchedule.UsageStatistics.App

W
wyuanchao 已提交
917 918
**系统API**:此接口为系统接口,三方应用不支持调用。

W
wyuanchao 已提交
919 920
**参数**

H
HelloCrease 已提交
921 922 923 924 925
| 参数名      | 类型                                       | 必填   | 说明                                       |
| -------- | ---------------------------------------- | ---- | ---------------------------------------- |
| begin    | number                                   | 是    | 起始时间。                                    |
| end      | number                                   | 是    | 结束时间。                                    |
| callback | AsyncCallback&lt;Array&lt;[BundleActiveEventState](#bundleactiveeventstate9)&gt;&gt; | 是    | 指定的callback回调方法。返回指定起始和结束时间查询系统事件(休眠、唤醒、解锁、锁屏)统计信息。 |
W
wyuanchao 已提交
926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949

**示例**

  ```js
    bundleState.queryBundleActiveEventStates(0, 20000000000000, (err, res) => {
        if(err) {
            console.log('BUNDLE_ACTIVE queryBundleActiveEventStates callback failed, because: ' + err.code);
        } else {
            console.log('BUNDLE_ACTIVE queryBundleActiveEventStates callback success.');
            console.log('BUNDLE_ACTIVE queryBundleActiveEventStates callback result ' + JSON.stringify(res));
        }
    });
  ```

## bundleState.queryAppNotificationNumber<sup>9+</sup>

queryAppNotificationNumber(begin: number, end: number): Promise&lt;Array&lt;BundleActiveEventState&gt;&gt;

通过指定起始和结束时间查询所有应用的通知次数信息,使用Promise形式返回。

**需要权限**:ohos.permission.BUNDLE_ACTIVE_INFO

**系统能力**:SystemCapability.ResourceSchedule.UsageStatistics.App

W
wyuanchao 已提交
950 951
**系统API**:此接口为系统接口,三方应用不支持调用。

W
wyuanchao 已提交
952 953
**参数**

H
HelloCrease 已提交
954 955 956 957
| 参数名   | 类型     | 必填   | 说明    |
| ----- | ------ | ---- | ----- |
| begin | number | 是    | 起始时间。 |
| end   | number | 是    | 结束时间。 |
W
wyuanchao 已提交
958 959 960

**返回值**

H
HelloCrease 已提交
961 962 963
| 类型                                       | 说明                                       |
| ---------------------------------------- | ---------------------------------------- |
| Promise&lt;Array&lt;[BundleActiveEventState](#bundleactiveeventstate9)&gt;&gt; | 指定的Promise回调方法。返回指定起始和结束时间查询所有应用的通知次数信息。 |
W
wyuanchao 已提交
964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985

**示例**

  ```js
    bundleState.queryAppNotificationNumber(0, 20000000000000).then( res => {
        console.log('BUNDLE_ACTIVE queryAppNotificationNumber promise success.');
        console.log('BUNDLE_ACTIVE queryAppNotificationNumber promise result ' + JSON.stringify(res));
    }).catch( err=> {
        console.log('BUNDLE_ACTIVE queryAppNotificationNumber promise failed, because: ' + err.code);
    });
  ```

## bundleState.queryAppNotificationNumber<sup>9+</sup>

queryAppNotificationNumber(begin: number, end: number, callback: AsyncCallback&lt;Array&lt;BundleActiveEventState&gt;&gt;): void

通过指定起始和结束时间查询所有应用的通知次数信息,使用Callback形式返回。

**需要权限**:ohos.permission.BUNDLE_ACTIVE_INFO

**系统能力**:SystemCapability.ResourceSchedule.UsageStatistics.App

W
wyuanchao 已提交
986 987
**系统API**:此接口为系统接口,三方应用不支持调用。

W
wyuanchao 已提交
988 989
**参数**

H
HelloCrease 已提交
990 991 992 993 994
| 参数名      | 类型                                       | 必填   | 说明                                       |
| -------- | ---------------------------------------- | ---- | ---------------------------------------- |
| begin    | number                                   | 是    | 起始时间。                                    |
| end      | number                                   | 是    | 结束时间。                                    |
| callback | AsyncCallback&lt;Array&lt;[BundleActiveEventState](#bundleactiveeventstate9)&gt;&gt; | 是    | 指定的callback回调方法。返回通过指定起始和结束时间查询所有应用的通知次数信息。 |
W
wyuanchao 已提交
995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008

**示例**

  ```js
    bundleState.queryAppNotificationNumber(0, 20000000000000, (err, res) => {
        if(err) {
            console.log('BUNDLE_ACTIVE queryAppNotificationNumberCallBack callback failed, because: ' + err.code);
        } else {
            console.log('BUNDLE_ACTIVE queryAppNotificationNumberCallBack callback success.');
            console.log('BUNDLE_ACTIVE queryAppNotificationNumberCallBack callback result ' + JSON.stringify(res));
        }
    });
  ```

H
houdisheng 已提交
1009 1010
## BundleActiveModuleInfo<sup>9+</sup>
FA的使用信息的属性集合。
H
houdisheng 已提交
1011 1012 1013

**系统能力**:以下各项对应的系统能力均为SystemCapability.ResourceSchedule.UsageStatistics.App

Y
yupeng74@huawei.com 已提交
1014 1015
**系统API**:此接口为系统接口,三方应用不支持调用。

H
HelloCrease 已提交
1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030
| 参数名                  | 类型                                       | 必填   | 说明                            |
| -------------------- | ---------------------------------------- | ---- | ----------------------------- |
| deviceId             | string                                   | 否    | FA所属deviceId。                 |
| bundleName           | string                                   | 是    | FA所属应用包名。                     |
| moduleName           | string                                   | 是    | FA所属module名。                  |
| abilityName          | string                                   | 否    | FA的MainAbility名。              |
| appLabelId           | number                                   | 否    | FA的应用labelId。                 |
| labelId              | number                                   | 否    | FA所属module的labelId。           |
| descriptionId        | number                                   | 否    | FA所属的应用descriptionId。         |
| abilityLableId       | number                                   | 否    | FA的MainAbility labelId。       |
| abilityDescriptionId | number                                   | 否    | FA的MainAbility descriptionId。 |
| abilityIconId        | number                                   | 否    | FA的MainAbility iconId。        |
| launchedCount        | number                                   | 是    | FA的启动次数。                      |
| lastModuleUsedTime   | number                                   | 是    | FA的上一次使用时间。                   |
| formRecords          | Array&lt;[BundleActiveFormInfo](#bundleactiveforminfo9)&gt; | 是    | FA中卡片的使用记录。                   |
H
houdisheng 已提交
1031

H
houdisheng 已提交
1032 1033
## BundleActiveFormInfo<sup>9+</sup>
FA卡片的使用信息的属性集合。
H
houdisheng 已提交
1034 1035 1036

**系统能力**:以下各项对应的系统能力均为SystemCapability.ResourceSchedule.UsageStatistics.App

Y
yupeng74@huawei.com 已提交
1037 1038
**系统API**:此接口为系统接口,三方应用不支持调用。

H
HelloCrease 已提交
1039 1040
| 参数名              | 类型     | 必填   | 说明          |
| ---------------- | ------ | ---- | ----------- |
1041
| formName         | string | 是    | 卡片名称。       |
H
HelloCrease 已提交
1042 1043 1044 1045
| formDimension    | number | 是    | 卡片尺寸。       |
| formId           | number | 是    | 卡片Id。       |
| formLastUsedTime | number | 是    | 卡片的上一次点击时间。 |
| count            | number | 是    | 卡片的点击次数。    |
H
houdisheng 已提交
1046

Y
yupeng74@huawei.com 已提交
1047 1048 1049 1050
## BundleActiveGroupCallbackInfo<sup>9+</sup>

应用分组变化回调返回的属性集合

1051
**系统能力**:以下各项对应的系统能力均为SystemCapability.ResourceSchedule.UsageStatistics.AppGroup
Y
yupeng74@huawei.com 已提交
1052

Y
yupeng74@huawei.com 已提交
1053 1054
**系统API**:此接口为系统接口,三方应用不支持调用。

Z
zhangxiujian 已提交
1055 1056 1057 1058 1059 1060 1061
| 参数名           | 类型   | 必填 | 说明             |
| ---------------- | ------ | ---- | ---------------- |
| appUsageOldGroup | number | 是   | 变化前的应用分组 |
| appUsageNewGroup | number | 是   | 变化后的应用分组 |
| userId           | number | 是   | 用户id           |
| changeReason     | number | 是   | 分组变化原因     |
| bundleName       | string | 是   | 应用名称         |
Y
yupeng74@huawei.com 已提交
1062

W
wyuanchao 已提交
1063
## BundleStateInfo
Y
yupeng74@huawei.com 已提交
1064

W
wyuanchao 已提交
1065
提供应用使用时长的具体信息。
W
wyuanchao 已提交
1066

W
wyuanchao 已提交
1067
### 属性
W
wyuanchao 已提交
1068

1069
**系统能力**:以下各项对应的系统能力均为SystemCapability.ResourceSchedule.UsageStatistics.App
W
wyuanchao 已提交
1070

H
HelloCrease 已提交
1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082
| 参数名                      | 类型     | 必填   | 说明                                       |
| ------------------------ | ------ | ---- | ---------------------------------------- |
| bundleName               | string | 是    | 应用包名。                                    |
| abilityPrevAccessTime    | number | 是    | 应用最后一次使用的时间。                             |
| abilityInFgTotalTime     | number | 是    | 应用在前台使用的总时间。                             |
| id                       | number | 否    | 用户id。<br>本接口在OpenHarmony 3.1 Release版本仅为接口定义,暂不支持使用。接口将在OpenHarmony 3.1 MR版本中提供使用支持。 |
| abilityPrevSeenTime      | number | 否    | 应用最后一次在前台可见的时间。<br>本接口在OpenHarmony 3.1 Release版本仅为接口定义,暂不支持使用。接口将在OpenHarmony 3.1 MR版本中提供使用支持。 |
| abilitySeenTotalTime     | number | 否    | 应用在前台可见的总时间。<br>本接口在OpenHarmony 3.1 Release版本仅为接口定义,暂不支持使用。接口将在OpenHarmony 3.1 MR版本中提供使用支持。 |
| fgAbilityAccessTotalTime | number | 否    | 应用访问前台的总时间。<br>本接口在OpenHarmony 3.1 Release版本仅为接口定义,暂不支持使用。接口将在OpenHarmony 3.1 MR版本中提供使用支持。 |
| fgAbilityPrevAccessTime  | number | 否    | 应用最后一次访问前台的时间。<br>本接口在OpenHarmony 3.1 Release版本仅为接口定义,暂不支持使用。接口将在OpenHarmony 3.1 MR版本中提供使用支持。 |
| infosBeginTime           | number | 否    | BundleActiveInfo对象中第一条应用使用统计的记录时间。<br>本接口在OpenHarmony 3.1 Release版本仅为接口定义,暂不支持使用。接口将在OpenHarmony 3.1 MR版本中提供使用支持。 |
| infosEndTime             | number | 否    | BundleActiveInfo对象中最后一条应用使用统计的记录时间。<br>本接口在OpenHarmony 3.1 Release版本仅为接口定义,暂不支持使用。接口将在OpenHarmony 3.1 MR版本中提供使用支持。 |
W
wyuanchao 已提交
1083

1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099
### merge

merge(toMerge: BundleStateInfo): void

合并相同包名的应用使用信息。

本接口在OpenHarmony 3.1 Release版本仅为接口定义,暂不支持使用。接口将在OpenHarmony 3.1 MR版本中提供使用支持。

**系统能力**:SystemCapability.ResourceSchedule.UsageStatistics.App

**参数**

  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | toMerge | [BundleStateInfo](#bundlestateinfo) | 是 | 相同包名的应用使用统计信息。|

W
wyuanchao 已提交
1100
## BundleActiveState
W
wyuanchao 已提交
1101

W
wyuanchao 已提交
1102
提供应用事件的具体信息。
W
wyuanchao 已提交
1103

W
wyuanchao 已提交
1104
**系统能力**:以下各项对应的系统能力均为SystemCapability.ResourceSchedule.UsageStatistics.App
W
wyuanchao 已提交
1105

H
HelloCrease 已提交
1106 1107 1108 1109 1110 1111 1112 1113
| 参数名                   | 类型     | 必填   | 说明                                       |
| --------------------- | ------ | ---- | ---------------------------------------- |
| bundleName            | string | 是    | 应用包名。                                    |
| stateType             | number | 是    | 应用事件类型。                                  |
| stateOccurredTime     | number | 是    | 应用事件发生的时间戳。                              |
| appUsagePriorityGroup | number | 否    | 应用程序的使用优先级组。<br>本接口在OpenHarmony 3.1 Release版本仅为接口定义,暂不支持使用。接口将在OpenHarmony 3.1 MR版本中提供使用支持。 |
| indexOfLink           | string | 否    | 快捷方式id。<br>本接口在OpenHarmony 3.1 Release版本仅为接口定义,暂不支持使用。接口将在OpenHarmony 3.1 MR版本中提供使用支持。 |
| nameOfClass           | string | 否    | 类名。<br>本接口在OpenHarmony 3.1 Release版本仅为接口定义,暂不支持使用。接口将在OpenHarmony 3.1 MR版本中提供使用支持。 |
W
wyuanchao 已提交
1114

W
wyuanchao 已提交
1115
## BundleActiveInfoResponse
W
wyuanchao 已提交
1116

W
wyuanchao 已提交
1117
提供应用使用时长的具体信息。
W
wyuanchao 已提交
1118

W
wyuanchao 已提交
1119
**系统能力**:SystemCapability.ResourceSchedule.UsageStatistics.App
W
wyuanchao 已提交
1120

H
HelloCrease 已提交
1121 1122 1123
| 参数名                            | 类型                                       | 必填   | 说明             |
| ------------------------------ | ---------------------------------------- | ---- | -------------- |
| [key: string]: BundleStateInfo | [key: string]: [BundleStateInfo](#bundlestateinfo) | 是    | 不同应用的使用时长统计信息。 |
W
wyuanchao 已提交
1124

W
wyuanchao 已提交
1125 1126 1127 1128 1129 1130
## BundleActiveEventState<sup>9+</sup>

提供通知、系统事件的统计信息。

**系统能力**:以下各项对应的系统能力均为SystemCapability.ResourceSchedule.UsageStatistics.App

W
wyuanchao 已提交
1131 1132
**系统API**:此接口为系统接口,三方应用不支持调用。

H
HelloCrease 已提交
1133 1134 1135 1136 1137
| 参数名     | 类型     | 必填   | 说明                |
| ------- | ------ | ---- | ----------------- |
| name    | string | 是    | 通知应用包名或者系统事件名。    |
| eventId | number | 是    | 通知、系统事件类型。        |
| count   | number | 是    | 应用通知次数或者系统事件触发次数。 |
W
wyuanchao 已提交
1138

W
wyuanchao 已提交
1139
## IntervalType
W
wyuanchao 已提交
1140

W
wyuanchao 已提交
1141
提供应用使用时长的查询类型。
W
wyuanchao 已提交
1142

W
wyuanchao 已提交
1143
**系统能力**:以下各项对应的系统能力均为SystemCapability.ResourceSchedule.UsageStatistics.App
W
wyuanchao 已提交
1144

H
HelloCrease 已提交
1145 1146 1147 1148 1149 1150 1151
| 名称           | 默认值  | 说明                                       |
| ------------ | ---- | ---------------------------------------- |
| BY_OPTIMIZED | 0    | 表示系统自行判断最合适的查询类型(天、周、月、年)去查询指定时间段间隔的应用使用时长信息。 |
| BY_DAILY     | 1    | 表示系统按照天去查询指定时间段间隔的应用使用时长信息。              |
| BY_WEEKLY    | 2    | 表示系统按照周去查询指定时间段间隔的应用使用时长信息。              |
| BY_MONTHLY   | 3    | 表示系统按照月去查询指定时间段间隔的应用使用时长信息。              |
| BY_ANNUALLY  | 4    | 表示系统按照年去查询指定时间段间隔的应用使用时长信息。              |
Y
yupeng74@huawei.com 已提交
1152

Z
zhangxiujian 已提交
1153
## GroupType<sup>9+</sup>
Y
yupeng74@huawei.com 已提交
1154 1155 1156

提供应用分组的设置类型。

Y
yupeng74@huawei.com 已提交
1157
**系统能力**:以下各项对应的系统能力均为SystemCapability.ResourceSchedule.UsageStatistics.AppGroup
Y
yupeng74@huawei.com 已提交
1158

Y
yupeng74@huawei.com 已提交
1159 1160
**系统API**:此接口为系统接口,三方应用不支持调用。

H
HelloCrease 已提交
1161 1162
| 名称                 | 默认值  | 说明                |
| ------------------ | ---- | ----------------- |
1163 1164 1165 1166 1167 1168
| ACTIVE_GROUP_ALIVE | 10   | 活跃分组。              |
| ACTIVE_GROUP_DAILY | 20   | 经常使用,但当前并未在活跃态。    |
| ACTIVE_GROUP_FIXED | 30   | 常用分组,定期使用,但不是每天使用。 |
| ACTIVE_GROUP_RARE  | 40   | 极少使用分组,不经常使用。      |
| ACTIVE_GROUP_LIMIT | 50   | 受限使用分组。            |
| ACTIVE_GROUP_NEVER | 60   | 从未使用分组,安装但是从未运行过。  |