我正在用https://github.com/dm77/barcodescanner扫描二维码。但它根本不扫描二维码(handleResult从不被调用)。当我将相机的焦点对准二维码时,它不会扫描代码。
这是我的活动。
package education.qrexample;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.widget.Toast;
import com.google.zxing.Result;
import me.dm7.barcodescanner.zxing.ZXingScannerView;
public class MainActivity extends AppCompatActivity implements ZXingScannerView.ResultHandler{
private ZXingScannerView mScannerView;
@Override
public void onCreate(Bundle state) {
super.onCreate(state);
mScannerView = new ZXingScannerView(this); // Programmatically initialize the scanner view
setContentView(mScannerView);
mScannerView.setResultHandler(this); // Register ourselves as a handler for scan results.
mScannerView.startCamera(); // Start camera on resume// Set the scanner view as the content view
}
@Override
public void onResume() {
super.onResume();
}
@Override
public void onPause() {
super.onPause();
mScannerView.stopCamera(); // Stop camera on pause
}
@Override
public void handleResult(Result rawResult) {
Toast.makeText(this,rawResult.getText(),Toast.LENGTH_LONG);
}
}我的Gradle
apply plugin: 'com.android.application'
android {
compileSdkVersion 24
buildToolsVersion "24.0.1"
defaultConfig {
applicationId "education.qrexample"
minSdkVersion 15
targetSdkVersion 24
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:24.0.0'
compile 'me.dm7.barcodescanner:zbar:1.9'
compile 'me.dm7.barcodescanner:zxing:1.9'
}我已经有了访问mainfests文件中的摄像头的权限。不确定缺少了什么。
发布于 2018-06-29 19:41:29
删除此compile 'me.dm7.barcodescanner:zxing:1.9'并仅添加implementation 'me.dm7.barcodescanner:zxing:1.9.8'
并查看下面的activity
public class ScannerActivity extends BaseActivity implements ZXingScannerView.ResultHandler {
private ZXingScannerView mScannerView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mScannerView = new ZXingScannerView(this); // Programmatically initialize the scanner view
setContentView(mScannerView);
}
@Override
public void onResume() {
super.onResume();
mScannerView.setResultHandler(this); // Register ourselves as a handler for scan results.
mScannerView.startCamera(); // Start camera on resume
}
@Override
public void onPause() {
super.onPause();
mScannerView.stopCamera(); // Stop camera on pause
}
@Override
protected void onStop() {
super.onStop();
mScannerView.stopCamera();
}
@Override
public void handleResult(Result result) {
Log.e(TAG, result.getText());
Log.e(TAG, result.getBarcodeFormat().toString());
String scannedText=result.getText();
}}
关注下面的this url
发布于 2016-08-29 02:57:05
你应该试试Android mobile vision api。它易于使用,精确度很高。检查这个- http://arjunu.com/2015/08/android-barcode-detection-tracking-using-mobile-vision-api/
https://stackoverflow.com/questions/39194606
复制相似问题