如何在Android中以纵向模式在Fragment中实现QR码扫描器?

我正在开发一个应用程序,在这个应用程序中我必须实现QR代码扫描程序,我可以在Zxing库的帮助下轻松地在活动中实现这个东西,但问题是扫描程序应该在片段中并且在ViewPager和I中添加片段也想定制扫描仪的视图。

使用此库进行QR码扫描,它是ZXING Scanner项目的修改,便于Android QR码检测。 QR码扫描仪

适用于Android Studio用户

repositories { maven { url "https://jitpack.io" } } compile 'com.journeyapps:zxing-android-embedded:3.2.0@aar' compile 'com.google.zxing:core:3.2.1' 

首先,您需要根据相机打开来触发意图(扫描仪)。

 Intent intent = new Intent("com.google.zxing.client.android.SCAN"); intent.putExtra("SCAN_MODE", "QR_CODE_MODE"); 

然后,如果在Fragment中进行trigerred然后写入,否则您将得到您的请求代码错误。

 getActivity().startActivityForResult(intent, 0); 

如果来自活动

 startActivityForResult(intent, 0); 

然后,它必须是一个活动,您需要扫描仪捕获的结果,我已捕获并因此显示在Toast中。

  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(this,contents,Toast.LENGTH_LONG).show(); // Handle successful scan } else if (resultCode == RESULT_CANCELED) { // Handle cancel } } } 

最后,在清单文件中对其进行索引,使用意图filter使其能够识别其来源和function