Я пытаюсь определить, какое приложение в настоящее время находится на переднем плане, используя Usagestatsmanager. Моя реализация работает нормально в большинстве случаев, но возникает проблема: < /p>
Когда приложение сведено к минимуму (подключено к недавнему представлению приложений), а затем вновь открыто Usagestatsmanager регистрирует пусковую установку вместо фактического Приложение переднего плана. Приложение текущего переднего плана: < /p>
val mUsageStatsManager = context.getSystemService(Service.USAGE_STATS_SERVICE) as UsageStatsManager
val time = System.currentTimeMillis()
// Query usage events for the past hour
val usageEvents = mUsageStatsManager.queryEvents(time - 3600 * 1000, time)
var lastForegroundApp: String? = null
// Iterate through events to find the latest MOVE_TO_FOREGROUND
while (usageEvents.hasNextEvent()) {
usageEvents.getNextEvent(event)
if (event.eventType == UsageEvents.Event.MOVE_TO_FOREGROUND) {
lastForegroundApp = event.packageName
}
}
< /code>
Это работает хорошо, за исключением случаев, когда приложение вновь открывается с недавнего экрана приложений. В этом случае, наконец, неверно возвращает запуск или мое собственное приложение вместо реального приложения на переднем плане. < /P>
Есть ли более надежный способ обнаружить правильное приложение переднего плана в этом сценарии? /п>
Подробнее здесь: https://stackoverflow.com/questions/793 ... nimization
UsageStatsManager возвращает пусковую установку вместо приложения на переднем плане после минимизации ⇐ Android
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение