You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

能否获取Android工作配置文件中应用的使用统计数据?

如何获取工作配置文件的应用使用统计数据

可以实现获取工作配置文件的应用使用统计数据,但需要满足权限要求并调整代码逻辑,具体如下:

1. 申请必要权限

除了主配置文件所需的android.permission.PACKAGE_USAGE_STATS权限,还需在AndroidManifest.xml中添加跨配置文件访问的系统级权限:

<uses-permission android:name="android.permission.INTERACT_ACROSS_PROFILES" />

注意:该权限仅对企业MDM(移动设备管理)应用或拥有系统签名的应用开放,普通第三方应用需由MDM应用授予权限才能使用。

2. 获取工作配置文件的Context并查询数据

要访问工作配置文件的统计数据,需先获取对应配置文件的Context实例,再通过该实例调用UsageStatsManager:

val profileManager = ctx.getSystemService(Context.USER_SERVICE) as UserManager
// 获取所有已注册的工作配置文件(工作配置文件属于managed profile类型)
val workUsers = profileManager.getProfiles(UserManager.FLAG_MANAGED_PROFILE)
if (workUsers.isNotEmpty()) {
    val workUserId = workUsers[0].id
    // 创建工作配置文件的Context
    val workCtx = ctx.createPackageContextAsUser(ctx.packageName, 0, UserHandle.of(workUserId))
    // 初始化工作配置文件的UsageStatsManager
    val workUsageStatsManager = workCtx.getSystemService(Context.USAGE_STATS_SERVICE) as UsageStatsManager
    
    // 执行和主配置文件相同的查询逻辑
    val currentTime = System.currentTimeMillis()
    val workEvents = workUsageStatsManager.queryEvents(currentTime - sec * 1000, currentTime)
    
    while (workEvents.hasNextEvent()) {
        val event = UsageEvents.Event()
        workEvents.getNextEvent(event)
        // 处理工作配置文件的应用使用事件数据
    }
}

3. 关键限制说明

  • 普通第三方应用无法直接获取工作配置文件的访问权限,必须依托企业MDM框架授权。
  • Android 10及以上版本对跨配置文件访问的管控更严格,需确保应用符合企业管理应用的规范要求。

内容的提问来源于stack exchange,提问作者aj3423

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.25 04:43:18