私のテストに基づいて、アンドロイドアプリのNotificationListenerService
(NLS)がAndroid 8(Oreo)のシステムにバインドされていないようです。私は新しいOSとの互換性を持たせるため、SDKバージョン26のために自分のアプリをターゲットにしています。NotificationListenerServiceがAndroid 8(Oreo)のSystemUIにバインドされていません
Android Nより前では、NLSサービスはSystemUIに永久にバインドされました(Ref: Google I/O 2016)。 Android Nから、NLSサービスに導入された新しいメソッドは、requestRebind(ComponentName)
とrequestUnbind()
の2つです。
Android Oreoには、サービスに適用される新しいBackground Execution Limitsがあります。ただし、「別のアプリケーションがバインドする通知リスナー」などの特定のサービスには適用されません。 SystemUIにバインドされているはずのNLSサービスを使用しているので、これは私の使用例です。
しかし、私が見てきたように、このサービスはSystemUIに束縛されることはありません。さらに、私が明示的にrequestRebind(ComponentName)
と呼んでも、サービスが決して束縛されていないので、機能していないので、通知を聞くことができません。
Android Oreoでこの問題を解決するにはどうすればよいですか?