提交 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** 设备使用信息统计主要接口 **表1** 设备使用信息统计主要接口
| 接口名 | 描述 | | 接口名 | 描述 |
| -------- | -------- | | -------- | -------- |
| function queryBundleActiveStates(begin:number, end:number, callback:AsyncCallback&lt;Array&lt;BundleActiveState&gt;&gt;):void | 通过指定起始和结束时间查询所有应用的事件集合 | | 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 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 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 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 queryAppUsagePriorityGroup(callback:AsyncCallback&lt;number&gt;):void | 查询(返回)当前调用者应用的使用优先级群组 |
| function isIdleState(bundleName:string, callback:AsyncCallback&lt;boolean&gt;):void | 判断指定Bundle Name的应用当前是否是空闲状态 | | function isIdleState(bundleName:string, callback:AsyncCallback&lt;boolean&gt;):void | 判断指定Bundle Name的应用当前是否是空闲状态 |
## 开发步骤 ## 开发步骤
1. 在config.json文件中配置设备使用信息统计权限 1. 在config.json文件中配置设备使用信息统计权限
```json ```json
"module": { "module": {
...@@ -31,7 +38,7 @@ ohos.permission.BUNDLE_ACTIVE_INFO ...@@ -31,7 +38,7 @@ ohos.permission.BUNDLE_ACTIVE_INFO
} }
``` ```
2. 通过指定起始和结束时间查询所有应用的事件集合 2. 通过指定起始和结束时间查询所有应用的事件集合
```js ```js
import stats from '@ohos.usagestatskit' import stats from '@ohos.usagestatskit'
...@@ -65,7 +72,7 @@ ohos.permission.BUNDLE_ACTIVE_INFO ...@@ -65,7 +72,7 @@ ohos.permission.BUNDLE_ACTIVE_INFO
}, 500); }, 500);
``` ```
3. 通过指定起始和结束时间查询应用使用时长统计信息 3. 通过指定起始和结束时间查询应用使用时长统计信息
```js ```js
import stats from '@ohos.usagestatskit' import stats from '@ohos.usagestatskit'
...@@ -101,7 +108,7 @@ ohos.permission.BUNDLE_ACTIVE_INFO ...@@ -101,7 +108,7 @@ ohos.permission.BUNDLE_ACTIVE_INFO
}, 500); }, 500);
``` ```
4. 通过指定起始和结束时间查询当前应用的事件集合 4. 通过指定起始和结束时间查询当前应用的事件集合
```js ```js
import stats from '@ohos.usagestatskit' import stats from '@ohos.usagestatskit'
...@@ -135,7 +142,7 @@ ohos.permission.BUNDLE_ACTIVE_INFO ...@@ -135,7 +142,7 @@ ohos.permission.BUNDLE_ACTIVE_INFO
}, 500); }, 500);
``` ```
5. 通过指定时间段间隔(天、周、月、年)查询应用使用时长统计信息 5. 通过指定时间段间隔(天、周、月、年)查询应用使用时长统计信息
```js ```js
import stats from '@ohos.usagestatskit' import stats from '@ohos.usagestatskit'
...@@ -169,7 +176,7 @@ ohos.permission.BUNDLE_ACTIVE_INFO ...@@ -169,7 +176,7 @@ ohos.permission.BUNDLE_ACTIVE_INFO
}, 500); }, 500);
``` ```
6. 查询(返回)当前调用者应用的使用优先级群组 6. 查询(返回)当前调用者应用的使用优先级群组
```js ```js
import stats from '@ohos.usagestatskit' import stats from '@ohos.usagestatskit'
...@@ -193,7 +200,7 @@ ohos.permission.BUNDLE_ACTIVE_INFO ...@@ -193,7 +200,7 @@ ohos.permission.BUNDLE_ACTIVE_INFO
}, 500); }, 500);
``` ```
7. 判断指定Bundle Name的应用当前是否是空闲状态 7. 判断指定Bundle Name的应用当前是否是空闲状态
```js ```js
import stats from '@ohos.usagestatskit' 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分钟触发一次刷新; >1. 每隔30分钟触发一次刷新;
......
...@@ -11,12 +11,11 @@ import stats from '@ohos.usagestatskit' ...@@ -11,12 +11,11 @@ import stats from '@ohos.usagestatskit'
``` ```
## usagestatskit.isIdleState ## usagestatskit.isIdleState
isIdleState(bundleName: string, callback: AsyncCallback<boolean>): void
- **系统能力** - **系统能力**
SystemCapability.ResourceSchedule.UsageStatistics.AppGroup SystemCapability.ResourceSchedule.UsageStatistics.AppGroup
- **接口**
isIdleState(bundleName: string, callback: AsyncCallback<boolean>): void
- **说明** - **说明**
判断指定bundleName的应用当前是否是空闲状态,使用Callback形式返回。 判断指定bundleName的应用当前是否是空闲状态,使用Callback形式返回。
...@@ -41,12 +40,11 @@ isIdleState(bundleName: string, callback: AsyncCallback<boolean>): void ...@@ -41,12 +40,11 @@ isIdleState(bundleName: string, callback: AsyncCallback<boolean>): void
``` ```
## usagestatskit.isIdleState ## usagestatskit.isIdleState
isIdleState(bundleName: string): Promise<boolean>;
- **系统能力** - **系统能力**
SystemCapability.ResourceSchedule.UsageStatistics.AppGroup SystemCapability.ResourceSchedule.UsageStatistics.AppGroup
- **接口**
isIdleState(bundleName: string): Promise<boolean>;
- **说明** - **说明**
判断指定bundleName的应用当前是否是空闲状态,使用Promise形式返回。 判断指定bundleName的应用当前是否是空闲状态,使用Promise形式返回。
...@@ -73,12 +71,11 @@ isIdleState(bundleName: string): Promise<boolean>; ...@@ -73,12 +71,11 @@ isIdleState(bundleName: string): Promise<boolean>;
``` ```
## usagestatskit.queryAppUsagePriorityGroup ## usagestatskit.queryAppUsagePriorityGroup
queryAppUsagePriorityGroup(callback: AsyncCallback<number>): void
- **系统能力** - **系统能力**
SystemCapability.ResourceSchedule.UsageStatistics.AppGroup SystemCapability.ResourceSchedule.UsageStatistics.AppGroup
- **接口**
queryAppUsagePriorityGroup(callback: AsyncCallback<number>): void
- **说明** - **说明**
查询(返回)当前调用者应用的使用优先级群组,使用Callback形式返回。 查询(返回)当前调用者应用的使用优先级群组,使用Callback形式返回。
...@@ -101,12 +98,11 @@ queryAppUsagePriorityGroup(callback: AsyncCallback<number>): void ...@@ -101,12 +98,11 @@ queryAppUsagePriorityGroup(callback: AsyncCallback<number>): void
``` ```
## usagestatskit.queryAppUsagePriorityGroup ## usagestatskit.queryAppUsagePriorityGroup
queryAppUsagePriorityGroup(): Promise<number>
- **系统能力** - **系统能力**
SystemCapability.ResourceSchedule.UsageStatistics.AppGroup SystemCapability.ResourceSchedule.UsageStatistics.AppGroup
- **接口**
queryAppUsagePriorityGroup(): Promise<number>
- **说明** - **说明**
查询(返回)当前调用者应用的使用优先级群组,使用Promise形式返回。 查询(返回)当前调用者应用的使用优先级群组,使用Promise形式返回。
...@@ -127,12 +123,11 @@ queryAppUsagePriorityGroup(): Promise<number> ...@@ -127,12 +123,11 @@ queryAppUsagePriorityGroup(): Promise<number>
``` ```
## usagestatskit.queryBundleStateInfos ## usagestatskit.queryBundleStateInfos
queryBundleStateInfos(begin: number, end: number, callback: AsyncCallback<BundleActiveInfoResponse>): void
- **系统能力** - **系统能力**
SystemCapability.ResourceSchedule.UsageStatistics.App SystemCapability.ResourceSchedule.UsageStatistics.App
- **接口**
queryBundleStateInfos(begin: number, end: number, callback: AsyncCallback<BundleActiveInfoResponse>): void
- **说明** - **说明**
通过指定起始和结束时间查询应用使用时长统计信息,使用Callback形式返回。 通过指定起始和结束时间查询应用使用时长统计信息,使用Callback形式返回。
...@@ -163,12 +158,11 @@ queryBundleStateInfos(begin: number, end: number, callback: AsyncCallback<Bundle ...@@ -163,12 +158,11 @@ queryBundleStateInfos(begin: number, end: number, callback: AsyncCallback<Bundle
``` ```
## usagestatskit.queryBundleStateInfos ## usagestatskit.queryBundleStateInfos
queryBundleStateInfos(begin: number, end: number): Promise<BundleActiveInfoResponse>
- **系统能力** - **系统能力**
SystemCapability.ResourceSchedule.UsageStatistics.App SystemCapability.ResourceSchedule.UsageStatistics.App
- **接口**
queryBundleStateInfos(begin: number, end: number): Promise<BundleActiveInfoResponse>
- **说明** - **说明**
通过指定起始和结束时间查询应用使用时长统计信息,使用Promise形式返回。 通过指定起始和结束时间查询应用使用时长统计信息,使用Promise形式返回。
...@@ -202,12 +196,11 @@ queryBundleStateInfos(begin: number, end: number): Promise<BundleActiveInfoRespo ...@@ -202,12 +196,11 @@ queryBundleStateInfos(begin: number, end: number): Promise<BundleActiveInfoRespo
``` ```
## usagestatskit.queryBundleStateInfoByInterval ## usagestatskit.queryBundleStateInfoByInterval
queryBundleStateInfoByInterval(byInterval: IntervalType, begin: number, end: number, callback: AsyncCallback<Array<BundleStateInfo>>): void
- **系统能力** - **系统能力**
SystemCapability.ResourceSchedule.UsageStatistics.App SystemCapability.ResourceSchedule.UsageStatistics.App
- **接口**
queryBundleStateInfoByInterval(byInterval: IntervalType, begin: number, end: number, callback: AsyncCallback<Array<BundleStateInfo>>): void
- **说明** - **说明**
通过指定时间段间隔(天、周、月、年)查询应用使用时长统计信息,使用Callback形式返回。 通过指定时间段间隔(天、周、月、年)查询应用使用时长统计信息,使用Callback形式返回。
...@@ -238,12 +231,11 @@ queryBundleStateInfoByInterval(byInterval: IntervalType, begin: number, end: num ...@@ -238,12 +231,11 @@ queryBundleStateInfoByInterval(byInterval: IntervalType, begin: number, end: num
``` ```
## usagestatskit.queryBundleStateInfoByInterval ## usagestatskit.queryBundleStateInfoByInterval
queryBundleStateInfoByInterval(byInterval: IntervalType, begin: number, end: number): Promise<Array<BundleStateInfo>>
- **系统能力** - **系统能力**
SystemCapability.ResourceSchedule.UsageStatistics.App SystemCapability.ResourceSchedule.UsageStatistics.App
- **接口**
queryBundleStateInfoByInterval(byInterval: IntervalType, begin: number, end: number): Promise<Array<BundleStateInfo>>
- **说明** - **说明**
通过指定时间段间隔(天、周、月、年)查询应用使用时长统计信息,使用Promise形式返回。 通过指定时间段间隔(天、周、月、年)查询应用使用时长统计信息,使用Promise形式返回。
...@@ -277,12 +269,11 @@ queryBundleStateInfoByInterval(byInterval: IntervalType, begin: number, end: num ...@@ -277,12 +269,11 @@ queryBundleStateInfoByInterval(byInterval: IntervalType, begin: number, end: num
``` ```
## usagestatskit.queryBundleActiveStates ## usagestatskit.queryBundleActiveStates
queryBundleActiveStates(begin: number, end: number, callback: AsyncCallback<Array<BundleActiveState>>): void
- **系统能力** - **系统能力**
SystemCapability.ResourceSchedule.UsageStatistics.App SystemCapability.ResourceSchedule.UsageStatistics.App
- **接口**
queryBundleActiveStates(begin: number, end: number, callback: AsyncCallback<Array<BundleActiveState>>): void
- **说明** - **说明**
通过指定起始和结束时间查询所有应用的事件集合,使用Callback形式返回。 通过指定起始和结束时间查询所有应用的事件集合,使用Callback形式返回。
...@@ -312,12 +303,11 @@ queryBundleActiveStates(begin: number, end: number, callback: AsyncCallback<Arra ...@@ -312,12 +303,11 @@ queryBundleActiveStates(begin: number, end: number, callback: AsyncCallback<Arra
``` ```
## usagestatskit.queryBundleActiveStates ## usagestatskit.queryBundleActiveStates
queryBundleActiveStates(begin: number, end: number): Promise<Array<BundleActiveState>>
- **系统能力** - **系统能力**
SystemCapability.ResourceSchedule.UsageStatistics.App SystemCapability.ResourceSchedule.UsageStatistics.App
- **接口**
queryBundleActiveStates(begin: number, end: number): Promise<Array<BundleActiveState>>
- **说明** - **说明**
通过指定起始和结束时间查询所有应用的事件集合,使用Promise形式返回。 通过指定起始和结束时间查询所有应用的事件集合,使用Promise形式返回。
...@@ -350,12 +340,11 @@ queryBundleActiveStates(begin: number, end: number): Promise<Array<BundleActiveS ...@@ -350,12 +340,11 @@ queryBundleActiveStates(begin: number, end: number): Promise<Array<BundleActiveS
``` ```
## usagestatskit.queryCurrentBundleActiveStates ## usagestatskit.queryCurrentBundleActiveStates
queryCurrentBundleActiveStates(begin: number, end: number, callback: AsyncCallback<Array<BundleActiveState>>): void
- **系统能力** - **系统能力**
SystemCapability.ResourceSchedule.UsageStatistics.App SystemCapability.ResourceSchedule.UsageStatistics.App
- **接口**
queryCurrentBundleActiveStates(begin: number, end: number, callback: AsyncCallback<Array<BundleActiveState>>): void
- **说明** - **说明**
通过指定起始和结束时间查询当前应用的事件集合,使用Callback形式返回。 通过指定起始和结束时间查询当前应用的事件集合,使用Callback形式返回。
...@@ -385,12 +374,11 @@ queryCurrentBundleActiveStates(begin: number, end: number, callback: AsyncCallba ...@@ -385,12 +374,11 @@ queryCurrentBundleActiveStates(begin: number, end: number, callback: AsyncCallba
``` ```
## usagestatskit.queryCurrentBundleActiveStates ## usagestatskit.queryCurrentBundleActiveStates
queryCurrentBundleActiveStates(begin: number, end: number): Promise<Array<BundleActiveState>>
- **系统能力** - **系统能力**
SystemCapability.ResourceSchedule.UsageStatistics.App SystemCapability.ResourceSchedule.UsageStatistics.App
- **接口**
queryCurrentBundleActiveStates(begin: number, end: number): Promise<Array<BundleActiveState>>
- **说明** - **说明**
通过指定起始和结束时间查询当前应用的事件集合,使用Promise形式返回。 通过指定起始和结束时间查询当前应用的事件集合,使用Promise形式返回。
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册