我通过将包com.google.zxing.integration.android
添加到我的项目中并将此代码添加到我的MainActivity.java文件中来集成Zxing条形码扫描程序:
public static Button scanBtn;
@Override
protected void onCreate(Bundle savedInstanceState) {
...
scanBtn = (Button) findViewById(R.id.scan_button);
scanBtn.setOnClickListener(this);
}
public void onClick(View v) {
IntentIntegrator scanIntegrator = new IntentIntegrator(this);
scanIntegrator.initiateScan();
}
public void onActivityResult(int requestCode, int resultCode, Intent intent) {
IntentResult scanningResult = IntentIntegrator.parseActivityResult(requestCode, resultCode, intent);
...
}
出于某种原因,当我点击按钮(scanBtn
)时,没有任何反应。日志中没有任何内容,屏幕上没有任何内容。
你能帮我吗?
答案 0 :(得分:0)
你能试试这段代码,看看它是否适合你?
scanBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
new IntentIntegrator(this).initiateScan();
}
});
只需在onCreate中添加上面的代码,而不是:
scanBtn.setOnClickListener(this);
和此:
public void onClick(View v) {
IntentIntegrator scanIntegrator = new IntentIntegrator(this);
scanIntegrator.initiateScan();
}
请告诉我这是否适合您:)
答案 1 :(得分:0)
首先在gradle文件中添加以下依赖项
compile 'com.journeyapps:zxing-android-embedded:3.1.0@aar'
compile 'com.google.zxing:core:3.2.0'
删除com.google.zxing.integration.android
然后更改您的onClick
方法,如下面的代码
public void onClick(View v) {
IntentIntegrator scanIntegrator = new IntentIntegrator(MainActivity.this);
scanIntegrator.setPrompt("Scan");
scanIntegrator.setBeepEnabled(true);
scanIntegrator.setOrientationLocked(true);
scanIntegrator.setBarcodeImageEnabled(true);
scanIntegrator.initiateScan();
}
它将实例化扫描,您可以在onActivityResult
喜欢这个
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
IntentResult scanningResult = IntentIntegrator.parseActivityResult(requestCode, resultCode, data);
if (scanningResult != null) {
if (scanningResult.getContents() != null) {
String scanContent = scanningResult.getContents().toString();
String scanFormat = scanningResult.getFormatName().toString();
}
Toast.makeText(this,scanContent+" type:"+scanFormat,Toast.LENGTH_SHORT).show();
}else{
Toast.makeText(this,"Nothing scanned",Toast.LENGTH_SHORT).show();
}
}
Here是一个在Android中使用Zxing条形码扫描器的示例项目
希望有所帮助
答案 2 :(得分:0)
我已经添加了相机的许可,它解决了它。