问题描述
问题
我一直在为Radar SDK开发Flutter插件,但是,我无法以编程方式设置我的broadcastReceiver。
这可行,但是我无法访问我的EventChannel
当我在插件的Android Manifest中设置我的Receiver时,将正确调用Receiver。清单如下所示:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.yourorg.appname">
<application
android:name="io.Flutter.app.FlutterApplication">
<receiver
android:name=".MyRadarReceiver"
android:enabled="true"
android:exported="false">
<intent-filter>
<action android:name="io.radar.sdk.RECEIVED" />
</intent-filter>
</receiver>
</application>
</manifest>
我尝试过的东西
但是,当我尝试以编程方式设置接收器时,没有接收到任何事件。我在onAttachedToEngine
中注册了接收者,我认为这是正确的,但是没有捕获任何事件。
override fun onAttachedToEngine(@NonNull FlutterPluginBinding: FlutterPlugin.FlutterPluginBinding) {
this.context = FlutterPluginBinding.getApplicationContext()
channel = MethodChannel(FlutterPluginBinding.getFlutterEngine().getDartExecutor(),"Flutter_radar_io")
channel.setMethodCallHandler(this)
receiver = MyRadarReceiver(this)
FlutterPluginBinding.getApplicationContext().registerReceiver(receiver,IntentFilter("io.radar.sdk.RECEIVED"))
}
为什么
我需要以编程方式设置接收器的原因是,我需要将上下文传递给接收器,以便在接收到事件时,可以将新事件添加到我的EventChannel中,该事件可以作为流中的流进行订阅应用。可能有另一种方法可以完成此任务,但这与我已经接近了。
如果您需要我共享更多代码(例如接收器类),我将非常高兴。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)