UsageStatsManager.getAppStandbyBucket():未解决的方法

时间:2019-03-29 13:10:05

标签: android android-8.0-oreo androidq

我正在尝试通过在活动中调用UsageStatsManager.getAppStandbyBucket()来访问应用程序当前所在的备用存储桶,但是getAppStandbyBucket()方法未解决。 docs说该方法是公共的。我已经确保将compilesdk和targetsdk都设置为28。我的buildtools也是最新的。

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

1 个答案:

答案 0 :(得分:0)

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

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)
}