2017-09-03 120 views
0

根據我的測試,似乎我Android應用程序中的NotificationListenerService(NLS)沒有綁定到Android 8(奧利奧)上的系統。我將我的應用程序定位到SDK版本26,以使其與新操作系統兼容。NotificationListenerService沒有綁定到Android 8上的SystemUI(奧利奧)

在Android N之前,NLS服務永遠綁定到SystemUI (Ref: Google I/O 2016)。從Android N開始,NLS服務中引入了兩種新方法:requestRebind(ComponentName)requestUnbind()

在Android Oreo中,有適用於服務的新Background Execution Limits。但是,它不適用於某些服務,例如「另一個應用程序綁定到的通知監聽器」。這是我的用例,因爲我正在使用應該綁定到SystemUI的NLS服務。

但是,正如我所觀察到的,該服務永遠不會綁定到SystemUI。另外,即使我明確地呼叫requestRebind(ComponentName),該服務也永遠不會受到束縛,因此它不起作用,因爲這意味着我無法收聽通知。

如何解決Android Oreo中的這個問題?

回答

0

哦,男孩,這很愚蠢!該問題已通過重新啓動解決。我認爲Android在我的手機上行事異常,只是拒絕以正確的方式工作。重新啓動手機並再次嘗試使服務按照預期的方式工作!

我會留下這個問題以提醒所有人,有時候最簡單和最有效的修復方法(即「你試過關掉它嗎?」)是正確的答案!

好悲傷!