abrufen, wenn ich versuche, die Nutzungsstatistik der UsageStatsManager Abfrage Ich kann die letzte laufende App korrekt abrufen. Wenn ich jedoch die Statusleiste herunter ziehe und eine neue Benachrichtigung erscheint, wird die zuletzt verwendete App (basierend auf UsageStats) auf die der Benachrichtigung geändert. Als Ergebnis bekomme ich falsche Alarme, dass sich die Vordergrundanwendung geändert hat.Android 6.0 Marshmallow UsageStatsManager Problem beim Versuch, Vordergrund App
Ich kann nicht scheinen, einen Weg zu finden, diese spezifischen Züge zu filtern. Irgendwelche Ideen?
Im Moment frage ich nach der Vordergrund-App mit dem folgenden Code. Das Problem besteht nur in Marshmallow (5.X funktioniert ordnungsgemäß).
UsageStatsManager mUsageStatsManager = (UsageStatsManager) rotationManager.getSystemService("usagestats");
long time = System.currentTimeMillis();
// We get usage stats for the last 10 seconds
List<UsageStats> stats = mUsageStatsManager.queryUsageStats(UsageStatsManager.INTERVAL_DAILY, time - 1000 * 2, time);
// Sort the stats by the last time used
if (stats != null) {
SortedMap<Long, UsageStats> mySortedMap = new TreeMap<Long, UsageStats>();
for (UsageStats usageStats : stats) {
mySortedMap.put(usageStats.getLastTimeUsed(), usageStats);
}
if (mySortedMap != null && !mySortedMap.isEmpty()) {
foregroundApp = mySortedMap.get(mySortedMap.lastKey()).getPackageName();
}
}
Werfen Sie einen Blick auf https://github.com/ricvalerio/foregroundappchecker, es könnte sein, was Sie brauchen. – rvalerio