提交 81376443 编写于 作者: W wyuanchao

device-usage-statistics

Signed-off-by: Nwyuanchao <wangyuanchao5@huawei.com>
上级 cc934fe0
## 设备使用信息统计
### 权限
## 场景介绍
ohos.permission.BUNDLE_ACTIVE_INFO
设备使用信息统计,包括app usage/notification usage/system usage等使用统计。例如应用使用信息统计,用于保存和查询应用使用详情(app usage)、事件日志数据(event log)、应用分组(bundle group)情况。
部件缓存的应用记录(使用历史统计和使用事件记录)会在事件上报后30分钟内刷新到数据库持久化保存。
## 接口说明
注册相关接口包导入:
```js
import stats from '@ohos.usagestatskit';
```
**表1** 设备使用信息统计主要接口
| 接口名 | 描述 |
| -------- | -------- |
| function queryBundleActiveStates(begin:number, end:number, callback:AsyncCallback&lt;Array&lt;BundleActiveState&gt;&gt;):void | 通过指定起始和结束时间查询所有应用的事件集合 |
| function queryBundleStateInfos(begin:number, end:number, callback:AsyncCallback&lt;BundleStateInfoResponse&gt;):void | 通过指定起始和结束时间查询应用使用时长统计信息 |
| function queryCurrentBundleActiveStates(begin:number, end:number, callback:AsyncCallback&lt;Array&lt;BundleActiveState&gt;&gt;):void | 通过指定起始和结束时间查询当前应用的事件集合 |
| function queryBundleStateInfoByInterval(byInterval:intervalType, begin:number, end:number, callback:AsyncCallback&lt;Array&lt;BundleStateInfo&gt;&gt;):void | 通过指定时间段间隔(天、周、月、年)查询应用使用时长统计信息 |
| function queryAppUsagePriorityGroup(callback:AsyncCallback&lt;number&gt;):void | 查询(返回)当前调用者应用的使用优先级群组 |
| function isIdleState(bundleName:string, callback:AsyncCallback&lt;boolean&gt;):void | 判断指定Bundle Name的应用当前是否是空闲状态 |
| function queryBundleActiveStates(begin:number, end:number, callback:AsyncCallback&lt;Array&lt;BundleActiveState&gt;&gt;):void | 通过指定起始和结束时间查询所有应用的事件集合 |
| function queryBundleStateInfos(begin:number, end:number, callback:AsyncCallback&lt;BundleStateInfoResponse&gt;):void | 通过指定起始和结束时间查询应用使用时长统计信息 |
| function queryCurrentBundleActiveStates(begin:number, end:number, callback:AsyncCallback&lt;Array&lt;BundleActiveState&gt;&gt;):void | 通过指定起始和结束时间查询当前应用的事件集合 |
| function queryBundleStateInfoByInterval(byInterval:intervalType, begin:number, end:number, callback:AsyncCallback&lt;Array&lt;BundleStateInfo&gt;&gt;):void | 通过指定时间段间隔(天、周、月、年)查询应用使用时长统计信息 |
| function queryAppUsagePriorityGroup(callback:AsyncCallback&lt;number&gt;):void | 查询(返回)当前调用者应用的使用优先级群组 |
| function isIdleState(bundleName:string, callback:AsyncCallback&lt;boolean&gt;):void | 判断指定Bundle Name的应用当前是否是空闲状态 |
## 开发步骤
1. 在config.json文件中配置设备使用信息统计权限
1. 在config.json文件中配置设备使用信息统计权限
```json
"module": {
......@@ -31,7 +38,7 @@ ohos.permission.BUNDLE_ACTIVE_INFO
}
```
2. 通过指定起始和结束时间查询所有应用的事件集合
2. 通过指定起始和结束时间查询所有应用的事件集合
```js
import stats from '@ohos.usagestatskit'
......@@ -65,7 +72,7 @@ ohos.permission.BUNDLE_ACTIVE_INFO
}, 500);
```
3. 通过指定起始和结束时间查询应用使用时长统计信息
3. 通过指定起始和结束时间查询应用使用时长统计信息
```js
import stats from '@ohos.usagestatskit'
......@@ -101,7 +108,7 @@ ohos.permission.BUNDLE_ACTIVE_INFO
}, 500);
```
4. 通过指定起始和结束时间查询当前应用的事件集合
4. 通过指定起始和结束时间查询当前应用的事件集合
```js
import stats from '@ohos.usagestatskit'
......@@ -135,7 +142,7 @@ ohos.permission.BUNDLE_ACTIVE_INFO
}, 500);
```
5. 通过指定时间段间隔(天、周、月、年)查询应用使用时长统计信息
5. 通过指定时间段间隔(天、周、月、年)查询应用使用时长统计信息
```js
import stats from '@ohos.usagestatskit'
......@@ -169,7 +176,7 @@ ohos.permission.BUNDLE_ACTIVE_INFO
}, 500);
```
6. 查询(返回)当前调用者应用的使用优先级群组
6. 查询(返回)当前调用者应用的使用优先级群组
```js
import stats from '@ohos.usagestatskit'
......@@ -193,7 +200,7 @@ ohos.permission.BUNDLE_ACTIVE_INFO
}, 500);
```
7. 判断指定Bundle Name的应用当前是否是空闲状态
7. 判断指定Bundle Name的应用当前是否是空闲状态
```js
import stats from '@ohos.usagestatskit'
......
# 设备使用信息统计概述
设备使用信息统计,包括app usage/notification usage/system usage等使用统计。例如应用使用信息统计,用于保存和查询应用使用详情(app usage)、事件日志数据(event log)、应用分组(bundle group)情况。部件缓存的应用记录(使用历史统计和使用事件记录)会在事件上报后30分钟内刷新到数据库持久化保存。
设备使用信息统计,包括app usage/notification usage/system usage等使用统计,目前只支持app usage使用统计。应用使用信息统计,用于保存和查询应用使用详情(app usage)、事件日志数据(event log)、应用分组(bundle group)情况。部件缓存的应用记录(使用历史统计和使用事件记录)会在事件上报后30分钟内刷新到数据库持久化保存。
## 设备使用信息统计功能说明
设备使用信息统计接口众多,以应用使用详情(app usage)接口为例,介绍接口逻辑。
设备使用信息统计接口众多,目前只支持app usage使用统计,接下来介绍下应用使用详情(app usage)的接口逻辑。
- **应用使用统计信息落盘时机**
>1. 每隔30分钟触发一次刷新;
......
......@@ -11,12 +11,11 @@ import stats from '@ohos.usagestatskit'
```
## usagestatskit.isIdleState
isIdleState(bundleName: string, callback: AsyncCallback<boolean>): void
- **系统能力**
SystemCapability.ResourceSchedule.UsageStatistics.AppGroup
- **接口**
isIdleState(bundleName: string, callback: AsyncCallback<boolean>): void
- **说明**
判断指定bundleName的应用当前是否是空闲状态,使用Callback形式返回。
......@@ -41,12 +40,11 @@ isIdleState(bundleName: string, callback: AsyncCallback<boolean>): void
```
## usagestatskit.isIdleState
isIdleState(bundleName: string): Promise<boolean>;
- **系统能力**
SystemCapability.ResourceSchedule.UsageStatistics.AppGroup
- **接口**
isIdleState(bundleName: string): Promise<boolean>;
- **说明**
判断指定bundleName的应用当前是否是空闲状态,使用Promise形式返回。
......@@ -73,12 +71,11 @@ isIdleState(bundleName: string): Promise<boolean>;
```
## usagestatskit.queryAppUsagePriorityGroup
queryAppUsagePriorityGroup(callback: AsyncCallback<number>): void
- **系统能力**
SystemCapability.ResourceSchedule.UsageStatistics.AppGroup
- **接口**
queryAppUsagePriorityGroup(callback: AsyncCallback<number>): void
- **说明**
查询(返回)当前调用者应用的使用优先级群组,使用Callback形式返回。
......@@ -101,12 +98,11 @@ queryAppUsagePriorityGroup(callback: AsyncCallback<number>): void
```
## usagestatskit.queryAppUsagePriorityGroup
queryAppUsagePriorityGroup(): Promise<number>
- **系统能力**
SystemCapability.ResourceSchedule.UsageStatistics.AppGroup
- **接口**
queryAppUsagePriorityGroup(): Promise<number>
- **说明**
查询(返回)当前调用者应用的使用优先级群组,使用Promise形式返回。
......@@ -127,12 +123,11 @@ queryAppUsagePriorityGroup(): Promise<number>
```
## usagestatskit.queryBundleStateInfos
queryBundleStateInfos(begin: number, end: number, callback: AsyncCallback<BundleActiveInfoResponse>): void
- **系统能力**
SystemCapability.ResourceSchedule.UsageStatistics.App
- **接口**
queryBundleStateInfos(begin: number, end: number, callback: AsyncCallback<BundleActiveInfoResponse>): void
- **说明**
通过指定起始和结束时间查询应用使用时长统计信息,使用Callback形式返回。
......@@ -163,12 +158,11 @@ queryBundleStateInfos(begin: number, end: number, callback: AsyncCallback<Bundle
```
## usagestatskit.queryBundleStateInfos
queryBundleStateInfos(begin: number, end: number): Promise<BundleActiveInfoResponse>
- **系统能力**
SystemCapability.ResourceSchedule.UsageStatistics.App
- **接口**
queryBundleStateInfos(begin: number, end: number): Promise<BundleActiveInfoResponse>
- **说明**
通过指定起始和结束时间查询应用使用时长统计信息,使用Promise形式返回。
......@@ -202,12 +196,11 @@ queryBundleStateInfos(begin: number, end: number): Promise<BundleActiveInfoRespo
```
## usagestatskit.queryBundleStateInfoByInterval
queryBundleStateInfoByInterval(byInterval: IntervalType, begin: number, end: number, callback: AsyncCallback<Array<BundleStateInfo>>): void
- **系统能力**
SystemCapability.ResourceSchedule.UsageStatistics.App
- **接口**
queryBundleStateInfoByInterval(byInterval: IntervalType, begin: number, end: number, callback: AsyncCallback<Array<BundleStateInfo>>): void
- **说明**
通过指定时间段间隔(天、周、月、年)查询应用使用时长统计信息,使用Callback形式返回。
......@@ -238,12 +231,11 @@ queryBundleStateInfoByInterval(byInterval: IntervalType, begin: number, end: num
```
## usagestatskit.queryBundleStateInfoByInterval
queryBundleStateInfoByInterval(byInterval: IntervalType, begin: number, end: number): Promise<Array<BundleStateInfo>>
- **系统能力**
SystemCapability.ResourceSchedule.UsageStatistics.App
- **接口**
queryBundleStateInfoByInterval(byInterval: IntervalType, begin: number, end: number): Promise<Array<BundleStateInfo>>
- **说明**
通过指定时间段间隔(天、周、月、年)查询应用使用时长统计信息,使用Promise形式返回。
......@@ -277,12 +269,11 @@ queryBundleStateInfoByInterval(byInterval: IntervalType, begin: number, end: num
```
## usagestatskit.queryBundleActiveStates
queryBundleActiveStates(begin: number, end: number, callback: AsyncCallback<Array<BundleActiveState>>): void
- **系统能力**
SystemCapability.ResourceSchedule.UsageStatistics.App
- **接口**
queryBundleActiveStates(begin: number, end: number, callback: AsyncCallback<Array<BundleActiveState>>): void
- **说明**
通过指定起始和结束时间查询所有应用的事件集合,使用Callback形式返回。
......@@ -312,12 +303,11 @@ queryBundleActiveStates(begin: number, end: number, callback: AsyncCallback<Arra
```
## usagestatskit.queryBundleActiveStates
queryBundleActiveStates(begin: number, end: number): Promise<Array<BundleActiveState>>
- **系统能力**
SystemCapability.ResourceSchedule.UsageStatistics.App
- **接口**
queryBundleActiveStates(begin: number, end: number): Promise<Array<BundleActiveState>>
- **说明**
通过指定起始和结束时间查询所有应用的事件集合,使用Promise形式返回。
......@@ -350,12 +340,11 @@ queryBundleActiveStates(begin: number, end: number): Promise<Array<BundleActiveS
```
## usagestatskit.queryCurrentBundleActiveStates
queryCurrentBundleActiveStates(begin: number, end: number, callback: AsyncCallback<Array<BundleActiveState>>): void
- **系统能力**
SystemCapability.ResourceSchedule.UsageStatistics.App
- **接口**
queryCurrentBundleActiveStates(begin: number, end: number, callback: AsyncCallback<Array<BundleActiveState>>): void
- **说明**
通过指定起始和结束时间查询当前应用的事件集合,使用Callback形式返回。
......@@ -385,12 +374,11 @@ queryCurrentBundleActiveStates(begin: number, end: number, callback: AsyncCallba
```
## usagestatskit.queryCurrentBundleActiveStates
queryCurrentBundleActiveStates(begin: number, end: number): Promise<Array<BundleActiveState>>
- **系统能力**
SystemCapability.ResourceSchedule.UsageStatistics.App
- **接口**
queryCurrentBundleActiveStates(begin: number, end: number): Promise<Array<BundleActiveState>>
- **说明**
通过指定起始和结束时间查询当前应用的事件集合,使用Promise形式返回。
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册