在 android 应用程序中使用 zxing 扫描条形码 reader 数据
scan the barcode reader data using zxing in android app
这是我的代码对我不起作用
public void onClick(View v) {
Intent intent = new Intent();
intent.putExtra("com.google.zxing.client.android.SCAN.SCAN_MODE", "QR_CODE_MODE");
startActivityForResult(intent, 0);
}
public void onActivityResult(int requestCode, int resultCode, Intent intent) {
if (requestCode == 0) {
if (resultCode == RESULT_OK) {
String contents = intent.getStringExtra("SCAN_RESULT");
String format = intent.getStringExtra("SCAN_RESULT_FORMAT");
Toast.makeText(getApplicationContext(),"Contents"+contents+"Format"+format,Toast.LENGTH_LONG).show();
tv.setText(contents+""+format);
// Handle successful scan
} else if (resultCode == RESULT_CANCELED) {
// Handle cancel
}
}
}
startActivityForResult(intent, 0) 出错;我不知道如何解决这个错误请帮助我
您也可以通过扩展 CaptureActivity 来实现。
public void onClick(View v) {
Intent intent=new Intent(A.this,ScannerActivity.class);
startActivity(intent);
}
扫描仪活动:
public class ScannerActivity extends CaptureActivity {
/** The barcode format. */
String barcodeFormat;
/**
* Called when the activity is first created.
*
* @param savedInstanceState
* the saved instance state
*/
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.barcode_scan);
}
/*
* (non-Javadoc)
*
* @see
* com.google.zxing.client.android.CaptureActivity#handleDecode(com.google
* .zxing.Result, android.graphics.Bitmap)
*/
@Override
public void handleDecode(Result rawResult, Bitmap barcode) {
String barcodeType = rawResult.getBarcodeFormat().toString();
String productId = rawResult.getText();
Toast.makeText(getApplicationContext(),"Contents"+productId +"Format"+barcodeType ,Toast.LENGTH_LONG).show();
//handle intent by sending product id as your wish...
}
}
barcode_scan.xml:(别忘了包含 capture.xml)
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<include layout="@layout/capture"/>
</LinearLayout>
这是我的代码对我不起作用
public void onClick(View v) {
Intent intent = new Intent();
intent.putExtra("com.google.zxing.client.android.SCAN.SCAN_MODE", "QR_CODE_MODE");
startActivityForResult(intent, 0);
}
public void onActivityResult(int requestCode, int resultCode, Intent intent) {
if (requestCode == 0) {
if (resultCode == RESULT_OK) {
String contents = intent.getStringExtra("SCAN_RESULT");
String format = intent.getStringExtra("SCAN_RESULT_FORMAT");
Toast.makeText(getApplicationContext(),"Contents"+contents+"Format"+format,Toast.LENGTH_LONG).show();
tv.setText(contents+""+format);
// Handle successful scan
} else if (resultCode == RESULT_CANCELED) {
// Handle cancel
}
}
}
startActivityForResult(intent, 0) 出错;我不知道如何解决这个错误请帮助我
您也可以通过扩展 CaptureActivity 来实现。
public void onClick(View v) {
Intent intent=new Intent(A.this,ScannerActivity.class);
startActivity(intent);
}
扫描仪活动:
public class ScannerActivity extends CaptureActivity {
/** The barcode format. */
String barcodeFormat;
/**
* Called when the activity is first created.
*
* @param savedInstanceState
* the saved instance state
*/
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.barcode_scan);
}
/*
* (non-Javadoc)
*
* @see
* com.google.zxing.client.android.CaptureActivity#handleDecode(com.google
* .zxing.Result, android.graphics.Bitmap)
*/
@Override
public void handleDecode(Result rawResult, Bitmap barcode) {
String barcodeType = rawResult.getBarcodeFormat().toString();
String productId = rawResult.getText();
Toast.makeText(getApplicationContext(),"Contents"+productId +"Format"+barcodeType ,Toast.LENGTH_LONG).show();
//handle intent by sending product id as your wish...
}
}
barcode_scan.xml:(别忘了包含 capture.xml)
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<include layout="@layout/capture"/>
</LinearLayout>