我正在尝试构建一个从IDCard读取QRCode的应用程序,我公司的每个人都会使用它。
我想在运行应用程序时默认使用前置摄像头。我设法用后置摄像头做到了,但理想情况下我不想使用按钮来切换。
MainActivity:
public class MainActivity extends AppCompatActivity implements ZXingScannerView.ResultHandler {
private static final int REQUEST_CAMERA = 1;
private ZXingScannerView mScannerView;
Passageiros mPassageiro; //
Collection<Passageiros> listaPassageiros;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mScannerView = new ZXingScannerView(this){
@Override
protected IViewFinder createViewFinderView(Context context) {
return new CustomZXingScannerView(context);
}
};
List<BarcodeFormat> formats = new ArrayList<>();
formats.add(BarcodeFormat.QR_CODE);
setContentView(mScannerView);
int currentapiVersion = android.os.Build.VERSION.SDK_INT;
if (currentapiVersion >= android.os.Build.VERSION_CODES.M) {
if (checkPermission()) {
Toast.makeText(getApplicationContext(), "Permission already granted", Toast.LENGTH_LONG).show();
} else {
requestPermission();
}
}
}
...
}
我该怎么做?
答案 0 :(得分:1)
查看ZXing库的来源
ZXingCameraView正在扩展BarcodeScannerView,它有一个私有的CameraWrapper,可以使用setupLayout方法设置。 CameraWrapper允许您初始化com.android.Camera。
该问题显示了如何从可用的相机中选择必要的内容:How do I open the "front camera" on the Android platform?
编辑:实际上设备背面甚至还有一个ZXing CameraUtils class选择摄像头。只需将其更改为返回前置摄像头的ID,并将该ID传递给ZXingCameraView上的startCamera(frontCameraId)。