NotificationListenerService не работает для видеовстреч - PullRequest
0 голосов
/ 14 декабря 2018

Я пытаюсь прочитать уведомления для приложений чата из моего приложения.

Я правильно реализовал NotificationListenerService.Он дает мне журналы уведомлений почти для всех приложений для обмена мгновенными сообщениями (Whatsapp, Line, Hike, Viber, Instagram, Facebook Lite, даже почты Gmail).Но по какой-то причине onNotificationPosted не запускается, когда я получаю уведомление о новом сообщении в Hangouts .

Вот соответствующий код моего файла службы и манифеста:

    .
    .

    public TrackMyNotificationsService() {
    }

    @Override
    public IBinder onBind(Intent intent) {
        // TODO: Return the communication channel to the service.
        IBinder mIBinder = super.onBind(intent);
        Log.i(TAG, "onBind");
        return mIBinder;
    }

    @Override
    public void onNotificationPosted(StatusBarNotification sbn) {
        super.onNotificationPosted(sbn);
        if (sbn != null) {
            Bundle extras = sbn.getNotification().extras;

            String key = sbn.getKey();
            String appName = getAppName(sbn.getPackageName());
            //Here goes logic for saving and logging based on application name 
            .....
        }
    }
    @Override
    public boolean onUnbind(Intent intent) {
        Log.i(TAG, "onUnBind");
        return super.onUnbind(intent);
    }

    @Override
    public void onNotificationRemoved(StatusBarNotification sbn) {
        super.onNotificationRemoved(sbn);
    }

    public String getAppName(String packageName){
        String appName = packageName;
        try{
            ApplicationInfo applicationInfo = getPackageManager().getApplicationInfo(packageName, PackageManager.GET_META_DATA);
            appName = (String) getPackageManager().getApplicationLabel(applicationInfo);
        }catch(Exception e){
            e.printStackTrace();
        }
        return appName;
    }

Манифест:

    <service
        android:name=".TrackMyNotificationsService"
        android:enabled="true"
        android:exported="true"
        android:permission="android.permission.BIND_NOTIFICATION_LISTENER_SERVICE">
        <intent-filter>
            <action android:name="android.service.notification.NotificationListenerService" />
        </intent-filter>
    </service>

Я попытался перезагрузить устройство.Уведомления включены для видеовстреч.(Я получаю их в устройстве), но onNotificationPosted не вызывается.Любая помощь?

...