我正在使用android vision扫描应用中的QR码,一切正常,但是现在我想让我的应用可以通过打开前置摄像头而非后置摄像头来扫描QR码。
扫描屏幕代码:
public class BarCodeScanActivity extends AppCompatActivity implements BarcodeReader.BarcodeReaderListener {
private String TAG = OperatorBarCodeScanActivity.class.getSimpleName();
private Context mContext;
private View currentView;
private Activity currentactivity;
private BarcodeReader barcodeReader;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.barcode_reader_activity);
mContext = getApplicationContext();
barcodeReader = (BarcodeReader) getSupportFragmentManager().findFragmentById(R.id.barcode_scanner);
}
@Override
public void onScanned(Barcode barcode) {
// playing barcode reader beep sound
barcodeReader.playBeep();
final String scannedCode = barcode.displayValue;
}
@Override
public void onScannedMultiple(List<Barcode> barcodes) {
}
@Override
public void onBitmapScanned(SparseArray<Barcode> sparseArray) {
}
@Override
public void onScanError(String errorMessage) {
Toast.makeText(getApplicationContext(), mContext.getString(R.string.barcode_error)+" " + errorMessage, Toast.LENGTH_SHORT).show();
}
@Override
public void onCameraPermissionDenied() {
finish();
}}
此屏幕的布局如下所示:
<LinearLayout
android:visibility="visible"
android:id="@+id/scanningContainer"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center_vertical|center_horizontal"
android:gravity="center_vertical|center_horizontal"
android:orientation="vertical">
<fragment
android:id="@+id/barcode_scanner"
android:name="info.androidhive.barcode.BarcodeReader"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:auto_focus="true"
app:use_flash="false" />
<info.androidhive.barcode.ScannerOverlay
android:layout_width="match_parent"
android:layout_height="match_parent"
app:line_color="@color/colorPrimary"
app:line_speed="6"
app:line_width="4"
app:square_height="200"
app:square_width="200" />
</LinearLayout>
如何更新代码以使用Camera Surface,然后调用正面摄像头?
谢谢。
答案 0 :(得分:0)
我为您执行了谷歌搜索-这是您需要使用的方法:
不幸的是,BarcodeReader
片段并未公开此API,因此您需要分叉它的实现并对此进行调整:
考虑进行公共派生,将其设置为可配置并将发布请求发布给原始作者,这样其他人也可以从您的扩展中受益。