js-apis-deviceUsageStatistics.md 25.3 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 18
判断指定bundleName的应用当前是否是空闲状态,使用Callback形式返回。

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

**参数**
W
wyuanchao 已提交
22 23 24 25

  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | bundleName | string | 是 | 应用的bundleName。|
W
wyuanchao 已提交
26
  | 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 45
判断指定bundleName的应用当前是否是空闲状态,使用Promise形式返回。

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

**参数**
W
wyuanchao 已提交
49 50 51 52 53

  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | bundleName | string | 是 | 应用的bundleName。|

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

  | 类型 | 说明 |
  | -------- | -------- |
W
wyuanchao 已提交
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 73

queryAppUsagePriorityGroup(callback: AsyncCallback<number>): void

W
wyuanchao 已提交
74 75
查询(返回)当前调用者应用的使用优先级群组,使用Callback形式返回。

W
wyuanchao 已提交
76 77 78
**系统能力**:SystemCapability.ResourceSchedule.UsageStatistics.AppGroup

**参数**
W
wyuanchao 已提交
79 80 81

  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
W
wyuanchao 已提交
82
  | callback | AsyncCallback<number> | 是 | 指定的callback回调方法。返回当前调用者应用的使用优先级群组。|
W
wyuanchao 已提交
83

W
wyuanchao 已提交
84
**示例**
W
wyuanchao 已提交
85

H
houdisheng 已提交
86
  ```js
W
wyuanchao 已提交
87
    bundleState.queryAppUsagePriorityGroup((err, res) => {
W
wyuanchao 已提交
88
        if (err) {
W
wyuanchao 已提交
89
            console.log('BUNDLE_ACTIVE queryAppUsagePriorityGroup callback failed. because: ' + err.code);
W
wyuanchao 已提交
90 91
        } else {
            console.log('BUNDLE_ACTIVE queryAppUsagePriorityGroup callback succeeded. result: ' + JSON.stringify(res));
W
wyuanchao 已提交
92 93 94 95
        }
    });
  ```

W
wyuanchao 已提交
96
## bundleState.queryAppUsagePriorityGroup
W
wyuanchao 已提交
97 98 99

queryAppUsagePriorityGroup(): Promise<number>

W
wyuanchao 已提交
100 101
查询(返回)当前调用者应用的使用优先级群组,使用Promise形式返回。

W
wyuanchao 已提交
102 103 104
**系统能力**:SystemCapability.ResourceSchedule.UsageStatistics.AppGroup

**返回值**
W
wyuanchao 已提交
105 106 107

  | 类型 | 说明 |
  | -------- | -------- |
W
wyuanchao 已提交
108
  | Promise<number> | 指定的Promise回调方法。查询(返回)当前调用者应用的使用优先级群组。|
W
wyuanchao 已提交
109

W
wyuanchao 已提交
110
**示例**
W
wyuanchao 已提交
111

H
houdisheng 已提交
112
  ```js
W
wyuanchao 已提交
113
    bundleState.queryAppUsagePriorityGroup().then( res => {
W
wyuanchao 已提交
114
        console.log('BUNDLE_ACTIVE queryAppUsagePriorityGroup promise succeeded. result: ' + JSON.stringify(res));
W
wyuanchao 已提交
115
    }).catch( err => {
W
wyuanchao 已提交
116
        console.log('BUNDLE_ACTIVE queryAppUsagePriorityGroup promise failed. because: ' + err.code);
W
wyuanchao 已提交
117 118 119
    });
  ```

W
wyuanchao 已提交
120
## bundleState.queryBundleStateInfos
W
wyuanchao 已提交
121 122 123 124 125

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

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

W
wyuanchao 已提交
126
**需要权限**:ohos.permission.BUNDLE_ACTIVE_INFO
W
wyuanchao 已提交
127

W
wyuanchao 已提交
128 129 130
**系统能力**:SystemCapability.ResourceSchedule.UsageStatistics.App

**参数**
W
wyuanchao 已提交
131 132 133 134 135

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

W
wyuanchao 已提交
138
**示例**
W
wyuanchao 已提交
139

H
houdisheng 已提交
140
  ```js
W
wyuanchao 已提交
141
    bundleState.queryBundleStateInfos(0, 20000000000000, (err, res) => {
W
wyuanchao 已提交
142 143 144
        if (err) {
            console.log('BUNDLE_ACTIVE queryBundleStateInfos callback failed, because: ' + err.code);
        } else {
W
wyuanchao 已提交
145 146
            console.log('BUNDLE_ACTIVE queryBundleStateInfos callback success.');
            let i = 1;
W
wyuanchao 已提交
147
            for(let key in res){
W
wyuanchao 已提交
148 149 150
                console.log('BUNDLE_ACTIVE queryBundleStateInfos callback number : ' + i);
                console.log('BUNDLE_ACTIVE queryBundleStateInfos callback result ' + JSON.stringify(res[key]));
                i++;
W
wyuanchao 已提交
151 152 153 154 155
            }
        }
    });
  ```

W
wyuanchao 已提交
156
## bundleState.queryBundleStateInfos
W
wyuanchao 已提交
157 158 159 160 161

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

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

W
wyuanchao 已提交
162
**需要权限**:ohos.permission.BUNDLE_ACTIVE_INFO
W
wyuanchao 已提交
163

W
wyuanchao 已提交
164 165 166
**系统能力**:SystemCapability.ResourceSchedule.UsageStatistics.App

**参数**
W
wyuanchao 已提交
167 168 169 170 171 172

  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | begin | number | 是 | 起始时间。|
  | end | number | 是 | 结束时间。|

W
wyuanchao 已提交
173
**返回值**
W
wyuanchao 已提交
174 175 176

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

W
wyuanchao 已提交
179
**示例**
W
wyuanchao 已提交
180

H
houdisheng 已提交
181
  ```js
W
wyuanchao 已提交
182
    bundleState.queryBundleStateInfos(0, 20000000000000).then( res => {
W
wyuanchao 已提交
183 184
        console.log('BUNDLE_ACTIVE queryBundleStateInfos promise success.');
        let i = 1;
W
wyuanchao 已提交
185
        for(let key in res){
W
wyuanchao 已提交
186 187 188
            console.log('BUNDLE_ACTIVE queryBundleStateInfos promise number : ' + i);
            console.log('BUNDLE_ACTIVE queryBundleStateInfos promise result ' + JSON.stringify(res[key]));
            i++;
W
wyuanchao 已提交
189 190
        }
    }).catch( err => {
W
wyuanchao 已提交
191
        console.log('BUNDLE_ACTIVE queryBundleStateInfos promise failed, because: ' + err.code);
W
wyuanchao 已提交
192 193 194
    });
  ```

W
wyuanchao 已提交
195
## bundleState.queryBundleStateInfoByInterval
W
wyuanchao 已提交
196 197 198 199 200

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

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

W
wyuanchao 已提交
201
**需要权限**:ohos.permission.BUNDLE_ACTIVE_INFO
W
wyuanchao 已提交
202

W
wyuanchao 已提交
203 204 205
**系统能力**:SystemCapability.ResourceSchedule.UsageStatistics.App

**参数**
W
wyuanchao 已提交
206 207 208

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

W
wyuanchao 已提交
214
**示例**
W
wyuanchao 已提交
215

H
houdisheng 已提交
216
  ```js
W
wyuanchao 已提交
217
    bundleState.queryBundleStateInfoByInterval(0, 0, 20000000000000, (err, res) => {
W
wyuanchao 已提交
218 219 220
        if (err) {
            console.log('BUNDLE_ACTIVE queryBundleStateInfoByInterval callback failed, because: ' + err.code);
        } else {
W
wyuanchao 已提交
221
            console.log('BUNDLE_ACTIVE queryBundleStateInfoByInterval callback success.');
W
wyuanchao 已提交
222
            for (let i = 0; i < res.length; i++) {
W
wyuanchao 已提交
223 224
                console.log('BUNDLE_ACTIVE queryBundleStateInfoByInterval callback number : ' + (i + 1));
                console.log('BUNDLE_ACTIVE queryBundleStateInfoByInterval callback result ' + JSON.stringify(res[i]));
W
wyuanchao 已提交
225 226 227 228 229
            }
        }
    });
  ```

W
wyuanchao 已提交
230
## bundleState.queryBundleStateInfoByInterval
W
wyuanchao 已提交
231 232 233 234 235

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

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

W
wyuanchao 已提交
236
**需要权限**:ohos.permission.BUNDLE_ACTIVE_INFO
W
wyuanchao 已提交
237

W
wyuanchao 已提交
238 239 240
**系统能力**:SystemCapability.ResourceSchedule.UsageStatistics.App

**参数**
W
wyuanchao 已提交
241 242 243

  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
W
wyuanchao 已提交
244
  | byInterval | [IntervalType](#intervaltype) | 是 | 查询类型。|
W
wyuanchao 已提交
245 246 247
  | begin | number | 是 | 起始时间。|
  | end | number | 是 | 结束时间。|

W
wyuanchao 已提交
248
**返回值**
W
wyuanchao 已提交
249 250 251

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

W
wyuanchao 已提交
254
**示例**
W
wyuanchao 已提交
255

H
houdisheng 已提交
256
  ```js
W
wyuanchao 已提交
257
    bundleState.queryBundleStateInfoByInterval(0, 0, 20000000000000).then( res => {
W
wyuanchao 已提交
258
        console.log('BUNDLE_ACTIVE queryBundleStateInfoByInterval promise success.');
W
wyuanchao 已提交
259
        for (let i = 0; i < res.length; i++) {
W
wyuanchao 已提交
260 261
            console.log('BUNDLE_ACTIVE queryBundleStateInfoByInterval promise number : ' + (i + 1));
            console.log('BUNDLE_ACTIVE queryBundleStateInfoByInterval promise result ' + JSON.stringify(res[i]));
W
wyuanchao 已提交
262 263
        }
    }).catch( err => {
W
wyuanchao 已提交
264
        console.log('BUNDLE_ACTIVE queryBundleStateInfoByInterval promise failed, because: ' + err.code);
W
wyuanchao 已提交
265 266 267
    });
  ```

W
wyuanchao 已提交
268
## bundleState.queryBundleActiveStates
W
wyuanchao 已提交
269 270 271 272 273

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

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

W
wyuanchao 已提交
274
**需要权限**:ohos.permission.BUNDLE_ACTIVE_INFO
W
wyuanchao 已提交
275

W
wyuanchao 已提交
276 277 278
**系统能力**:SystemCapability.ResourceSchedule.UsageStatistics.App

**参数**
W
wyuanchao 已提交
279 280 281 282 283

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

W
wyuanchao 已提交
286
**示例**
W
wyuanchao 已提交
287

H
houdisheng 已提交
288
  ```js
W
wyuanchao 已提交
289
    bundleState.queryBundleActiveStates(0, 20000000000000, (err, res) => {
W
wyuanchao 已提交
290 291 292
        if (err) {
            console.log('BUNDLE_ACTIVE queryBundleActiveStates callback failed, because: ' + err.code);
        } else {
W
wyuanchao 已提交
293
            console.log('BUNDLE_ACTIVE queryBundleActiveStates callback success.');
W
wyuanchao 已提交
294
            for (let i = 0; i < res.length; i++) {
W
wyuanchao 已提交
295 296
                console.log('BUNDLE_ACTIVE queryBundleActiveStates callback number : ' + (i + 1));
                console.log('BUNDLE_ACTIVE queryBundleActiveStates callback result ' + JSON.stringify(res[i]));
W
wyuanchao 已提交
297 298 299 300 301
            }
        }
    });
  ```

W
wyuanchao 已提交
302
## bundleState.queryBundleActiveStates
W
wyuanchao 已提交
303 304 305 306 307

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

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

W
wyuanchao 已提交
308
**需要权限**:ohos.permission.BUNDLE_ACTIVE_INFO
W
wyuanchao 已提交
309

W
wyuanchao 已提交
310 311 312
**系统能力**:SystemCapability.ResourceSchedule.UsageStatistics.App

**参数**
W
wyuanchao 已提交
313 314 315 316 317 318

  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | begin | number | 是 | 起始时间。|
  | end | number | 是 | 结束时间。|

W
wyuanchao 已提交
319
**返回值**
W
wyuanchao 已提交
320 321 322

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

W
wyuanchao 已提交
325
**示例**
W
wyuanchao 已提交
326

H
houdisheng 已提交
327
  ```js
W
wyuanchao 已提交
328
    bundleState.queryBundleActiveStates(0, 20000000000000).then( res => {
W
wyuanchao 已提交
329
        console.log('BUNDLE_ACTIVE queryBundleActiveStates promise success.');
W
wyuanchao 已提交
330
        for (let i = 0; i < res.length; i++) {
W
wyuanchao 已提交
331 332
            console.log('BUNDLE_ACTIVE queryBundleActiveStates promise number : ' + (i + 1));
            console.log('BUNDLE_ACTIVE queryBundleActiveStates promise result ' + JSON.stringify(res[i]));
W
wyuanchao 已提交
333 334
        }
    }).catch( err => {
W
wyuanchao 已提交
335
        console.log('BUNDLE_ACTIVE queryBundleActiveStates promise failed, because: ' + err.code);
W
wyuanchao 已提交
336 337 338
    });
  ```

W
wyuanchao 已提交
339
## bundleState.queryCurrentBundleActiveStates
W
wyuanchao 已提交
340 341 342

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

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

W
wyuanchao 已提交
345 346 347
**系统能力**:SystemCapability.ResourceSchedule.UsageStatistics.App

**参数**
W
wyuanchao 已提交
348 349 350 351 352

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

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

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

W
wyuanchao 已提交
371
## bundleState.queryCurrentBundleActiveStates
W
wyuanchao 已提交
372 373 374

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

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

W
wyuanchao 已提交
377 378 379
**系统能力**:SystemCapability.ResourceSchedule.UsageStatistics.App

**参数**
W
wyuanchao 已提交
380 381 382 383 384 385

  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | begin | number | 是 | 起始时间。|
  | end | number | 是 | 结束时间。|

W
wyuanchao 已提交
386
**返回值**
W
wyuanchao 已提交
387 388 389

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

W
wyuanchao 已提交
392
**示例**
W
wyuanchao 已提交
393

H
houdisheng 已提交
394
  ```js
W
wyuanchao 已提交
395
    bundleState.queryCurrentBundleActiveStates(0, 20000000000000).then( res => {
W
wyuanchao 已提交
396
        console.log('BUNDLE_ACTIVE queryCurrentBundleActiveStates promise success.');
W
wyuanchao 已提交
397
        for (let i = 0; i < res.length; i++) {
W
wyuanchao 已提交
398 399
            console.log('BUNDLE_ACTIVE queryCurrentBundleActiveStates promise number : ' + (i + 1));
            console.log('BUNDLE_ACTIVE queryCurrentBundleActiveStates promise result ' + JSON.stringify(res[i]));
W
wyuanchao 已提交
400 401
        }
    }).catch( err => {
W
wyuanchao 已提交
402
        console.log('BUNDLE_ACTIVE queryCurrentBundleActiveStates promise failed, because: ' + err.code);
W
wyuanchao 已提交
403 404 405
    });
  ```

H
houdisheng 已提交
406
## bundleState.getRecentlyUsedModules<sup>9+</sup>
H
houdisheng 已提交
407

H
houdisheng 已提交
408
getRecentlyUsedModules(maxNum: number): Promise&lt;Array&lt;BundleActiveModuleInfo&gt;&gt;
H
houdisheng 已提交
409

H
houdisheng 已提交
410
据maxNum,查询FA使用记录,使用Promise形式返回不超过maxNum条FA使用记录,FA使用记录由近及远排序,maxNum最大为1000。
H
houdisheng 已提交
411 412 413 414 415 416 417 418 419

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

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

**参数**

  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
H
houdisheng 已提交
420
  | maxNum | number | 否 | 返回条目的最大数量,若不填写,则默认为1000。|
H
houdisheng 已提交
421 422 423 424 425 426 427 428 429

**返回值**

  | 类型 | 说明 |
  | -------- | -------- |
  | Promise&lt;Array&lt;[BundleActiveModuleInfo](#bundleactivestate)&gt;&gt; | 指定的Promise回调方法。返回不超过maxNum条FA使用记录。|

**示例**

H
houdisheng 已提交
430
  ```js
H
houdisheng 已提交
431 432
    bundleState.getRecentlyUsedModules(this.maxNum).then( res => {
        console.log('BUNDLE_ACTIVE getRecentlyUsedModules promise succeeded');
H
houdisheng 已提交
433
        for (let i = 0; i < res.length; i++) {
H
houdisheng 已提交
434 435
            console.log('BUNDLE_ACTIVE getRecentlyUsedModules promise number : ' + (i + 1));
            console.log('BUNDLE_ACTIVE getRecentlyUsedModules promise result ' + JSON.stringify(res[i]));
H
houdisheng 已提交
436 437
        }
    }).catch( err=> {
H
houdisheng 已提交
438
        console.log('BUNDLE_ACTIVE getRecentlyUsedModules promise failed, because: ' + err.code);
H
houdisheng 已提交
439
    });
H
houdisheng 已提交
440 441 442 443 444 445 446 447 448 449 450

    // 无参数调用方式
    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 已提交
451 452
  ```

H
houdisheng 已提交
453
## bundleState.getRecentlyUsedModules<sup>9+</sup>
H
houdisheng 已提交
454

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

H
houdisheng 已提交
457
查询FA使用记录。使用CallBack形式返回数量最大不超过maxNum设置的值,FA使用记录由近及远排序,maxNum最大为1000。
H
houdisheng 已提交
458 459 460 461 462 463 464 465 466

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

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

**参数**

  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
H
houdisheng 已提交
467
  | maxNum | number | 否 | 返回条目的最大数量,若不填写,则默认为1000。|
H
houdisheng 已提交
468 469 470 471
  | callback | AsyncCallback&lt;Array&lt;[BundleActiveModuleInfo](#bundleactivestate)&gt;&gt; | 是 | 指定的CallBack回调方法。返回不超过maxNum条FA使用记录。|

**示例**

H
houdisheng 已提交
472
  ```js
H
houdisheng 已提交
473
    bundleState.getRecentlyUsedModules(this.maxNum,(err, res) => {
H
houdisheng 已提交
474
        if(err) {
H
houdisheng 已提交
475
            console.log('BUNDLE_ACTIVE getRecentlyUsedModules callback failed, because: ' + err.code);
H
houdisheng 已提交
476
        } else {
H
houdisheng 已提交
477
            console.log('BUNDLE_ACTIVE getRecentlyUsedModules callback succeeded.');
H
houdisheng 已提交
478
                for (let i = 0; i < res.length; i++) {
H
houdisheng 已提交
479 480
                    console.log('BUNDLE_ACTIVE getRecentlyUsedModules callback number : ' + (i + 1));
                    console.log('BUNDLE_ACTIVE getRecentlyUsedModules callback result ' + JSON.stringify(res[i]));
H
houdisheng 已提交
481
                }
H
houdisheng 已提交
482
        }
H
houdisheng 已提交
483
    });
H
houdisheng 已提交
484 485 486 487 488 489 490 491 492 493 494 495 496

    // 无参数调用方式
    stats.getRecentlyUsedModules((err, res) => {
        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 已提交
497 498
  ```

H
houdisheng 已提交
499 500
## BundleActiveModuleInfo<sup>9+</sup>
FA的使用信息的属性集合。
H
houdisheng 已提交
501 502 503 504 505 506 507 508 509 510 511

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

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| deviceId | string | 是 | FA所属deviceId。|
| bundleName | string | 是 | FA所属应用包名。|
| moduleName | string | 是 | FA所属module名。|
| abilityName | string | 是 | FA的MainAbility名。|
| appLabelId | number | 是 | FA的应用labelId。|
| labelId | number | 是 | FA所属module的labelId。|
H
houdisheng 已提交
512
| descriptionId | number | 是 | FA所属的应用descriptionId。|
H
houdisheng 已提交
513 514 515 516 517 518 519
| abilityLableId | number | 是 | FA的MainAbility labelId。|
| abilityDescriptionId | number | 是 | FA的MainAbility descriptionId。|
| abilityIconId | number | 是 | FA的MainAbility iconId。|
| launchedCount | number | 是 | FA的启动次数。|
| lastModuleUsedTime | number | 是 | FA的上一次使用时间。|
| formRecords | Array<BundleActiveFormInfo> | 是 | FA中卡片的使用记录。|

H
houdisheng 已提交
520 521
## BundleActiveFormInfo<sup>9+</sup>
FA卡片的使用信息的属性集合。
H
houdisheng 已提交
522 523 524 525 526 527 528 529 530 531 532

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

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| formName | number | 是 | 卡片名称。|
| formDimension | number | 是 | 卡片尺寸。|
| formId | number | 是 | 卡片Id。|
| formLastUsedTime | number | 是 | 卡片的上一次点击时间。|
| count | number | 是 | 卡片的点击次数。|

W
wyuanchao 已提交
533 534
## BundleStateInfo
提供应用使用时长的具体信息。
W
wyuanchao 已提交
535

W
wyuanchao 已提交
536
### 属性
W
wyuanchao 已提交
537

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

W
wyuanchao 已提交
540 541 542 543 544
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| bundleName | string | 是 | 应用包名。|
| abilityPrevAccessTime | number | 是 | 应用最后一次使用的时间。|
| abilityInFgTotalTime | number | 是 | 应用在前台使用的总时间。|
W
wyuanchao 已提交
545 546 547 548 549 550
| 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版本中提供使用支持。|
W
wyuanchao 已提交
551
| infosEndTime | number | 否 | BundleActiveInfo对象中最后一条应用使用统计的记录时间。<br>本接口在OpenHarmony 3.1 Release版本仅为接口定义,暂不支持使用。接口将在OpenHarmony 3.1 MR版本中提供使用支持。|
W
wyuanchao 已提交
552

W
wyuanchao 已提交
553
### merge
W
wyuanchao 已提交
554

W
wyuanchao 已提交
555
merge(toMerge: BundleStateInfo): void
W
wyuanchao 已提交
556 557 558

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

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

W
wyuanchao 已提交
561 562 563 564 565 566
**系统能力**:SystemCapability.ResourceSchedule.UsageStatistics.App

**参数**

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

W
wyuanchao 已提交
569
## BundleActiveState
W
wyuanchao 已提交
570

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

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

W
wyuanchao 已提交
575 576 577 578 579
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| bundleName | string | 是 | 应用包名。|
| stateType | number | 是 | 应用事件类型。|
| stateOccurredTime | number | 是 | 应用事件发生的时间戳。|
W
wyuanchao 已提交
580 581 582
| 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 已提交
583

W
wyuanchao 已提交
584
## BundleActiveInfoResponse
W
wyuanchao 已提交
585

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

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

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

W
wyuanchao 已提交
594
## IntervalType
W
wyuanchao 已提交
595

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

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

W
wyuanchao 已提交
600 601
|名称    |默认值    |说明|
| -------- | -------- | -------- |
W
wyuanchao 已提交
602
| BY_OPTIMIZED | 0 | 表示系统自行判断最合适的查询类型(天、周、月、年)去查询指定时间段间隔的应用使用时长信息。|
W
wyuanchao 已提交
603 604 605 606
| BY_DAILY | 1 | 表示系统按照天去查询指定时间段间隔的应用使用时长信息。|
| BY_WEEKLY | 2 | 表示系统按照周去查询指定时间段间隔的应用使用时长信息。|
| BY_MONTHLY | 3 | 表示系统按照月去查询指定时间段间隔的应用使用时长信息。|
| BY_ANNUALLY | 4 | 表示系统按照年去查询指定时间段间隔的应用使用时长信息。|