bất cứ khi nào tôi cố gắng truy vấn Thống kê sử dụng của UsageStatsManager tôi có thể tải ứng dụng chạy cuối cùng một cách chính xác. Tuy nhiên, nếu tôi kéo thanh trạng thái xuống và có thông báo mới, ứng dụng được sử dụng lần cuối (dựa trên UsageStats) sẽ thay đổi thành thông báo. Kết quả là, tôi nhận được báo động sai rằng ứng dụng nền trước đã thay đổi.Android 6.0 Marshmallow UsageStatsQuản lý sự cố khi cố gắng truy xuất ứng dụng tiền cảnh
Tôi dường như không thể tìm cách lọc các hình vẽ cụ thể đó. Ý tưởng nào?
Ngay bây giờ, tôi truy vấn ứng dụng nền trước có mã sau. Vấn đề tồn tại chỉ trong Marshmallow (5.X hoạt động chính xác).
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();
}
}
Hãy xem https://github.com/ricvalerio/foregroundappchecker, đó có thể là những gì bạn cần. – rvalerio