gpt4 book ai didi

java - 如何修改我的代码以使用前置摄像头扫描二维码

转载 作者:行者123 更新时间:2023-12-01 21:50:37 25 4
gpt4 key购买 nike

我正在使用 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>

如何更新代码以使用 Surface 摄像头,然后调用前置摄像头?

谢谢。

最佳答案

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

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

不幸的是,这个 API 没有由 BarcodeReader fragment 公开,因此您需要 fork 它的实现并进行调整:

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

考虑创建一个公共(public) fork ,使此设置可配置并向原始作者发布拉取请求,以便其他人也可以从您的扩展中受益。

关于java - 如何修改我的代码以使用前置摄像头扫描二维码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58765364/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com