UsageStatsManager.getAppStandbyBucket(): неразрешенный метод

Я пытаюсь получить доступ к резервной корзине, в которой сейчас находится мое приложение, вызывая UsageStatsManager.getAppStandbyBucket() в своей деятельности, но метод getAppStandbyBucket() не разрешен. В документах указано, что метод является общедоступным. Я убедился, что мои compilesdk и targetdk установлены на 28. Мои инструменты сборки также обновлены.

Изменить: это не дубликат. Мне нужно было получить доступ к приложению, чтобы иметь возможность получить UsageStatsManager - см. мой ответ ниже


person CacheMeOutside    schedule 29.03.2019    source источник


Ответы (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)
}
person CacheMeOutside    schedule 30.03.2019