Android 系列 5.7使用Google ZXing条形码扫描器扫描条形码或QR码
2017-01-10 09:27
295 查看
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。扫描程序主活动
注意,在下面的表格中,如何可以扫描条形码族(使用SCAN_MODE)或特定类型的条形码(使用SCAN_FORMATS)。如果知道正在解码什么类型的条形码,则将扫描格式设置为该特定类型可以导致更快的解码(它不会试图运行通过所有条形码解码算法)。例如,您可以使用intent.putExtra(“SCAN_FORMATS”,“CODE_39”)。要使用多个SCAN_FORMATS,您需要传递逗号分隔的列表;请参见示例5-16。
现在去,使扫描库存控制或杂货列表应用程序,你一直在想!
问题
您希望应用程序能够扫描条形码或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 { @Override protected 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。
现在去,使扫描库存控制或杂货列表应用程序,你一直在想!
相关文章推荐
- 在Android中使用 Google ZXing 实现二维码、条形码扫描
- (android 开源项目)二维码、条形码扫描——使用Google ZXing .
- 使用zxing生成QRCode二维码,在Android的webview中调用条形码扫描(转)
- 使用zxing生成QRCode二维码,在Android的webview中调用条形码扫描
- 【android】二维码、条形码扫描——使用Google ZXing
- 在Android中使用 Google ZXing 实现二维码、条形码扫描
- Android深入浅出系列之实例应用—具有自动提示的菜单应用AutoCompleteTextView和ArrayAdapter的使用
- Android系列教程之七:EditText使用详解-包含很多教程上看不到的功能演示
- 在Android上使用ZXing识别条形码/二维码
- Android拓展系列(2)--Git使用
- Android深入浅出系列之实例应用—程序运行进度提示条应用ProgressBar和Handler的使用
- Android拓展系列(4)--vim编辑器的基本使用
- 使用zbar,来扫描各种条形码
- 在Android上使用ZXing识别条形码/二维码
- Android深入浅出系列之实例应用—简单的手指拖动图片,图片滑来滑去显示应用Gallery和BaseAdapter以及ImageView的使用
- Android深入浅出系列之实例应用—简单的手指拖动图片,图片滑来滑去显示应用Gallery和BaseAdapter以及ImageView的使用
- Android深入浅出系列之实例应用—弹出消息Toast对象的使用纯文本方式(一)
- Android拓展系列(2)--Git使用
- Android系列之浅谈AndroidGallery控件使用方法详解
- Android拓展系列--Git使用