1

我正在开发需要知道通知何时到达的应用程序。我正在使用可访问性服务来完成这项任务。

当我授予我的自定义可访问性服务权限(转到 Accessibility-> MyApp -> ON)时,会调用 onServiceConnected 并且在一段时间内一切正常。我的应用程序接收事件..

但过了一段时间(比如一个小时左右),我的应用程序停止收到有关新通知的通知。我必须禁用 AccesibilityService 并再次启用它才能工作。

当然这是不可接受的,因为用户不会每次都这样做..

下面是我的代码。

  @Override
protected void onServiceConnected() {
    super.onServiceConnected();


    AccessibilityServiceInfo info = new AccessibilityServiceInfo();
    info.eventTypes = AccessibilityEvent.TYPE_NOTIFICATION_STATE_CHANGED;
    info.packageNames = null;
    info.feedbackType = AccessibilityServiceInfo.DEFAULT;
    setServiceInfo(info);

}

和清单。

 <!-- Accesibility Service Declaration below -->

    <service android:name="services.MyAccessibilityService"
        android:permission="android.permission.BIND_ACCESSIBILITY_SERVICE">
        <intent-filter>
            <action android:name="android.accessibilityservice.AccessibilityService" />

        </intent-filter>
    <meta-data android:name="android.accessibilityservice" android:resource="@xml/service_request" />

    </service>

出于测试目的,我使用的是在 KitKat Android OS 上运行的 HTC One M7。那么为什么我的应用在一段时间后停止接收通知?任何帮助将非常感激!

4

1 回答 1

0

我相信现在建议的用法是使用 NotificationListener 而不是 AccessibilityService 来检测通知

https://developer.android.com/reference/android/service/notification/NotificationListenerService.html

于 2016-09-01T02:40:48.100 回答