将Android Broadcaseiver设置为React天然



我正在对React Native构建应用程序,我想使用Android Service NotificationListenerService。为了从服务捕获数据,我需要一个广播接收器。如何在React Native环境中设置Broadcastreceiver?

我这样做的方式是使用getJSModule

进行emit事件

mylistener.java

public class MyListener extends NotificationListenerService {
    @Override
    public void onNotificationPosted(StatusBarNotification sbn) {
        if (sbn.getNotification().tickerText == null) {
            return;
        }
        WritableNativeMap params = new WritableNativeMap();
        params.putString("tickerText", sbn.getNotification().tickerText.toString());
        params.putString("packageName", sbn.getPackageName());
        MyModule.sendEvent("notificationReceived", params);
    }
    @Override
    public void onNotificationRemoved(StatusBarNotification sbn) {}
}

mymodule.java

public class MyModule extends ReactContextBaseJavaModule implements ActivityEventListener {
    private static ReactApplicationContext reactContext;
    public MyModule(ReactApplicationContext reactContext) {
        super(reactContext);
        this.reactContext = reactContext;
        reactContext.addActivityEventListener(this);
    }
    public static void sendEvent(String event, WritableNativeMap params) {
        reactContext
            .getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter.class)
            .emit(event, params);
    }
    .......
}

在此处查看有关发送事件的更多详细信息。

相关内容

  • 没有找到相关文章

最新更新