使用带有颤振的数据楔形



我正在尝试在Zebra android扫描仪上将datawedge intent API与我的颤振应用程序一起使用。我开始使用 git 存储库中的 Zebra EMDK API,它运行良好。现在我想迁移它(Zebra 推荐(,因为我希望它也可以在手机上使用(如果可能的话(。

我正在尝试按照此页面中的说明将其与 git 存储库中的代码合并,但在我的应用程序中未检测到扫描事件。

有人已经这样做了,可以帮助我吗?

这是我MainActivity.java

package com.example.test_datawedge;
import android.os.Bundle;
import io.flutter.app.FlutterActivity;
import io.flutter.plugins.GeneratedPluginRegistrant;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
// import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
import android.widget.TextView;
import android.widget.Toast;
import io.flutter.plugin.common.EventChannel;
import io.flutter.plugin.common.EventChannel.EventSink;
import io.flutter.plugin.common.EventChannel.StreamHandler;
import io.flutter.plugins.GeneratedPluginRegistrant;
import java.util.ArrayList;
public class MainActivity extends FlutterActivity {
  private static final String BARCODE_RECEIVED_CHANNEL = "samples.flutter.io/barcodereceived";

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    GeneratedPluginRegistrant.registerWith(this);
    // setContentView(R.layout.activity_main);
    IntentFilter filter = new IntentFilter();
    filter.addCategory(Intent.CATEGORY_DEFAULT);
    filter.addAction(getResources().getString(R.string.activity_intent_filter_action));
    // registerReceiver(myBroadcastReceiver, filter);
        new EventChannel(getFlutterView(), BARCODE_RECEIVED_CHANNEL).setStreamHandler(
            new StreamHandler() {
              private BroadcastReceiver barcodeBroadcastReceiver;
              @Override
              public void onListen(Object arguments, EventSink events) {
                Log.d("FLUTTERDEMO", "EventChannelOnListen");
                barcodeBroadcastReceiver = createBarcodeBroadcastReceiver(events);
                registerReceiver(
                        barcodeBroadcastReceiver, new IntentFilter("readBarcode"));
              }
              @Override
              public void onCancel(Object arguments) {
                Log.d("FLUTTERDEMO", "EventChannelOnCancel");
                unregisterReceiver(barcodeBroadcastReceiver);
                barcodeBroadcastReceiver = null;
              }
            }
    );
  }
//   @Override
//     protected void onDestroy()
//     {
//         super.onDestroy();
//         unregisterReceiver(myBroadcastReceiver);
//     }
    //
    // After registering the broadcast receiver, the next step (below) is to define it.  
    // Here it's done in the MainActivity.java, but also can be handled by a separate class.
    // The logic of extracting the scanned data and displaying it on the screen 
    // is executed in its own method (later in the code). Note the use of the 
    // extra keys are defined in the strings.xml file.  
    //  
    private BroadcastReceiver createBarcodeBroadcastReceiver(final EventSink events) {
        return new BroadcastReceiver() {
            @Override
            public void onReceive(Context context, Intent intent) {
                String action = intent.getAction();
                Log.d("FLUTTERDEMO", "createBarcodeBroadcastReceiver " + action);
                if(action.equals("readBarcode")){
                    String barcode = intent.getStringExtra("barcode");
                    String barcodetype = intent.getStringExtra("barcodetype");
                    Log.d("FLUTTERDEMO", "createBarcodeBroadcastReceiver " + barcode);
                    events.success(barcode);
                }
            }
        };
    }
    //
    // The section below assumes that a UI exists in which to place the data. A production 
    // application would be driving much of the behavior following a scan.
    //
    // private void displayScanResult(Intent initiatingIntent, String howDataReceived)
    // {
    //     String decodedSource = initiatingIntent.getStringExtra(getResources().getString(R.string.datawedge_intent_key_source));
    //     String decodedData = initiatingIntent.getStringExtra(getResources().getString(R.string.datawedge_intent_key_data));
    //     String decodedLabelType = initiatingIntent.getStringExtra(getResources().getString(R.string.datawedge_intent_key_label_type));
    //     final TextView lblScanSource = (TextView) findViewById(R.id.lblScanSource);
    //     final TextView lblScanData = (TextView) findViewById(R.id.lblScanData);
    //     final TextView lblScanLabelType = (TextView) findViewById(R.id.lblScanDecoder);
    //     lblScanSource.setText(decodedSource + " " + howDataReceived);
    //     lblScanData.setText(decodedData);
    //     lblScanLabelType.setText(decodedLabelType);
    // }
}

Zebra EMDK 通过覆盖"onStatus"和"onData"函数来检索数据。

从"onData"检索条形码数据

相关内容

  • 没有找到相关文章

最新更新