Skip to content

The broadcast receiver doesn't work #15

@KalaliEhsan

Description

@KalaliEhsan

I want to use a flutter app on datalogic pda device. I use the receiver to get the barcode that is scanned.
But doesn't work receiver.

public class MainActivity extends FlutterActivity {
    private final String ACTION_BROADCAST_RECEIVER = "com.datalogic.decodewedge.decode_action";
    private final String CATEGORY_BROADCAST_RECEIVER = "com.datalogic.decodewedge.decode_category";
    private final String EXTRA_DATA_STRING = "com.datalogic.decode.intentwedge.barcode_string";
    private final String EVENT_CHANNEL_BARCODE_INTENT = "app.channel.event.barcode_intent";
    private BroadcastReceiver receiver;
    private IntentFilter filter;

    public void configureFlutterEngine(@NotNull FlutterEngine flutterEngine) {
        Intrinsics.checkNotNullParameter(flutterEngine, "flutterEngine");
        GeneratedPluginRegistrant.registerWith(flutterEngine);
        DartExecutor dartExecutor = flutterEngine.getDartExecutor();
        Intrinsics.checkNotNullExpressionValue(dartExecutor, "flutterEngine.dartExecutor");
        new EventChannel(dartExecutor.getBinaryMessenger(), this.EVENT_CHANNEL_BARCODE_INTENT)
                .setStreamHandler(new EventChannel.StreamHandler() {
                    public void onListen(@Nullable Object args, @Nullable EventChannel.EventSink events) {
                        receiver = barcodeIntentReceiver(events);
                        filter = new IntentFilter();
                        Intrinsics.checkNotNull(filter);
                        filter.addAction(ACTION_BROADCAST_RECEIVER);
                        Intrinsics.checkNotNull(filter);
                        filter.addCategory(CATEGORY_BROADCAST_RECEIVER);
                        registerReceiver(receiver, filter);
                    }

                    public void onCancel(@NotNull Object args) {
                        Intrinsics.checkNotNullParameter(args, "args");
                    }
                });
    }

    private final BroadcastReceiver barcodeIntentReceiver(final EventChannel.EventSink events) {
        return new BroadcastReceiver() {
            public void onReceive(@Nullable Context context, @Nullable Intent wedgeIntent) {
                Intrinsics.checkNotNull(wedgeIntent);
                String action = wedgeIntent.getAction();
                if (Intrinsics.areEqual(action, ACTION_BROADCAST_RECEIVER)) {
                    String barcode_text = wedgeIntent.getStringExtra(EXTRA_DATA_STRING);
                    if (events != null) {
                        events.success(barcode_text);
                    }
                }
            }
        };
    }
}

How to resolve it?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions