Android 系列 5 7使用Google ZXing条形码扫描器扫描条形码或QR码

分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow

也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!

                5.7使用Google ZXing条形码扫描器扫描条形码或QR码

问题
您希望应用程序能够扫描条形码或QR码(“QR”原本代表“快速反应”)。

使用Intent访问由Google ZXing条形码扫描器公开的扫描功能。
讨论
Android的一个伟大的功能是它是多么容易利用现有的功能。扫描条形码和QR码是一个很好的例子。 Google有一个免费的扫描应用程序,您可以通过意图访问;因此应用程序可以轻松添加扫描功能,开放新的界面,通信和功能的可能性。
此配方中的程序是如何通过Intent访问Google条码扫描器的示例。确保已安装Google条码扫描器(https://market.android.com/details?id=com.google.zxing.client.android)。在图中,有三个按钮,让用户选择扫描QR码,产品条形码或其他东西。有两个TextView用于显示扫描的条形码类型及其包含的数据。布局是常规的:一个垂直的LinearLayout,所以我们不需要在这里重现它。


活动代码如例5-16所示;根据按下哪个按钮,程序在启动ZXing活动之前将相关参数放入Intent,并等待结果。
实例5-16。扫描程序主活动
public class MainActivity extends AppCompatActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);}public void HandleClick(View arg0) {Intent intent = new Intent("com.google.zxing.client.android.SCAN");switch(arg0.getId()){case R.id.butQR:intent.putExtra("SCAN_MODE", "QR_CODE_MODE");break;case R.id.butProd:intent.putExtra("SCAN_MODE", "PRODUCT_MODE");break;case R.id.butOther:intent.putExtra("SCAN_FORMATS", "CODE_39,CODE_93,CODE_128,DATA_MATRIX,ITF,CODABAR");break;}try {startActivityForResult(intent, 0); //Barcode Scanner to scan for us} catch (ActivityNotFoundException e) {Toast.makeText(this, "Please install the ZXing Barcode Scanner app", Toast.LENGTH_LONG).show();}}public void onActivityResult(int requestCode, int resultCode, Intent intent) {if (requestCode == 0) {TextView tvStatus=(TextView)findViewById(R.id.tvStatus);TextView tvResult=(TextView)findViewById(R.id.tvResult);if (resultCode == RESULT_OK) {tvStatus.setText(intent.getStringExtra("SCAN_RESULT_FORMAT"));tvResult.setText(intent.getStringExtra("SCAN_RESULT"));} else if (resultCode == RESULT_CANCELED) {tvStatus.setText("Press a button to start a scan.");tvResult.setText("Scan cancelled.");}}}}

注意,在下面的表格中,如何可以扫描条形码族(使用SCAN_MODE)或特定类型的条形码(使用SCAN_FORMATS)。如果知道正在解码什么类型的条形码,则将扫描格式设置为该特定类型可以导致更快的解码(它不会试图运行通过所有条形码解码算法)。例如,您可以使用intent.putExtra(“SCAN_FORMATS”,“CODE_39”)。要使用多个SCAN_FORMATS,您需要传递逗号分隔的列表;请参见示例5-16。


现在去,使扫描库存控制或杂货列表应用程序,你一直在想!           

给我老师的人工智能教程打call!http://blog.csdn.net/jiangjunshow

这里写图片描述

猜你喜欢

转载自blog.csdn.net/hffyfdt/article/details/84021412