跳转到内容

开始使用

Terminal window
npm install @capgo/capacitor-android-usagestatsmanager
npx cap sync

将所需权限添加到您的 android/app/src/main/AndroidManifest.xml

<uses-permission android:name="android.permission.PACKAGE_USAGE_STATS" />
<uses-permission android:name="android.permission.QUERY_ALL_PACKAGES" />
import { AndroidUsageStatsManager } from '@capgo/capacitor-android-usagestatsmanager';
// 检查是否授予了权限
const permissionResult = await AndroidUsageStatsManager.isUsageStatsPermissionGranted();
if (!permissionResult.granted) {
// 打开设置以授予权限
await AndroidUsageStatsManager.openUsageStatsSettings();
return;
}
// 查询最近 7 天的使用统计数据
const statsOptions = {
intervalType: 0, // INTERVAL_DAILY
startTime: Date.now() - (7 * 24 * 60 * 60 * 1000), // 7 天前
endTime: Date.now()
};
const usageStats = await AndroidUsageStatsManager.queryAndAggregateUsageStats(statsOptions);
console.log('Usage statistics:', usageStats);
// 获取所有已安装的包
const packages = await AndroidUsageStatsManager.queryAllPackages();
console.log('Installed packages:', packages);
isUsageStatsPermissionGranted() => Promise<{ granted: boolean }>

检查是否授予了 PACKAGE_USAGE_STATS 权限。

返回: Promise<{ granted: boolean }>

openUsageStatsSettings() => Promise<void>

打开用于授予使用统计权限的系统设置页面。

queryAndAggregateUsageStats(options: UsageStatsOptions) => Promise<UsageStatsResult>

查询已安装应用的详细使用统计数据。

参数类型
optionsUsageStatsOptions

返回: Promise<UsageStatsResult>

queryAllPackages() => Promise<PackagesResult>

获取设备上所有已安装包的信息。

返回: Promise<PackagesResult>

属性类型描述
intervalTypenumber间隔类型(0=每日,1=每周,2=每月等)
startTimenumber开始时间(毫秒)
endTimenumber结束时间(毫秒)

包含每个应用的使用统计数据:

  • 应用使用时间和频率
  • 首次和最后一次使用时间
  • 前台总时间
  • 启动次数

包含已安装包的信息:

  • 包名和版本
  • 安装时间
  • 应用标签和图标
  • 系统应用与用户应用

该插件需要无法通过正常的运行时权限请求授予的特殊权限:

  1. PACKAGE_USAGE_STATS:允许访问使用统计数据
  2. QUERY_ALL_PACKAGES:包信息所需(Android 11+)

用户必须通过系统设置手动授予这些权限。使用 openUsageStatsSettings() 将用户引导到适当的设置页面。

  • 在查询使用统计数据之前始终检查权限状态
  • 使用用户友好的消息优雅地处理权限拒绝
  • 收集使用数据时考虑用户隐私
  • 实施适当的数据处理和存储实践
  • 遵循 Google Play 的使用数据收集政策
  • 数字健康应用:监控屏幕时间和应用使用情况
  • 家长控制:跟踪儿童的设备使用情况
  • 生产力应用:分析工作模式和专注时间
  • 分析:了解用户行为和应用参与度