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