0

我正在尝试通过调用UsageStatsManager.getAppStandbyBucket()我的活动来访问我的应用程序当前所在的备用存储桶,但该getAppStandbyBucket()方法未解决。文档说该方法是公开的。我确保我的 compilesdk 和 targetsdk 都设置为 28。我的构建工具也是最新的。

编辑:这不是重复的。我需要访问应用程序才能获得 UsageStatsManager - 请参阅下面的答案

4

1 回答 1

1

这是对我有用的代码。如果您不在活动范围内,这是您需要的代码。

private fun getStandByBucketIfAvailable(): Int {
    return if (Build.VERSION.SDK_INT >= 28) {
        getStandByBucket()
    } else {
        0
    }
}

@RequiresApi(Build.VERSION_CODES.P)
private fun getStandByBucket(): Int {
    val usageStatsManager = application.getSystemService(USAGE_STATS_SERVICE) as UsageStatsManager
    return usageStatsManager.appStandbyBucket
}

如果你在一个活动中,你所需要的就是这个

  if (Build.VERSION.SDK_INT >= 28) {
            val usageStatsManager = getSystemService(USAGE_STATS_SERVICE) as UsageStatsManager
            Log.d(TAG, "getAppStandbyBucket():" + usageStatsManager.appStandbyBucket)
}
于 2019-03-30T13:19:15.440 回答