Я много искал, но не смог решить мою проблему. Я хочу отправить данные из нативного Android во флаттер через MethodChannel или EventChannel . Я написал класс NotificationGrabber , который расширяет NotificationListenerService , чтобы перехватывать уведомления на Android. Переопределив метод onNotificationPosted , я успешно перехватываю входящие уведомления. Сейчас я пытаюсь отправить эти уведомления во Flutter с помощью MethodChannel или EventChannel , но для этих конструкторов требуется BinaryMessenger . Я вижу из различных руководств, которые используют flutterView в качестве BinaryMessenger (поправьте меня, если я ошибаюсь). Поскольку метод onNotificationsPosted отсутствует в MainActivity, как я могу это сделать из своего класса NotificationGrabber? Как я могу использовать другой правильный BinaryMessenger? Спасибо всем!
public class NotificationGrabber extends NotificationListenerService {
private static final String CHANNEL = "mynotifications/getnotifications";
private String TAG = this .getClass().getSimpleName() ;
@Override
public void onNotificationPosted (StatusBarNotification sbn) {
Log. d ( TAG , "onNotificationPosted" ) ;
sendNotificationsToFlutter(sbn);
}
private void sendNotificationsToFlutter(StatusBarNotification sbn) {
Gson tempGson = new Gson();
String jsonNotifications = tempGson.toJson(sbn);
MethodChannel channel = new MethodChannel( <What could I put here?>, CHANNEL);
channel.invokeMethod("returnedNotification", jsonNotifications );
}
.
.
.
.
}