网站客服:zx81024163 |

Android实现条形码与二维码扫描

2024-02-16 03:01:29发布    浏览504次    信息编号:97549

友情提醒:凡是以各种理由向你收取费用,均有骗子嫌疑,请提高警惕,不要轻易支付。

Android实现条形码与二维码扫描

目前有一种二维码在移动终端上使用,是一种常用的与用户交互的方式。 它通常用于社交网络、支付和电子商务应用程序。 本文介绍条形码和二维码扫描的实现。

在本教程中,我们将使用 ZXing 库使我们的应用程序能够扫描条形码和二维码。

为什么选择ZXing

实现条码、二维码扫描功能,常用的方法有:使用Play和API。 使用图书馆。 使用ZXing库。

我们来仔细分析一下以上三种方法各自的优缺点。 第一个是使用 Play 和 API。 不合适是因为并非所有用户设备都安装了 Play,尤其是在中国。 第二种方法是使用。 也是不适合的。 虽然导入很简单,识别也很快,但是UI的调整比较困难。 尤其是当UI非常复杂的时候,需要拉取整个项目的源码,自己定制。 现在只剩下ZXing了。 ZXing库是出品的,短期内应该不会停止维护。 许多应用程序和错误报告都是基于开发的。 使用ZXing,我们不必担心用户不安装Play,而是专注于自己开发和处理结果。

什么是ZXing

Zxing是一款条形码(一维码、二维码)解析工具,提供生成和解析二维码的方法。

设置项目以添加依赖项

在你的构建中。 文件(级别),添加ZXing核心库。

dependencies {
   compile fileTree(include: ['*.jar'], dir: 'libs')
   // 其他的库在这里...
   compile 'com.google.zxing:core:3.3.0'
   testCompile 'junit:junit:4.12'
}

复制

添加必要的权限

在您的 .xml 文件中,添加以下代码:

   
   
   
    

复制

导入必要的类和资源文件,将整个包复制到您的项目中。

注意:我已经简化了上面包中的代码。 如果您需要ZXing示例项目这部分的完整代码,请访问这里并下载相应的代码。 代码文件导入后,我们还需要导入以下资源文件: res//-布局文件.res//.xml-zxing ids的集合.res/raw/beep.ogg-将要播放的声音文件扫描成功后播放。 .res//...- 总共 3 个文件:.png、.9.png、.png。

让我们开始吧

现在我们从开始,期望得到相应的结果:

public class MainActivity extends AppCompatActivity {   public final static int SCANNING_REQUEST_CODE = 1;   private TextView textView;   protected void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.activity_main);       textView = (TextView) findViewById(R.id.textView);       textView.setOnClickListener(new View.OnClickListener() {
           @Override
           public void onClick(View v) {
               Intent intent = new Intent(MainActivity.this, CaptureActivity.class);
               intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
               startActivityForResult(intent, SCANNING_REQUEST_CODE);
           }
       });
   }   @Override
   protected void onActivityResult(int requestCode, int resultCode, Intent data) {
       super.onActivityResult(requestCode, resultCode, data);
       switch (requestCode) {
           case SCANNING_REQUEST_CODE:
               if (resultCode == RESULT_OK) {
                   final Bundle bundle = data.getExtras();
                   Handler handler = new Handler(Looper.getMainLooper());
                   handler.post(new Runnable() {
                       @Override
                       public void run() {
                           textView.setText(bundle.getString("result"));
                       }
                   });
               }
               break;
           default:
               break;
       }
   }
}

复制

我们可以在()方法中得到相应的结果。 注意:如果您的应用程序的API级别为23或更高,请不要忘记调整运行时权限,因为我们的应用程序需要使用相机。

测试

现在我们可以测试应用是否成功运行。 访问生成您想要的二维码并享受测试的乐趣。 我们可以期待以下结果:

综上所述

在本教程中,我们使用ZXing库来实现条形码和二维码扫描。 在您自己的应用程序中,您可能需要进一步处理扫描结果,例如加载 URL 或从第三方数据源获取数据。 您可以访问项目主页下载所有源代码。 是一款基于MVP架构,使用.0、ZXing开发的快速查询App。

参考

ZXing - ZXing(“Zebra”)项目的官方主页。

提醒:请联系我时一定说明是从星空网上看到的!