Перехват всплывающего сообщения (из любого приложения) и получение всплывающего сообщения

Как я понял это возможно, отсюда Обнаружение всплывающих сообщений Но я не могу поймать какое-либо событие с фрагментом кода из ссылки.

MyAccessibilityService.java

package com.test.toasts2;

import android.accessibilityservice.AccessibilityService;
import android.accessibilityservice.AccessibilityServiceInfo;
import android.app.Notification;
import android.os.Parcelable;
import android.view.accessibility.AccessibilityEvent;
import android.widget.Toast;

public class MyAccessibilityService extends AccessibilityService {

    @Override
    public void onAccessibilityEvent(AccessibilityEvent event) {
        System.out.println("event catched");
        Toast.makeText(this, "catched " + "!", Toast.LENGTH_SHORT).show();
        if(event.getEventType() != AccessibilityEvent.TYPE_NOTIFICATION_STATE_CHANGED)
            return; // event is not a notification

        String sourcePackageName = (String)event.getPackageName();

        Parcelable parcelable = event.getParcelableData();
        if(parcelable instanceof Notification){
            // Statusbar Notification
        }
        else{
            // something else, e.g. a Toast message
            String log = "Message: "+event.getText().get(0)+" [Source: "+sourcePackageName+"]";
            System.out.println(log);
            // write `log` to file...
        }
    }

                 @Override 
                 public void onInterrupt() {
                  // TODO Auto-generated method stub   
                 }

                 @Override
                 protected void onServiceConnected() {
                  // TODO Auto-generated method stub
                  super.onServiceConnected();
                  AccessibilityServiceInfo info = new AccessibilityServiceInfo();
                  info.feedbackType = AccessibilityServiceInfo.DEFAULT;
                  setServiceInfo(info);
                 }


}

AndroidManifest.xml




    

  
  
    
      
    

  



Похоже, эта служба просто не запущена. Что я делаю неправильно?

Почему я это делаю: Я устанавливаю много ярлыков на стандартный лаунчер из своего приложения. У меня такая проблема, что эти ярлыки располагаются друг над другом в одной ячейке (даже Sleep 500 не помог). Поэтому я нахожу способ установить их один за другим. Но как узнать, что ярлык был успешно установлен? Я нашел только сообщение, которое программа запуска ics показывает пользователю.

7
задан Community 23 May 2017 в 12:14
поделиться