1# @ohos.bundleState (设备使用信息统计)(系统接口)
2
3本模块提供设备使用信息统计能力。
4
5设备使用信息统计,系统应用可调用接口实现如下功能:
6
7- 查询设备上各应用在不同时间段的使用时长、各应用的事件(前台、后台、长时任务开始、长时任务结束)信息及各应用的通知次数信息。
8- 查询应用分组信息(仅限自身应用)。
9- 查询应用空闲状态(其他应用和自身应用)。
10
11> **说明:**
12>
13> 从API version9开始,该接口不再维护,推荐使用新接口[@ohos.resourceschedule.usageStatistics (设备使用信息统计)(系统接口)](js-apis-resourceschedule-deviceUsageStatistics-sys.md)
14>
15> 本模块首批接口从API version 7开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
16>
17> 本模块为系统接口,其他公开接口请参见[@ohos.bundleState (设备使用信息统计)](js-apis-deviceUsageStatistics.md)。
18
19## 导入模块
20
21```js
22import bundleState from '@ohos.bundleState'
23```
24
25## bundleState.queryBundleStateInfos
26
27queryBundleStateInfos(begin: number, end: number, callback: AsyncCallback<BundleActiveInfoResponse>): void
28
29通过指定起始和结束时间查询应用使用时长统计信息,使用Callback形式返回。
30
31**需要权限**:ohos.permission.BUNDLE_ACTIVE_INFO
32
33**系统能力**:SystemCapability.ResourceSchedule.UsageStatistics.App
34
35**系统API**:此接口为系统接口,三方应用不支持调用。
36
37**参数**:
38
39| 参数名      | 类型                                       | 必填   | 说明                                      |
40| -------- | ---------------------------------------- | ---- | --------------------------------------- |
41| begin    | number                                   | 是    | 起始时间,单位毫秒。                                   |
42| end      | number                                   | 是    | 结束时间,单位毫秒。                                   |
43| callback | AsyncCallback<[BundleActiveInfoResponse](js-apis-deviceUsageStatistics.md#bundleactiveinforesponse)> | 是    | 指定的callback回调方法。返回指定起始和结束时间内应用使用时长统计信息。 |
44
45**示例**:
46
47```ts
48import { BusinessError } from '@ohos.base';
49
50bundleState.queryBundleStateInfos(0, 20000000000000, (err: BusinessError ,
51  res: bundleState.BundleActiveInfoResponse ) => {
52  if (err) {
53    console.error('BUNDLE_ACTIVE queryBundleStateInfos callback failed, because: ' + err.code);
54  } else {
55    console.log('BUNDLE_ACTIVE queryBundleStateInfos callback success.');
56    console.log('BUNDLE_ACTIVE queryBundleStateInfos callback result ' + JSON.stringify(res));
57  }
58});
59```
60
61## bundleState.queryBundleStateInfos
62
63queryBundleStateInfos(begin: number, end: number): Promise<BundleActiveInfoResponse>
64
65通过指定起始和结束时间查询应用使用时长统计信息,使用Promise形式返回。
66
67**需要权限**:ohos.permission.BUNDLE_ACTIVE_INFO
68
69**系统能力**:SystemCapability.ResourceSchedule.UsageStatistics.App
70
71**系统API**:此接口为系统接口,三方应用不支持调用。
72
73**参数**:
74
75| 参数名   | 类型     | 必填   | 说明    |
76| ----- | ------ | ---- | ----- |
77| begin | number | 是    | 起始时间,单位毫秒。 |
78| end   | number | 是    | 结束时间,单位毫秒。 |
79
80**返回值**:
81
82| 类型                                       | 说明                                     |
83| ---------------------------------------- | -------------------------------------- |
84| Promise<[BundleActiveInfoResponse](js-apis-deviceUsageStatistics.md#bundleactiveinforesponse)> | 指定的Promise回调方法。返回指定起始和结束时间内应用使用时长统计信息。 |
85
86**示例**:
87
88```ts
89import { BusinessError } from '@ohos.base';
90
91bundleState.queryBundleStateInfos(0, 20000000000000).then((res: bundleState.BundleActiveInfoResponse) => {
92  console.log('BUNDLE_ACTIVE queryBundleStateInfos promise success.');
93  console.log('BUNDLE_ACTIVE queryBundleStateInfos promise result ' + JSON.stringify(res));
94}).catch((err: BusinessError) => {
95  console.error('BUNDLE_ACTIVE queryBundleStateInfos promise failed, because: ' + err.code);
96});
97```
98
99## bundleState.queryBundleStateInfoByInterval
100
101queryBundleStateInfoByInterval(byInterval: IntervalType, begin: number, end: number, callback: AsyncCallback<Array<BundleStateInfo>>): void
102
103通过指定时间段间隔(天、周、月、年)查询应用使用时长统计信息,使用Callback形式返回。
104
105**需要权限**:ohos.permission.BUNDLE_ACTIVE_INFO
106
107**系统能力**:SystemCapability.ResourceSchedule.UsageStatistics.App
108
109**系统API**:此接口为系统接口,三方应用不支持调用。
110
111**参数**:
112
113| 参数名        | 类型                                       | 必填   | 说明                                       |
114| ---------- | ---------------------------------------- | ---- | ---------------------------------------- |
115| byInterval | [IntervalType](js-apis-deviceUsageStatistics.md#intervaltype)            | 是    | 查询类型。                                    |
116| begin      | number                                   | 是    | 起始时间,单位毫秒。                                    |
117| end        | number                                   | 是    | 结束时间,单位毫秒。                                    |
118| callback   | AsyncCallback<Array<[BundleStateInfo](js-apis-deviceUsageStatistics.md#bundlestateinfo)>> | 是    | 指定的callback回调方法。返回指定时间段间隔(天、周、月、年)查询应用使用时长统计信息。 |
119
120**示例**:
121
122```ts
123import { BusinessError } from '@ohos.base';
124
125bundleState.queryBundleStateInfoByInterval(bundleState.IntervalType.BY_OPTIMIZED, 0, 20000000000000, (err: BusinessError, res: Array<bundleState.BundleStateInfo>) => {
126  if (err) {
127    console.error('BUNDLE_ACTIVE queryBundleStateInfoByInterval callback failed, because: ' + err.code);
128  } else {
129    console.log('BUNDLE_ACTIVE queryBundleStateInfoByInterval callback success.');
130    for (let i = 0; i < res.length; i++) {
131      console.log('BUNDLE_ACTIVE queryBundleStateInfoByInterval callback number : ' + (i + 1));
132      console.log('BUNDLE_ACTIVE queryBundleStateInfoByInterval callback result ' + JSON.stringify(res[i]));
133    }
134  }
135});
136```
137
138## bundleState.queryBundleStateInfoByInterval
139
140queryBundleStateInfoByInterval(byInterval: IntervalType, begin: number, end: number): Promise&lt;Array&lt;BundleStateInfo&gt;&gt;
141
142通过指定时间段间隔(天、周、月、年)查询应用使用时长统计信息,使用Promise形式返回。
143
144**需要权限**:ohos.permission.BUNDLE_ACTIVE_INFO
145
146**系统能力**:SystemCapability.ResourceSchedule.UsageStatistics.App
147
148**系统API**:此接口为系统接口,三方应用不支持调用。
149
150**参数**:
151
152| 参数名        | 类型                            | 必填   | 说明    |
153| ---------- | ----------------------------- | ---- | ----- |
154| byInterval | [IntervalType](js-apis-deviceUsageStatistics.md#intervaltype) | 是    | 查询类型。 |
155| begin      | number                        | 是    | 起始时间,单位毫秒。 |
156| end        | number                        | 是    | 结束时间,单位毫秒。 |
157
158**返回值**:
159
160| 类型                                       | 说明                                       |
161| ---------------------------------------- | ---------------------------------------- |
162| Promise&lt;Array&lt;[BundleStateInfo](js-apis-deviceUsageStatistics.md#bundlestateinfo)&gt;&gt; | 指定的Promise回调方法。返回指定时间段间隔(天、周、月、年)查询应用使用时长统计信息。 |
163
164**示例**:
165
166```ts
167import { BusinessError } from '@ohos.base';
168
169bundleState.queryBundleStateInfoByInterval(bundleState.IntervalType.BY_OPTIMIZED, 0, 20000000000000).then((res: Array<bundleState.BundleStateInfo>) => {
170  console.log('BUNDLE_ACTIVE queryBundleStateInfoByInterval promise success.');
171  for (let i = 0; i < res.length; i++) {
172    console.log('BUNDLE_ACTIVE queryBundleStateInfoByInterval promise number : ' + (i + 1));
173    console.log('BUNDLE_ACTIVE queryBundleStateInfoByInterval promise result ' + JSON.stringify(res[i]));
174  }
175}).catch((err: BusinessError) => {
176  console.error('BUNDLE_ACTIVE queryBundleStateInfoByInterval promise failed, because: ' + err.code);
177});
178```
179
180## bundleState.queryBundleActiveStates
181
182queryBundleActiveStates(begin: number, end: number, callback: AsyncCallback&lt;Array&lt;BundleActiveState&gt;&gt;): void
183
184通过指定起始和结束时间查询所有应用的事件集合,使用Callback形式返回。
185
186**需要权限**:ohos.permission.BUNDLE_ACTIVE_INFO
187
188**系统能力**:SystemCapability.ResourceSchedule.UsageStatistics.App
189
190**系统API**:此接口为系统接口,三方应用不支持调用。
191
192**参数**:
193
194| 参数名      | 类型                                       | 必填   | 说明                                      |
195| -------- | ---------------------------------------- | ---- | --------------------------------------- |
196| begin    | number                                   | 是    | 起始时间,单位毫秒。                                   |
197| end      | number                                   | 是    | 结束时间,单位毫秒。                                   |
198| callback | AsyncCallback&lt;Array&lt;[BundleActiveState](js-apis-deviceUsageStatistics.md#bundleactivestate)&gt;&gt; | 是    | 指定的callback回调方法。返回指定起始和结束时间查询所有应用的事件集合。 |
199
200**示例**:
201
202```ts
203import { BusinessError } from '@ohos.base';
204
205bundleState.queryBundleActiveStates(0, 20000000000000, (err: BusinessError, res: Array<bundleState.BundleActiveState>) => {
206  if (err) {
207    console.error('BUNDLE_ACTIVE queryBundleActiveStates callback failed, because: ' + err.code);
208  } else {
209    console.log('BUNDLE_ACTIVE queryBundleActiveStates callback success.');
210    for (let i = 0; i < res.length; i++) {
211      console.log('BUNDLE_ACTIVE queryBundleActiveStates callback number : ' + (i + 1));
212      console.log('BUNDLE_ACTIVE queryBundleActiveStates callback result ' + JSON.stringify(res[i]));
213    }
214  }
215});
216```
217
218## bundleState.queryBundleActiveStates
219
220queryBundleActiveStates(begin: number, end: number): Promise&lt;Array&lt;BundleActiveState&gt;&gt;
221
222通过指定起始和结束时间查询所有应用的事件集合,使用Promise形式返回。
223
224**需要权限**:ohos.permission.BUNDLE_ACTIVE_INFO
225
226**系统能力**:SystemCapability.ResourceSchedule.UsageStatistics.App
227
228**系统API**:此接口为系统接口,三方应用不支持调用。
229
230**参数**:
231
232| 参数名   | 类型     | 必填   | 说明    |
233| ----- | ------ | ---- | ----- |
234| begin | number | 是    | 起始时间,单位毫秒。 |
235| end   | number | 是    | 结束时间,单位毫秒。 |
236
237**返回值**:
238
239| 类型                                       | 说明                                     |
240| ---------------------------------------- | -------------------------------------- |
241| Promise&lt;Array&lt;[BundleActiveState](js-apis-deviceUsageStatistics.md#bundleactivestate)&gt;&gt; | 指定的Promise回调方法。返回指定起始和结束时间查询所有应用的事件集合。 |
242
243**示例**:
244
245```ts
246import { BusinessError } from '@ohos.base';
247
248bundleState.queryBundleActiveStates(0, 20000000000000).then((res: Array<bundleState.BundleActiveState>) => {
249  console.log('BUNDLE_ACTIVE queryBundleActiveStates promise success.');
250  for (let i = 0; i < res.length; i++) {
251    console.log('BUNDLE_ACTIVE queryBundleActiveStates promise number : ' + (i + 1));
252    console.log('BUNDLE_ACTIVE queryBundleActiveStates promise result ' + JSON.stringify(res[i]));
253  }
254}).catch((err: BusinessError) => {
255  console.error('BUNDLE_ACTIVE queryBundleActiveStates promise failed, because: ' + err.code);
256});
257```