我目前使用Android UsageStats
來獲取當前的前臺應用程序在android中的服務。但是,當我從任何應用程序收到通知時,我的應用程序認爲其他應用程序處於前臺。 「噢,這是一個鼻屎鍵入」如何在Android上獲取前臺應用程序;不包括通知
基本上,我需要一種方式獲取當前的前臺應用程序,排除任何通知。
Got it?謝謝!
編輯:
如果我的要求是不可能的,我目前的方法,我有哪些其他選擇?
我目前使用Android UsageStats
來獲取當前的前臺應用程序在android中的服務。但是,當我從任何應用程序收到通知時,我的應用程序認爲其他應用程序處於前臺。 「噢,這是一個鼻屎鍵入」如何在Android上獲取前臺應用程序;不包括通知
基本上,我需要一種方式獲取當前的前臺應用程序,排除任何通知。
Got it?謝謝!
編輯:
如果我的要求是不可能的,我目前的方法,我有哪些其他選擇?
可以在前臺獲取當前應用程序的包名:
private String isAppOnForeground(Context context) {
ActivityManager activityManager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
List<RunningAppProcessInfo> appProcesses = activityManager.getRunningAppProcesses();
if (appProcesses == null) {
return null;
}
for (RunningAppProcessInfo appProcess : appProcesses) {
if (appProcess.importance == RunningAppProcessInfo.IMPORTANCE_FOREGROUND) {
return appProcess.processName;
}
}
return null;
}
不能使用'UsageStatsManager'獲得「當前前臺應用程序」,無論通知。 「注意:事件日誌的最後幾分鐘將被截斷以防止應用程序濫用。」 – CommonsWare
@CommonsWare好的,謝謝! 「事件日誌」是什麼意思? – Epicality
我假定文檔指的是驅動通過'UsageStatsManager'提供的數據的使用事件日誌。我沒有寫文檔,所以我不能肯定地說。 – CommonsWare