Zxing 条码扫描器无法从我的应用程序打开
Zxing barcode scanner doesn't open from my app
我通过将包 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
) 时,没有任何反应。日志中没有任何内容,屏幕上也没有任何反应。
你能帮帮我吗?
你能试试这个代码,看看它是否适合你吗?
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();
}
让我知道这是否适合你:)
首先在你的 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();
}
它会实例化scan,你可以在onActivityResult
中得到scan的结果
像这样
@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 条码扫描器的示例项目
希望对您有所帮助
我给相机添加了权限,解决了。
我通过将包 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
) 时,没有任何反应。日志中没有任何内容,屏幕上也没有任何反应。
你能帮帮我吗?
你能试试这个代码,看看它是否适合你吗?
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();
}
让我知道这是否适合你:)
首先在你的 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();
}
它会实例化scan,你可以在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 条码扫描器的示例项目希望对您有所帮助
我给相机添加了权限,解决了。