Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android Zxing条形码集成:未定义构造函数IntentIntegrator()_Android_Integration_Barcode_Zxing - Fatal编程技术网

Android Zxing条形码集成:未定义构造函数IntentIntegrator()

Android Zxing条形码集成:未定义构造函数IntentIntegrator(),android,integration,barcode,zxing,Android,Integration,Barcode,Zxing,我正在尝试集成Zxing库,并使用我应用程序中的条形码扫描仪 因此,下载了两个java文件IntentIntegrator和IntentResult,将它们放入这个包中: com.google.zxing.integration com.example.mindstormsgamepad 我的应用程序在此软件包中的位置: com.google.zxing.integration com.example.mindstormsgamepad 我在活动中使用的代码是: package com.

我正在尝试集成Zxing库,并使用我应用程序中的条形码扫描仪

因此,下载了两个java文件IntentIntegrator和IntentResult,将它们放入这个包中:

com.google.zxing.integration
com.example.mindstormsgamepad
我的应用程序在此软件包中的位置:

com.google.zxing.integration
com.example.mindstormsgamepad
我在活动中使用的代码是:

package com.example.mindstormsgamepad;

import com.google.zxing.integration.IntentIntegrator;
import com.google.zxing.integration.IntentResult;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Toast;
import android.widget.Button;
import android.widget.TextView;

/**
 * BarcodeScan Activity
 */

    public class BarcodeScanActivity extends CommonActivity implements OnClickListener{ 

        /** Debug */
        protected String TAG_SUB = "BarcodeScanActivity";

        private Button scanBtn;
        private TextView formatTxt, contentTxt;

        @Override
        public void onCreate(Bundle savedInstanceState) {
            initTabSub( TAG_SUB );  
            log_d( "onCreate" );        
            super.onCreate( savedInstanceState );
            /* set the layout on the screen */
            View view = getLayoutInflater().inflate( R.layout.activity_barcode_scan, null );
            setContentView( view ); 

            /* Initialization of Bluetooth */
            initManager( view );
            setTitleName( R.string.activity_barcodescan );
            initButtonBack();
            initInputDeviceManager();

          Toast.makeText(BarcodeScanActivity.this, "QR Scan!", Toast.LENGTH_SHORT).show();


            /* Initialization of Scanning */
          scanBtn = (Button)findViewById(R.id.scan_button);
          formatTxt = (TextView)findViewById(R.id.scan_format);
          contentTxt = (TextView)findViewById(R.id.scan_content);
          scanBtn.setOnClickListener(this);

        }

    // --- onCreate end ---

        /**
         * === onResume ===
         */
        @Override
        public void onResume() {
            log_d( "onResume()" );
            super.onResume();
            startService();
            mInputDeviceManager.register(); 
        }

        /**
         * === onPause ===
         */
        @Override
        public void onPause() {
            log_d( "onPause()" );
            super.onPause();
            sendStop();
            mInputDeviceManager.unregister();
        }

        @Override
        public void onClick(View v) {
            // Start Scan
            if(v.getId()==R.id.scan_button){

                IntentIntegrator scanIntegrator = new IntentIntegrator(this);
                scanIntegrator.initiateScan();

            }
        }


            public void onActivityResult(int requestCode, int resultCode, Intent intent) {
                //retrieve scan result
                IntentResult scanningResult = IntentIntegrator.parseActivityResult(requestCode, resultCode, intent);
                if (scanningResult != null) {
                    //we have a result
                    String scanContent = scanningResult.getContents();
                    String scanFormat = scanningResult.getFormatName();
                    formatTxt.setText("FORMAT: " + scanFormat);
                    contentTxt.setText("CONTENT: " + scanContent);

                    }else{
                    Toast toast = Toast.makeText(getApplicationContext(), 
                        "No Barcode data received!", Toast.LENGTH_SHORT);
                    toast.show();
                }
                }
    }
但我得到了这个错误, 构造函数监管者(BarcodeScanActivity)未定义

类型IntentIntegrator中的方法initiateScan(Activity)不适用于参数()

在这些方面:

        IntentIntegrator scanIntegrator = new IntentIntegrator(this);
        scanIntegrator.initiateScan();
我是android编程新手, 如何解决这个问题

谢谢你的帮助。

试试这个:

Intent intent = new Intent("com.google.zxing.client.android.SCAN");
                    intent.putExtra("SCAN_MODE", "QR_CODE_MODE,PRODUCT_MODE");
                    startActivityForResult(intent, 0);
对于结果,请执行onActivityResult方法中的代码

public void onActivityResult(int requestCode, int resultCode, Intent intent) {
        Toast.makeText(getActivity(), "result ", 1000).show();
        if (requestCode == 0) {

            if (resultCode == RESULT_OK) {
                //do code here
            }

            else if (resultCode == RESULT_CANCELED) {
                //do code here
            }
        }

这意味着您的活动最终不会扩展android.app.Activity。看看CommonActivity扩展了什么。否则,您可能有一份旧的或错误的管理者副本。

非常感谢。它成功了,扫描仪也开始工作了。但条形码数据仅显示在摄像机中。如何将其发送回“startActivityForResult”并在应用程序本身中显示。在ActivityResult上实现
。这并不是OP的根本原因。为了更好地使用ZBarScannerActivity Lib。下面是下载lib@user3243147的链接。兹巴斯卡纳工作很轻松。感谢您的帮助。关于回复,“IntentIntegrator”来自项目,请访问GitHub.com/zxing/zxing