2017-09-03 106 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在我的手机上行事异常,只是拒绝以正确的方式工作。重新启动手机并再次尝试使服务按照预期的方式工作!

我会留下这个问题以提醒所有人,有时候最简单和最有效的修复方法(即“你试过关掉它吗?”)是正确的答案!

好悲伤!