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