使用cordova-broadcaster接收广播意图

3

我正在尝试使用cordova-broadcaster插件来接收Android广播意图。 我注册了广播事件。

   window.broadcaster.addEventListener("com.android.action.SEND_SCAN_RESULT", function (e) { 
         console.log("com.android.action.SEND_SCAN_RESULT received."); 
    });
   console.log("com.android.action.SEND_SCAN_RESULT registered");

但是如果意图被触发了

V/ActivityManager(  775): Broadcast: Intent { act=com.android.action.SEND_SCAN_RESULT flg=0x10 (has extras) } ordered=false userid=0 callerApp=ProcessRecord{1418277c 775:system/1000}

回调函数没有被触发。 唯一的日志信息是: com.android.action.SEND_SCAN_RESULT已注册。
2个回答

1

1

目前该插件无法管理外部广播事件,只能处理本地事件。

可能的解决方案是在Android中处理外部事件,然后将其触发到JavaScript。

请查看这里

尝试这个(它应该可以正常工作)。

清单

<application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name" >
        <receiver android:name="MyReceiver" >
            <intent-filter>
                <action android:name="com.android.action.SEND_SCAN_RESULT" >
                    </action>
            </intent-filter>
        </receiver>
    </application>

Receiver

public class MyReceiver extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {
                 LocalBroadcastManager.getInstance(context).sendBroadcastSync(intent);
    }
}

广播已接收,但额外信息为空,我们需要做些什么吗? - Sampath Kumar
请检查您是否已将信息放入“userdata”字段中,并且这些信息是否以正确的JSON格式存在。 - bsorrentino

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接