如何修改我的代码以使用前置摄像头扫描QR码

问题描述 投票:0回答:1

我正在使用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,然后调用正面摄像头?

谢谢。

java android qr-code vision
1个回答
0
投票

我为您完成了谷歌搜索-这是您需要使用的方法:

https://github.com/ravi8x/Barcode-Reader/blob/master/barcode-reader/src/main/java/info/androidhive/barcode/camera/CameraSource.java#L237

不幸的是,BarcodeReader片段未公开此API,因此您需要分叉它的实现并对此进行调整:

https://github.com/ravi8x/Barcode-Reader/blob/master/barcode-reader/src/main/java/info/androidhive/barcode/BarcodeReader.java#L251

考虑进行公共派生,使此设置可配置并将发布请求发布给原始作者,以便其他人也可以从您的扩展中受益。

© www.soinside.com 2019 - 2024. All rights reserved.