我正在使用React Native构建应用程序,我想使用 Android服务NotificationListenerService.为了从服务中捕获数据,我需要一个广播接收器.如何在React Native Environment中设置BroadcastReceiver? 我这样做的方
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); } ....... }
检查here以获取有关发送事件的更多详细信息