• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1#  设备使用信息统计
2
3### 介绍
4
5本示例使用[@ohos.bundleState](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis-backgroundtasks-kit/js-apis-deviceUsageStatistics.md)相关接口完成设备中应用时长的统计功能。
6
7### 效果预览
8
9|主页|
10|--------------------------------|
11|![](screenshots/devices/main.png)|
12
13使用说明:
14
151.顶部的数据面板展示了最常用的五个应用的使用时间占比情况。
16
172.中部的竖向滑动栏展示了每个应用的使用总时长和最后一次使用的时间。
18
193.底部的横向滑动栏展示了不常用应用列表。
20
21### 工程目录
22```
23entry/src/main/ets/
24|---common
25|   |---FreeApps.ets                     // 不常用应用
26|   |---PanelView.ets                    // 使用时长
27|   |---UsageList.ets                    // 使用列表
28|---entryAbility
29|   |---EntryAbility.ts
30|---model
31|   |---HmsTime.ets                      // 时间
32|   |---Logger.ts                        // 日志工具
33|---pages
34|   |---Index.ets                        // 首页
35|---utils
36|   |---DataSource.ets                   // 资源数据
37```
38### 具体实现
39
40* 该示例使用bundleState接口中isIdleState方法判断指定bundleName的应用当前是否是空闲状态来分类不常用应用列表,queryBundleStateInfos方法通过指定起始和结束时间查询应用使用时长统计信息来获得每个应用的使用总时长。
41* 源码链接:[BundleStateUtil.ets](Library/src/main/ets/utils/BundleStateUtil.ets),[FreeApps.ets](entry/src/main/ets/common/FreeApps.ets),[PanelView.ets](entry/src/main/ets/common/PanelView.ets),[UsageList.ets](entry/src/main/ets/common/UsageList.ets)
42* 接口参考:[@ohos.bundleState](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis-backgroundtasks-kit/js-apis-deviceUsageStatistics.md)
43
44### 相关权限
45
46应用信息权限:[ohos.permission.BUNDLE_ACTIVE_INFO](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/security/AccessToken/permissions-for-system-apps.md#ohospermissionbundle_active_info)
47
48### 依赖
49
50不涉及。
51
52### 约束与限制
53
541.本示例仅支持在标准系统上运行。
55
562.本示例已适配API version 9版本SDK,版本号:3.2.11.9。
57
583.本示例需要使用DevEco Studio 3.1 Beta2 (Build Version: 3.1.0.400, built on April 7, 2023)及以上版本才可编译运行;
59
604.本示例涉及使用系统接口:queryBundleStateInfos(),需要手动替换Full SDK才能编译通过,具体操作可参考[替换指南](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/faqs/full-sdk-switch-guide.md)61
625.本示例所配置的权限为ohos.permission.BUNDLE_ACTIVE_INFO为system_basic级别(相关权限级别可通过[权限定义列表](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/security/AccessToken/permissions-for-system-apps.md)查看),需要手动配置对应级别的权限签名(具体操作可查看[自动化签名方案](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/security/hapsigntool-guidelines.md)63
64### 下载
65如需单独下载本工程,执行如下命令:
66
67```
68git init
69git config core.sparsecheckout true
70echo code/BasicFeature/DeviceUsageStatistics/DeviceUsageStatistics/ > .git/info/sparse-checkout
71git remote add origin https://gitee.com/openharmony/applications_app_samples.git
72git pull origin master
73```