js-apis-deviceUsageStatistics.md 51.1 KB
Newer Older
W
wyuanchao 已提交
1 2 3 4 5 6 7 8 9
# 设备使用信息统计

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


## 导入模块

```
W
wyuanchao 已提交
10
import bundleState from '@ohos.bundleState'
W
wyuanchao 已提交
11 12
```

W
wyuanchao 已提交
13
## bundleState.isIdleState
W
wyuanchao 已提交
14 15 16

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

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

W
wyuanchao 已提交
19 20 21
**系统能力**:SystemCapability.ResourceSchedule.UsageStatistics.AppGroup

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

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

W
wyuanchao 已提交
28
**示例**
W
wyuanchao 已提交
29 30

  ```
W
wyuanchao 已提交
31
    bundleState.isIdleState("com.ohos.camera", (err, res) => {
W
wyuanchao 已提交
32
        if (err) {
W
wyuanchao 已提交
33
            console.log('BUNDLE_ACTIVE isIdleState callback failed, because: ' + err.code);
W
wyuanchao 已提交
34 35
        } else {
            console.log('BUNDLE_ACTIVE isIdleState callback succeeded, result: ' + JSON.stringify(res));
W
wyuanchao 已提交
36 37 38 39
        }
    });
  ```

W
wyuanchao 已提交
40
## bundleState.isIdleState
W
wyuanchao 已提交
41 42 43

isIdleState(bundleName: string): Promise<boolean>

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

W
wyuanchao 已提交
46 47 48
**系统能力**:SystemCapability.ResourceSchedule.UsageStatistics.AppGroup

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

H
HelloCrease 已提交
50 51 52
| 参数名        | 类型     | 必填   | 说明             |
| ---------- | ------ | ---- | -------------- |
| bundleName | string | 是    | 应用的bundleName。 |
W
wyuanchao 已提交
53

W
wyuanchao 已提交
54
**返回值**
W
wyuanchao 已提交
55

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

W
wyuanchao 已提交
60
**示例**
W
wyuanchao 已提交
61

H
houdisheng 已提交
62
  ```js
W
wyuanchao 已提交
63
    bundleState.isIdleState("com.ohos.camera").then( res => {
W
wyuanchao 已提交
64
        console.log('BUNDLE_ACTIVE isIdleState promise succeeded, result: ' + JSON.stringify(res));
W
wyuanchao 已提交
65
    }).catch( err => {
W
wyuanchao 已提交
66
        console.log('BUNDLE_ACTIVE isIdleState promise failed, because: ' + err.code);
W
wyuanchao 已提交
67 68 69
    });
  ```

W
wyuanchao 已提交
70
## bundleState.queryAppUsagePriorityGroup
W
wyuanchao 已提交
71

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

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

Y
yupeng74@huawei.com 已提交
76
**系统能力**:SystemCapability.ResourceSchedule.UsageStatistics.AppGroup
Y
yupeng74@huawei.com 已提交
77 78 79

**返回值**

H
HelloCrease 已提交
80 81
| 类型              | 说明                          |
| --------------- | --------------------------- |
82
| Promise<number> | 指定的Promise回调方法。返回查询的应用分组结果。 |
Y
yupeng74@huawei.com 已提交
83 84 85 86 87 88 89 90 91 92 93

**示例**

```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 已提交
94
## bundleState.queryAppUsagePriorityGroup
Y
yupeng74@huawei.com 已提交
95

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

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

Y
yupeng74@huawei.com 已提交
100
**系统能力**:SystemCapability.ResourceSchedule.UsageStatistics.AppGroup
Y
yupeng74@huawei.com 已提交
101 102 103

**参数**

H
HelloCrease 已提交
104 105
| 参数名      | 类型                    | 必填   | 说明                         |
| -------- | --------------------- | ---- | -------------------------- |
106
| callback | AsyncCallback<number> | 是    | 指定的CallBack回调方法。返回查询的应用分组。 |
Y
yupeng74@huawei.com 已提交
107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128

**示例**

```javascript
//有bundleName的callback
bundleState.queryAppUsagePriorityGroup(this.bundleName, (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));
    }
});
//无bundleName的callback
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 已提交
129
## bundleState.queryBundleStateInfos
W
wyuanchao 已提交
130 131 132 133 134

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

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

W
wyuanchao 已提交
135
**需要权限**:ohos.permission.BUNDLE_ACTIVE_INFO
W
wyuanchao 已提交
136

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

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

W
wyuanchao 已提交
141
**参数**
W
wyuanchao 已提交
142

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

W
wyuanchao 已提交
149
**示例**
W
wyuanchao 已提交
150

H
houdisheng 已提交
151
  ```js
W
wyuanchao 已提交
152
    bundleState.queryBundleStateInfos(0, 20000000000000, (err, res) => {
W
wyuanchao 已提交
153 154 155
        if (err) {
            console.log('BUNDLE_ACTIVE queryBundleStateInfos callback failed, because: ' + err.code);
        } else {
W
wyuanchao 已提交
156 157
            console.log('BUNDLE_ACTIVE queryBundleStateInfos callback success.');
            let i = 1;
W
wyuanchao 已提交
158
            for(let key in res){
W
wyuanchao 已提交
159 160 161
                console.log('BUNDLE_ACTIVE queryBundleStateInfos callback number : ' + i);
                console.log('BUNDLE_ACTIVE queryBundleStateInfos callback result ' + JSON.stringify(res[key]));
                i++;
W
wyuanchao 已提交
162 163 164 165 166
            }
        }
    });
  ```

W
wyuanchao 已提交
167
## bundleState.queryBundleStateInfos
W
wyuanchao 已提交
168 169 170 171 172

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

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

W
wyuanchao 已提交
173
**需要权限**:ohos.permission.BUNDLE_ACTIVE_INFO
W
wyuanchao 已提交
174

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

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

W
wyuanchao 已提交
179
**参数**
W
wyuanchao 已提交
180

H
HelloCrease 已提交
181 182 183 184
| 参数名   | 类型     | 必填   | 说明    |
| ----- | ------ | ---- | ----- |
| begin | number | 是    | 起始时间。 |
| end   | number | 是    | 结束时间。 |
W
wyuanchao 已提交
185

W
wyuanchao 已提交
186
**返回值**
W
wyuanchao 已提交
187

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

W
wyuanchao 已提交
192
**示例**
W
wyuanchao 已提交
193

H
houdisheng 已提交
194
  ```js
W
wyuanchao 已提交
195
    bundleState.queryBundleStateInfos(0, 20000000000000).then( res => {
W
wyuanchao 已提交
196 197
        console.log('BUNDLE_ACTIVE queryBundleStateInfos promise success.');
        let i = 1;
W
wyuanchao 已提交
198
        for(let key in res){
W
wyuanchao 已提交
199 200 201
            console.log('BUNDLE_ACTIVE queryBundleStateInfos promise number : ' + i);
            console.log('BUNDLE_ACTIVE queryBundleStateInfos promise result ' + JSON.stringify(res[key]));
            i++;
W
wyuanchao 已提交
202 203
        }
    }).catch( err => {
W
wyuanchao 已提交
204
        console.log('BUNDLE_ACTIVE queryBundleStateInfos promise failed, because: ' + err.code);
W
wyuanchao 已提交
205 206 207
    });
  ```

W
wyuanchao 已提交
208
## bundleState.queryBundleStateInfoByInterval
W
wyuanchao 已提交
209 210 211 212 213

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

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

W
wyuanchao 已提交
214
**需要权限**:ohos.permission.BUNDLE_ACTIVE_INFO
W
wyuanchao 已提交
215

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

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

W
wyuanchao 已提交
220
**参数**
W
wyuanchao 已提交
221

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

W
wyuanchao 已提交
229
**示例**
W
wyuanchao 已提交
230

H
houdisheng 已提交
231
  ```js
W
wyuanchao 已提交
232
    bundleState.queryBundleStateInfoByInterval(0, 0, 20000000000000, (err, res) => {
W
wyuanchao 已提交
233 234 235
        if (err) {
            console.log('BUNDLE_ACTIVE queryBundleStateInfoByInterval callback failed, because: ' + err.code);
        } else {
W
wyuanchao 已提交
236
            console.log('BUNDLE_ACTIVE queryBundleStateInfoByInterval callback success.');
W
wyuanchao 已提交
237
            for (let i = 0; i < res.length; i++) {
W
wyuanchao 已提交
238 239
                console.log('BUNDLE_ACTIVE queryBundleStateInfoByInterval callback number : ' + (i + 1));
                console.log('BUNDLE_ACTIVE queryBundleStateInfoByInterval callback result ' + JSON.stringify(res[i]));
W
wyuanchao 已提交
240 241 242 243 244
            }
        }
    });
  ```

W
wyuanchao 已提交
245
## bundleState.queryBundleStateInfoByInterval
W
wyuanchao 已提交
246 247 248 249 250

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

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

W
wyuanchao 已提交
251
**需要权限**:ohos.permission.BUNDLE_ACTIVE_INFO
W
wyuanchao 已提交
252

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

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

W
wyuanchao 已提交
257
**参数**
W
wyuanchao 已提交
258

H
HelloCrease 已提交
259 260 261 262 263
| 参数名        | 类型                            | 必填   | 说明    |
| ---------- | ----------------------------- | ---- | ----- |
| byInterval | [IntervalType](#intervaltype) | 是    | 查询类型。 |
| begin      | number                        | 是    | 起始时间。 |
| end        | number                        | 是    | 结束时间。 |
W
wyuanchao 已提交
264

W
wyuanchao 已提交
265
**返回值**
W
wyuanchao 已提交
266

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

W
wyuanchao 已提交
271
**示例**
W
wyuanchao 已提交
272

H
houdisheng 已提交
273
  ```js
W
wyuanchao 已提交
274
    bundleState.queryBundleStateInfoByInterval(0, 0, 20000000000000).then( res => {
W
wyuanchao 已提交
275
        console.log('BUNDLE_ACTIVE queryBundleStateInfoByInterval promise success.');
W
wyuanchao 已提交
276
        for (let i = 0; i < res.length; i++) {
W
wyuanchao 已提交
277 278
            console.log('BUNDLE_ACTIVE queryBundleStateInfoByInterval promise number : ' + (i + 1));
            console.log('BUNDLE_ACTIVE queryBundleStateInfoByInterval promise result ' + JSON.stringify(res[i]));
W
wyuanchao 已提交
279 280
        }
    }).catch( err => {
W
wyuanchao 已提交
281
        console.log('BUNDLE_ACTIVE queryBundleStateInfoByInterval promise failed, because: ' + err.code);
W
wyuanchao 已提交
282 283 284
    });
  ```

W
wyuanchao 已提交
285
## bundleState.queryBundleActiveStates
W
wyuanchao 已提交
286 287 288 289 290

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

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

W
wyuanchao 已提交
291
**需要权限**:ohos.permission.BUNDLE_ACTIVE_INFO
W
wyuanchao 已提交
292

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

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

W
wyuanchao 已提交
297
**参数**
W
wyuanchao 已提交
298

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

W
wyuanchao 已提交
305
**示例**
W
wyuanchao 已提交
306

H
houdisheng 已提交
307
  ```js
W
wyuanchao 已提交
308
    bundleState.queryBundleActiveStates(0, 20000000000000, (err, res) => {
W
wyuanchao 已提交
309 310 311
        if (err) {
            console.log('BUNDLE_ACTIVE queryBundleActiveStates callback failed, because: ' + err.code);
        } else {
W
wyuanchao 已提交
312
            console.log('BUNDLE_ACTIVE queryBundleActiveStates callback success.');
W
wyuanchao 已提交
313
            for (let i = 0; i < res.length; i++) {
W
wyuanchao 已提交
314 315
                console.log('BUNDLE_ACTIVE queryBundleActiveStates callback number : ' + (i + 1));
                console.log('BUNDLE_ACTIVE queryBundleActiveStates callback result ' + JSON.stringify(res[i]));
W
wyuanchao 已提交
316 317 318 319 320
            }
        }
    });
  ```

W
wyuanchao 已提交
321
## bundleState.queryBundleActiveStates
W
wyuanchao 已提交
322 323 324 325 326

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

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

W
wyuanchao 已提交
327
**需要权限**:ohos.permission.BUNDLE_ACTIVE_INFO
W
wyuanchao 已提交
328

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

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

W
wyuanchao 已提交
333
**参数**
W
wyuanchao 已提交
334

H
HelloCrease 已提交
335 336 337 338
| 参数名   | 类型     | 必填   | 说明    |
| ----- | ------ | ---- | ----- |
| begin | number | 是    | 起始时间。 |
| end   | number | 是    | 结束时间。 |
W
wyuanchao 已提交
339

W
wyuanchao 已提交
340
**返回值**
W
wyuanchao 已提交
341

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

W
wyuanchao 已提交
346
**示例**
W
wyuanchao 已提交
347

H
houdisheng 已提交
348
  ```js
W
wyuanchao 已提交
349
    bundleState.queryBundleActiveStates(0, 20000000000000).then( res => {
W
wyuanchao 已提交
350
        console.log('BUNDLE_ACTIVE queryBundleActiveStates promise success.');
W
wyuanchao 已提交
351
        for (let i = 0; i < res.length; i++) {
W
wyuanchao 已提交
352 353
            console.log('BUNDLE_ACTIVE queryBundleActiveStates promise number : ' + (i + 1));
            console.log('BUNDLE_ACTIVE queryBundleActiveStates promise result ' + JSON.stringify(res[i]));
W
wyuanchao 已提交
354 355
        }
    }).catch( err => {
W
wyuanchao 已提交
356
        console.log('BUNDLE_ACTIVE queryBundleActiveStates promise failed, because: ' + err.code);
W
wyuanchao 已提交
357 358 359
    });
  ```

W
wyuanchao 已提交
360
## bundleState.queryCurrentBundleActiveStates
W
wyuanchao 已提交
361 362 363

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

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

W
wyuanchao 已提交
366 367 368
**系统能力**:SystemCapability.ResourceSchedule.UsageStatistics.App

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

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

W
wyuanchao 已提交
376
**示例**
W
wyuanchao 已提交
377

H
houdisheng 已提交
378
  ```js
W
wyuanchao 已提交
379
    bundleState.queryCurrentBundleActiveStates(0, 20000000000000, (err, res) => {
W
wyuanchao 已提交
380 381 382
        if (err) {
            console.log('BUNDLE_ACTIVE queryCurrentBundleActiveStates callback failed, because: ' + err.code);
        } else {
W
wyuanchao 已提交
383
            console.log('BUNDLE_ACTIVE queryCurrentBundleActiveStates callback success.');
W
wyuanchao 已提交
384
            for (let i = 0; i < res.length; i++) {
W
wyuanchao 已提交
385 386
                console.log('BUNDLE_ACTIVE queryCurrentBundleActiveStates callback number : ' + (i + 1));
                console.log('BUNDLE_ACTIVE queryCurrentBundleActiveStates callback result ' + JSON.stringify(res[i]));
W
wyuanchao 已提交
387
            }
W
wyuanchao 已提交
388 389 390 391
        }
    });
  ```

W
wyuanchao 已提交
392
## bundleState.queryCurrentBundleActiveStates
W
wyuanchao 已提交
393 394 395

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

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

W
wyuanchao 已提交
398 399 400
**系统能力**:SystemCapability.ResourceSchedule.UsageStatistics.App

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

H
HelloCrease 已提交
402 403 404 405
| 参数名   | 类型     | 必填   | 说明    |
| ----- | ------ | ---- | ----- |
| begin | number | 是    | 起始时间。 |
| end   | number | 是    | 结束时间。 |
W
wyuanchao 已提交
406

W
wyuanchao 已提交
407
**返回值**
W
wyuanchao 已提交
408

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

W
wyuanchao 已提交
413
**示例**
W
wyuanchao 已提交
414

H
houdisheng 已提交
415
  ```js
W
wyuanchao 已提交
416
    bundleState.queryCurrentBundleActiveStates(0, 20000000000000).then( res => {
W
wyuanchao 已提交
417
        console.log('BUNDLE_ACTIVE queryCurrentBundleActiveStates promise success.');
W
wyuanchao 已提交
418
        for (let i = 0; i < res.length; i++) {
W
wyuanchao 已提交
419 420
            console.log('BUNDLE_ACTIVE queryCurrentBundleActiveStates promise number : ' + (i + 1));
            console.log('BUNDLE_ACTIVE queryCurrentBundleActiveStates promise result ' + JSON.stringify(res[i]));
W
wyuanchao 已提交
421 422
        }
    }).catch( err => {
W
wyuanchao 已提交
423
        console.log('BUNDLE_ACTIVE queryCurrentBundleActiveStates promise failed, because: ' + err.code);
W
wyuanchao 已提交
424 425 426
    });
  ```

H
houdisheng 已提交
427
## bundleState.getRecentlyUsedModules<sup>9+</sup>
H
houdisheng 已提交
428

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

H
houdisheng 已提交
431
据maxNum,查询FA使用记录,使用Promise形式返回不超过maxNum条FA使用记录,FA使用记录由近及远排序,maxNum最大为1000。
H
houdisheng 已提交
432 433 434 435 436

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

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

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

H
houdisheng 已提交
439 440
**参数**

H
HelloCrease 已提交
441 442 443
| 参数名    | 类型     | 必填   | 说明                                 |
| ------ | ------ | ---- | ---------------------------------- |
| maxNum | number | 否    | 返回条目的最大数量,最多支持1000条。若不填写,则默认为1000。 |
H
houdisheng 已提交
444 445 446

**返回值**

H
HelloCrease 已提交
447 448 449
| 类型                                       | 说明                                 |
| ---------------------------------------- | ---------------------------------- |
| Promise&lt;Array&lt;[BundleActiveModuleInfo](#bundleactivemoduleinfo9)&gt;&gt; | 指定的Promise回调方法。返回不超过maxNum条FA使用记录。 |
H
houdisheng 已提交
450 451 452

**示例**

H
houdisheng 已提交
453
  ```js
H
HelloCrease 已提交
454
    bundleState.getRecentlyUsedModules(1000).then( res => {
H
houdisheng 已提交
455
        console.log('BUNDLE_ACTIVE getRecentlyUsedModules promise succeeded');
H
houdisheng 已提交
456
        for (let i = 0; i < res.length; i++) {
H
houdisheng 已提交
457 458
            console.log('BUNDLE_ACTIVE getRecentlyUsedModules promise number : ' + (i + 1));
            console.log('BUNDLE_ACTIVE getRecentlyUsedModules promise result ' + JSON.stringify(res[i]));
H
houdisheng 已提交
459 460
        }
    }).catch( err=> {
H
houdisheng 已提交
461
        console.log('BUNDLE_ACTIVE getRecentlyUsedModules promise failed, because: ' + err.code);
H
houdisheng 已提交
462
    });
H
houdisheng 已提交
463

H
houdisheng 已提交
464
    // 无maxNum参数调用方式
H
houdisheng 已提交
465 466 467 468 469 470 471 472 473
    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 已提交
474 475
  ```

H
houdisheng 已提交
476
## bundleState.getRecentlyUsedModules<sup>9+</sup>
H
houdisheng 已提交
477

478
getRecentlyUsedModules(maxNum?: number, callback: AsyncCallback&lt;Array&lt;BundleActiveModuleInfo&gt;&gt;): void
H
houdisheng 已提交
479

H
houdisheng 已提交
480
查询FA使用记录。使用CallBack形式返回数量最大不超过maxNum设置的值,FA使用记录由近及远排序,maxNum最大为1000。
H
houdisheng 已提交
481 482 483 484 485

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

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

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

H
houdisheng 已提交
488 489
**参数**

H
HelloCrease 已提交
490 491 492 493
| 参数名      | 类型                                       | 必填   | 说明                                  |
| -------- | ---------------------------------------- | ---- | ----------------------------------- |
| maxNum   | number                                   | 否    | 返回条目的最大数量,最多支持1000条。若不填写,则默认为1000。  |
| callback | AsyncCallback&lt;Array&lt;[BundleActiveModuleInfo](#bundleactivemoduleinfo9)&gt;&gt; | 是    | 指定的CallBack回调方法。返回不超过maxNum条FA使用记录。 |
H
houdisheng 已提交
494 495 496

**示例**

H
houdisheng 已提交
497
  ```js
H
HelloCrease 已提交
498
    bundleState.getRecentlyUsedModules(1000,(err, res) => {
H
houdisheng 已提交
499
        if(err) {
H
houdisheng 已提交
500
            console.log('BUNDLE_ACTIVE getRecentlyUsedModules callback failed, because: ' + err.code);
H
houdisheng 已提交
501
        } else {
H
houdisheng 已提交
502
            console.log('BUNDLE_ACTIVE getRecentlyUsedModules callback succeeded.');
H
houdisheng 已提交
503
                for (let i = 0; i < res.length; i++) {
H
houdisheng 已提交
504 505
                    console.log('BUNDLE_ACTIVE getRecentlyUsedModules callback number : ' + (i + 1));
                    console.log('BUNDLE_ACTIVE getRecentlyUsedModules callback result ' + JSON.stringify(res[i]));
H
houdisheng 已提交
506
                }
H
houdisheng 已提交
507
        }
H
houdisheng 已提交
508
    });
H
houdisheng 已提交
509

H
houdisheng 已提交
510
    // 无maNum参数调用方式
H
HelloCrease 已提交
511
    bundleState.getRecentlyUsedModules((err, res) => {
H
houdisheng 已提交
512 513 514 515 516 517 518 519 520 521
        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]));
                }
            }
    });
H
houdisheng 已提交
522 523
  ```

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

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

528
可选参数。有参则查询指定bundleName的应用的分组。无参数时查询当前应用的分组。使用Promise形式返回其应用分组结果。
Y
yupeng74@huawei.com 已提交
529 530 531 532 533

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

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

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

Y
yupeng74@huawei.com 已提交
536 537
**参数**

H
HelloCrease 已提交
538 539
| 参数名        | 类型     | 必填   | 说明                                       |
| ---------- | ------ | ---- | ---------------------------------------- |
540
| bundleName | string | 否    | 可选参数。有参则查询指定bundleName的应用的分组。无参数时查询当前应用的分组。 |
Y
yupeng74@huawei.com 已提交
541 542 543

**返回值**

H
HelloCrease 已提交
544 545
| 类型              | 说明                          |
| --------------- | --------------------------- |
546
| Promise&lt;number&gt; | 指定的Promise回调方法。返回查询的应用分组结果。 |
Y
yupeng74@huawei.com 已提交
547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566

**示例**

```javascript
//有bundleName的promise
bundleState.queryAppUsagePriorityGroup(this.bundleName).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);
});
//无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>

567
queryAppUsagePriorityGroup(bundleName? : string, callback: AsyncCallback&lt;number&gt;): void
Y
yupeng74@huawei.com 已提交
568

569
可选参数。有参则查询指定bundleName对应应用的分组。无参数时查询当前应用的分组。使用callback形式返回其应用分组。
Y
yupeng74@huawei.com 已提交
570 571 572 573 574

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

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

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

Y
yupeng74@huawei.com 已提交
577 578
**参数**

H
HelloCrease 已提交
579 580
| 参数名        | 类型                    | 必填   | 说明                                       |
| ---------- | --------------------- | ---- | ---------------------------------------- |
581 582
| bundleName | string                | 否    | 可选参数。有此参数则查询指定bundleName对应应用的分组。无此参数时查询当前应用的分组。 |
| callback   | AsyncCallback&lt;number&gt; | 是    | 指定的CallBack回调方法。返回查询的应用分组。               |
Y
yupeng74@huawei.com 已提交
583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604

**示例**

```javascript
//有bundleName的callback
bundleState.queryAppUsagePriorityGroup(this.bundleName, (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));
    }
});
//无bundleName的callback
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));
    }
});
```

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

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

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

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

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

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

Y
yupeng74@huawei.com 已提交
617 618
**参数**

H
HelloCrease 已提交
619 620 621
| 参数名        | 类型        | 必填   | 说明   |
| ---------- | --------- | ---- | ---- |
| bundleName | string    | 是    | 应用名称 |
622
| newGroup   | [GroupType](#grouptype) | 是    | 应用分组 |
Y
yupeng74@huawei.com 已提交
623 624 625

**返回值**

H
HelloCrease 已提交
626 627
| 类型            | 说明                        |
| ------------- | ------------------------- |
628
| Promise&lt;void&gt; | 指定的Promise回调方法。返回本次设置是否成功 |
Y
yupeng74@huawei.com 已提交
629 630 631 632

**示例**

```javascript
633
let bundleName = "com.example.deviceUsageStatistics";
634
let newGroup = bundleState.GroupType.ACTIVE_GROUP_DAILY;
Y
yupeng74@huawei.com 已提交
635

636
bundleState.setBundleGroup(bundleName, newGroup).then( () => {
Y
yupeng74@huawei.com 已提交
637
    console.log('BUNDLE_ACTIVE SetBundleGroup promise succeeded.');
Y
yupeng74@huawei.com 已提交
638 639 640 641 642 643 644
}).catch( err => {
    console.log('BUNDLE_ACTIVE SetBundleGroup promise failed. because: ' + err.code);
});
```

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

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

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

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

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

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

Y
yupeng74@huawei.com 已提交
655 656
**参数**

H
HelloCrease 已提交
657 658 659
| 参数名        | 类型                  | 必填   | 说明                        |
| ---------- | ------------------- | ---- | ------------------------- |
| bundleName | string              | 是    | 应用名称                      |
660
| newGroup   | [GroupType](#grouptype)           | 是    | 应用分组                      |
661
| callback   | AsyncCallback&lt;void&gt; | 是    | 指定的CallBack回调方法。返回设置是否成功。 |
Y
yupeng74@huawei.com 已提交
662 663 664 665

**示例**

```javascript
666
let bundleName = "com.example.deviceUsageStatistics";
667
let newGroup = bundleState.GroupType.ACTIVE_GROUP_DAILY;
Y
yupeng74@huawei.com 已提交
668

669
bundleState.setBundleGroup(bundleName, newGroup, (err) => {
Y
yupeng74@huawei.com 已提交
670 671 672
    if(err) {
        console.log('BUNDLE_ACTIVE SetBundleGroup callback failed. because: ' + err.code);
    } else {
Y
yupeng74@huawei.com 已提交
673
        console.log('BUNDLE_ACTIVE SetBundleGroup callback succeeded.');
Y
yupeng74@huawei.com 已提交
674 675 676 677 678 679
    }
});
```

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

680
registerGroupCallBack(callback: Callback&lt;BundleActiveGroupCallbackInfo&gt;): Promise&lt;void&gt;
Y
yupeng74@huawei.com 已提交
681

682
应用注册分组变化监听,待用户名下的某个应用分组发生变化时,通过callback形式向所有已注册分组变化监听的应用返回BundleActiveGroupCallbackInfo信息。使用Promise形式返回注册是否成功。
Y
yupeng74@huawei.com 已提交
683 684 685

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

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

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

Y
yupeng74@huawei.com 已提交
690 691
**参数**

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

**返回值**

H
HelloCrease 已提交
698 699
| 类型            | 说明                      |
| ------------- | ----------------------- |
700
| Promise&lt;void&gt; | 指定的Promise回调方法。返回注册监听是否成功 |
Y
yupeng74@huawei.com 已提交
701 702 703 704 705 706

**示例**

```javascript
let onBundleGroupChanged = (err,res) =>{
    console.log('BUNDLE_ACTIVE onBundleGroupChanged RegisterGroupCallBack callback success.');
707 708 709 710 711
    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 已提交
712
};
Y
yupeng74@huawei.com 已提交
713 714
bundleState.registerGroupCallBack(onBundleGroupChanged).then( () => {
    console.log('BUNDLE_ACTIVE RegisterGroupCallBack promise succeeded.');
Y
yupeng74@huawei.com 已提交
715 716 717 718 719 720 721
}).catch( err => {
    console.log('BUNDLE_ACTIVE RegisterGroupCallBack promise failed. because: ' + err.code);
});
```

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

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

724
应用注册分组变化监听,待用户名下的某个应用分组发生变化时,通过callback形式向所有已注册分组变化监听的应用返回BundleActiveGroupCallbackInfo信息。使用异步callback形式返回注册监听是否成功。
Y
yupeng74@huawei.com 已提交
725 726 727

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

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

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

Y
yupeng74@huawei.com 已提交
732 733
**参数**

734 735
| 参数名   | 类型                                                         | 必填 | 说明                                         |
| -------- | ------------------------------------------------------------ | ---- | -------------------------------------------- |
736
| callback | Callback&lt;[BundleActiveGroupCallbackInfo](#bundleactivegroupcallbackinfo9)&gt; | 是   | 指定的callback函数,返回应用分组变化的信息   |
737
| callback | AsyncCallback&lt;void&gt;                                    | 是   | 指定的异步callback函数,返回注册监听是否成功 |
Y
yupeng74@huawei.com 已提交
738 739 740 741 742 743

**示例**

```javascript
let onBundleGroupChanged = (err,res) =>{
    console.log('BUNDLE_ACTIVE onBundleGroupChanged RegisterGroupCallBack callback success.');
744 745 746 747 748
    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 已提交
749
};
Y
yupeng74@huawei.com 已提交
750
bundleState.registerGroupCallBack(onBundleGroupChanged, (err)=>{
Y
yupeng74@huawei.com 已提交
751 752 753 754 755 756 757 758 759 760
    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>

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

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

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

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

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

Y
yupeng74@huawei.com 已提交
771 772 773 774
**参数**:无参数

**返回值**

H
HelloCrease 已提交
775 776
| 类型            | 说明                       |
| ------------- | ------------------------ |
777
| Promise&lt;void&gt; | 指定的Promise回调方法。返回解除监听是否成功 |
Y
yupeng74@huawei.com 已提交
778 779 780 781

**示例**

```javascript
Y
yupeng74@huawei.com 已提交
782 783
bundleState.unRegisterGroupCallBack().then( () => {
    console.log('BUNDLE_ACTIVE UnRegisterGroupCallBack promise succeeded.');
Y
yupeng74@huawei.com 已提交
784 785 786 787 788 789 790
}).catch( err => {
    console.log('BUNDLE_ACTIVE UnRegisterGroupCallBack promise failed. because: ' + err.code);
});
```

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

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

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

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

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

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

Y
yupeng74@huawei.com 已提交
801 802
**参数**

H
HelloCrease 已提交
803 804
| 参数名      | 类型                  | 必填   | 说明             |
| -------- | ------------------- | ---- | -------------- |
805
| callback | AsyncCallback&lt;void&gt; | 是    | 解除监听是否成功的异步回调函数 |
Y
yupeng74@huawei.com 已提交
806 807 808 809

**示例**

```javascript
Y
yupeng74@huawei.com 已提交
810
bundleState.unRegisterGroupCallBack((err)=>{
Y
yupeng74@huawei.com 已提交
811 812 813 814 815 816 817 818
    if(err) {
        console.log('BUNDLE_ACTIVE UnRegisterGroupCallBack callback failed, because: ' + err.code);
    } else {
        console.log('BUNDLE_ACTIVE UnRegisterGroupCallBack callback success.');
    }
});
```

W
wyuanchao 已提交
819 820 821 822 823 824 825 826 827 828
## 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 已提交
829 830
**系统API**:此接口为系统接口,三方应用不支持调用。

W
wyuanchao 已提交
831 832
**参数**

H
HelloCrease 已提交
833 834 835 836
| 参数名   | 类型     | 必填   | 说明    |
| ----- | ------ | ---- | ----- |
| begin | number | 是    | 起始时间。 |
| end   | number | 是    | 结束时间。 |
W
wyuanchao 已提交
837 838 839

**返回值**

H
HelloCrease 已提交
840 841 842
| 类型                                       | 说明                                       |
| ---------------------------------------- | ---------------------------------------- |
| Promise&lt;Array&lt;[BundleActiveEventState](#bundleactiveeventstate9)&gt;&gt; | 指定的Promise回调方法。返回指定起始和结束时间查询系统事件(休眠、唤醒、解锁、锁屏)统计信息。 |
W
wyuanchao 已提交
843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864

**示例**

  ```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 已提交
865 866
**系统API**:此接口为系统接口,三方应用不支持调用。

W
wyuanchao 已提交
867 868
**参数**

H
HelloCrease 已提交
869 870 871 872 873
| 参数名      | 类型                                       | 必填   | 说明                                       |
| -------- | ---------------------------------------- | ---- | ---------------------------------------- |
| begin    | number                                   | 是    | 起始时间。                                    |
| end      | number                                   | 是    | 结束时间。                                    |
| callback | AsyncCallback&lt;Array&lt;[BundleActiveEventState](#bundleactiveeventstate9)&gt;&gt; | 是    | 指定的callback回调方法。返回指定起始和结束时间查询系统事件(休眠、唤醒、解锁、锁屏)统计信息。 |
W
wyuanchao 已提交
874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897

**示例**

  ```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 已提交
898 899
**系统API**:此接口为系统接口,三方应用不支持调用。

W
wyuanchao 已提交
900 901
**参数**

H
HelloCrease 已提交
902 903 904 905
| 参数名   | 类型     | 必填   | 说明    |
| ----- | ------ | ---- | ----- |
| begin | number | 是    | 起始时间。 |
| end   | number | 是    | 结束时间。 |
W
wyuanchao 已提交
906 907 908

**返回值**

H
HelloCrease 已提交
909 910 911
| 类型                                       | 说明                                       |
| ---------------------------------------- | ---------------------------------------- |
| Promise&lt;Array&lt;[BundleActiveEventState](#bundleactiveeventstate9)&gt;&gt; | 指定的Promise回调方法。返回指定起始和结束时间查询所有应用的通知次数信息。 |
W
wyuanchao 已提交
912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933

**示例**

  ```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 已提交
934 935
**系统API**:此接口为系统接口,三方应用不支持调用。

W
wyuanchao 已提交
936 937
**参数**

H
HelloCrease 已提交
938 939 940 941 942
| 参数名      | 类型                                       | 必填   | 说明                                       |
| -------- | ---------------------------------------- | ---- | ---------------------------------------- |
| begin    | number                                   | 是    | 起始时间。                                    |
| end      | number                                   | 是    | 结束时间。                                    |
| callback | AsyncCallback&lt;Array&lt;[BundleActiveEventState](#bundleactiveeventstate9)&gt;&gt; | 是    | 指定的callback回调方法。返回通过指定起始和结束时间查询所有应用的通知次数信息。 |
W
wyuanchao 已提交
943 944 945 946 947 948 949 950 951 952 953 954 955 956

**示例**

  ```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 已提交
957 958
## BundleActiveModuleInfo<sup>9+</sup>
FA的使用信息的属性集合。
H
houdisheng 已提交
959 960 961

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

H
HelloCrease 已提交
962 963 964 965 966 967 968 969 970 971 972 973 974 975 976
| 参数名                  | 类型                                       | 必填   | 说明                            |
| -------------------- | ---------------------------------------- | ---- | ----------------------------- |
| 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 已提交
977

H
houdisheng 已提交
978 979
## BundleActiveFormInfo<sup>9+</sup>
FA卡片的使用信息的属性集合。
H
houdisheng 已提交
980 981 982

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

H
HelloCrease 已提交
983 984
| 参数名              | 类型     | 必填   | 说明          |
| ---------------- | ------ | ---- | ----------- |
985
| formName         | string | 是    | 卡片名称。       |
H
HelloCrease 已提交
986 987 988 989
| formDimension    | number | 是    | 卡片尺寸。       |
| formId           | number | 是    | 卡片Id。       |
| formLastUsedTime | number | 是    | 卡片的上一次点击时间。 |
| count            | number | 是    | 卡片的点击次数。    |
H
houdisheng 已提交
990

Y
yupeng74@huawei.com 已提交
991 992 993 994
## BundleActiveGroupCallbackInfo<sup>9+</sup>

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

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

H
HelloCrease 已提交
997 998
| 参数名              | 类型     | 必填   | 说明       |
| ---------------- | ------ | ---- | -------- |
999 1000
| appUsageOldGroup | number | 是    | 变化前的应用分组 |
| appUsageNewGroup | number | 是    | 变化后的应用分组 |
H
HelloCrease 已提交
1001 1002 1003
| useId            | number | 是    | 用户id     |
| changeReason     | number | 是    | 分组变化原因   |
| bundleName       | string | 是    | 应用名称     |
Y
yupeng74@huawei.com 已提交
1004

W
wyuanchao 已提交
1005
## BundleStateInfo
Y
yupeng74@huawei.com 已提交
1006

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

W
wyuanchao 已提交
1009
### 属性
W
wyuanchao 已提交
1010

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

H
HelloCrease 已提交
1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024
| 参数名                      | 类型     | 必填   | 说明                                       |
| ------------------------ | ------ | ---- | ---------------------------------------- |
| 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 已提交
1025

W
wyuanchao 已提交
1026
### merge
W
wyuanchao 已提交
1027

W
wyuanchao 已提交
1028
merge(toMerge: BundleStateInfo): void
W
wyuanchao 已提交
1029 1030 1031

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

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

W
wyuanchao 已提交
1034 1035 1036 1037
**系统能力**:SystemCapability.ResourceSchedule.UsageStatistics.App

**参数**

H
HelloCrease 已提交
1038 1039 1040
| 参数名     | 类型                                  | 必填   | 说明             |
| ------- | ----------------------------------- | ---- | -------------- |
| toMerge | [BundleStateInfo](#bundlestateinfo) | 是    | 相同包名的应用使用统计信息。 |
W
wyuanchao 已提交
1041

W
wyuanchao 已提交
1042
## BundleActiveState
W
wyuanchao 已提交
1043

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

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

H
HelloCrease 已提交
1048 1049 1050 1051 1052 1053 1054 1055
| 参数名                   | 类型     | 必填   | 说明                                       |
| --------------------- | ------ | ---- | ---------------------------------------- |
| 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 已提交
1056

W
wyuanchao 已提交
1057
## BundleActiveInfoResponse
W
wyuanchao 已提交
1058

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

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

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

W
wyuanchao 已提交
1067 1068 1069 1070 1071 1072
## BundleActiveEventState<sup>9+</sup>

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

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

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

H
HelloCrease 已提交
1075 1076 1077 1078 1079
| 参数名     | 类型     | 必填   | 说明                |
| ------- | ------ | ---- | ----------------- |
| name    | string | 是    | 通知应用包名或者系统事件名。    |
| eventId | number | 是    | 通知、系统事件类型。        |
| count   | number | 是    | 应用通知次数或者系统事件触发次数。 |
W
wyuanchao 已提交
1080

W
wyuanchao 已提交
1081
## IntervalType
W
wyuanchao 已提交
1082

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

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

H
HelloCrease 已提交
1087 1088 1089 1090 1091 1092 1093
| 名称           | 默认值  | 说明                                       |
| ------------ | ---- | ---------------------------------------- |
| BY_OPTIMIZED | 0    | 表示系统自行判断最合适的查询类型(天、周、月、年)去查询指定时间段间隔的应用使用时长信息。 |
| BY_DAILY     | 1    | 表示系统按照天去查询指定时间段间隔的应用使用时长信息。              |
| BY_WEEKLY    | 2    | 表示系统按照周去查询指定时间段间隔的应用使用时长信息。              |
| BY_MONTHLY   | 3    | 表示系统按照月去查询指定时间段间隔的应用使用时长信息。              |
| BY_ANNUALLY  | 4    | 表示系统按照年去查询指定时间段间隔的应用使用时长信息。              |
Y
yupeng74@huawei.com 已提交
1094 1095 1096 1097 1098

## GroupType

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

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

H
HelloCrease 已提交
1101 1102 1103 1104 1105 1106 1107 1108
| 名称                 | 默认值  | 说明                |
| ------------------ | ---- | ----------------- |
| ACTIVE_GROUP_ALIVE | 10   | 活跃分组              |
| ACTIVE_GROUP_DAILY | 20   | 经常使用,但当前并未在活跃态    |
| ACTIVE_GROUP_FIXED | 30   | 常用分组,定期使用,但不是每天使用 |
| ACTIVE_GROUP_RARE  | 40   | 极少使用分组,不经常使用      |
| ACTIVE_GROUP_LIMIT | 50   | 受限使用分组            |
| ACTIVE_GROUP_NEVER | 60   | 从未使用分组,安装但是从未运行过  |