Android Zxing条形码集成:未定义构造函数IntentIntegrator()
我正在尝试集成Zxing库,并使用我应用程序中的条形码扫描仪 因此,下载了两个java文件IntentIntegrator和IntentResult,将它们放入这个包中: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.
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