使用ZXING-Android获取扫描内容
这是我的代码,我正在使用Zixing library扫描二维码,我可以扫描,但问题无法在我的活动类中获得我想要的值。扫描成功后,应打印Toast并完成扫描活动。请帮助我如何实现这一点 下面是我的清单文件:使用ZXING-Android获取扫描内容,android,zxing,Android,Zxing,这是我的代码,我正在使用Zixing library扫描二维码,我可以扫描,但问题无法在我的活动类中获得我想要的值。扫描成功后,应打印Toast并完成扫描活动。请帮助我如何实现这一点 下面是我的清单文件: public class MainActivity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle sa
public class MainActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
try {
Button scanner = (Button) findViewById(R.id.scanner);
scanner.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
Intent intent = new Intent(
"com.google.zxing.client.android.SCAN");
intent.putExtra("SCAN_MODE", "QR_CODE_MODE");
startActivityForResult(intent, 0);
}
});
Button scanner2 = (Button) findViewById(R.id.scanner2);
scanner2.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
Intent intent = new Intent(
"com.google.zxing.client.android.SCAN");
intent.putExtra("SCAN_MODE", "PRODUCT_MODE");
startActivityForResult(intent, 0);
}
});
} catch (ActivityNotFoundException anfe) {
Log.e("onCreate", "Scanner Not Found", anfe);
}
}
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");
// Handle successful scan
// Toast toast = Toast.makeText(this, "Content:" + contents
// + " Format:" + format, Toast.LENGTH_LONG);
// toast.setGravity(Gravity.TOP, 25, 400);
// toast.show();
Toast.makeText(getApplicationContext(), contents, 100).show();
} else if (resultCode == RESULT_CANCELED) {
// Handle cancel
Toast toast = Toast.makeText(this, "Scan was Cancelled!",
Toast.LENGTH_LONG);
toast.setGravity(Gravity.TOP, 25, 400);
toast.show();
}
}
}
}
有一个CaptureActivity,我刚刚从Google Zxing Library找到了这个最重要的文件,请帮助。关于
onActivityResult
你需要打电话
<activity
android:name="com.example.zxing.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name="com.google.zxing.client.android.CaptureActivity"
android:configChanges="orientation|keyboardHidden"
android:screenOrientation="landscape"
android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
android:windowSoftInputMode="stateAlwaysHidden" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
<intent-filter>
<action android:name="com.google.zxing.client.android.SCAN" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
示例用法
IntentResult scanningResult = IntentIntegrator.parseActivityResult(requestCode, resultCode, intent);
更新
在扫描按钮上,单击执行以下操作
@Override
public void onActivityResult(int requestCode, int resultCode, Intent intent) {
IntentResult result = IntentIntegrator.parseActivityResult(requestCode, resultCode, intent);
if (result != null) {
String contents = result.getContents();
if (contents != null) {
Log.d(TAG, "Success");
// result.toString() holds the result info
} else {
Log.d(TAG, "Failed");
}
}
}
对于二维码扫描
Button scanner = (Button) findViewById(R.id.scanner);
scanner.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
IntentIntegrator integrator = new IntentIntegrator(MainActivity.this);
integrator.addExtra("SCAN_WIDTH", 800);
integrator.addExtra("SCAN_HEIGHT", 200);
integrator.addExtra("RESULT_DISPLAY_DURATION_MS", 3000L);
integrator.addExtra("PROMPT_MESSAGE", "Custom prompt to scan a product");
integrator.initiateScan(IntentIntegrator.PRODUCT_CODE_TYPES);
}
});
有关更多信息,请遵循。您可以自定义一些功能
IntentIntegrator integrator = new IntentIntegrator(MainActivity.this);
integrator.initiateScan(IntentIntegrator.QR_CODE_TYPES);
然后调用函数而不是Toast
private void showMsg(String msg) {
// TODO Auto-generated method stub
final AlertDialog build = new AlertDialog.Builder(this).create();
build.setTitle("Scanning Result");
build.setMessage(msg);
build.setCancelable(true);
build.setButton(AlertDialog.BUTTON_POSITIVE, " OK ",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
build.dismiss();
}
});
build.show();
}
让我们。
showMsg("Product get with " + res);