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

时间:2016-03-03 05:18:19

标签: java android android-fragments qr-code zxing

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

2 个答案:

答案 0 :(得分:0)

将此库用于QR码扫描程序,它是ZXING Scanner项目的修改,便于Android QR码检测。QR Code Scanner

答案 1 :(得分:-1)

对于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中进行triger,则写入,否则您将得到错误的请求代码。

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
            }
        }
    }

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

<activity android:name="com.journeyapps.barcodescanner.CaptureActivity"
        android:clearTaskOnLaunch="true"
        android:stateNotNeeded="true">
        <intent-filter>
            <action android:name="com.google.zxing.client.android.SCAN"/>
            <category android:name="android.intent.category.DEFAULT"/>
        </intent-filter>
    </activity>