ZXing 前置摄像头自动启动
ZXing auto start with front camera
我正在尝试构建一个从我公司的每个人都会使用的 IDCard 读取 QRCode 的应用程序。
我想在 运行 应用程序时默认使用前置摄像头。我设法用后置摄像头做到了,但理想情况下我不想使用按钮来切换。
主要活动:
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();
}
}
}
...
}
我该怎么做?
查看 ZXing 库的来源
ZXingCameraView 正在扩展 BarcodeScannerView,它有一个私有的 CameraWrapper,您可以使用 setupLayout 方法进行设置。 CameraWrapper 允许您初始化 com.android.Camera。
以及如何从可用相机中选择必要的相机在该问题中显示:How do I open the "front camera" on the Android platform?
编辑:实际上设备背面甚至还有一个 ZXing CameraUtils class 选择摄像头。只需将其更改为前置摄像头的 return id,并将该 id 传递给 ZXingCameraView 上的 startCamera(frontCameraId)。
我正在尝试构建一个从我公司的每个人都会使用的 IDCard 读取 QRCode 的应用程序。
我想在 运行 应用程序时默认使用前置摄像头。我设法用后置摄像头做到了,但理想情况下我不想使用按钮来切换。
主要活动:
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();
}
}
}
...
}
我该怎么做?
查看 ZXing 库的来源
ZXingCameraView 正在扩展 BarcodeScannerView,它有一个私有的 CameraWrapper,您可以使用 setupLayout 方法进行设置。 CameraWrapper 允许您初始化 com.android.Camera。
以及如何从可用相机中选择必要的相机在该问题中显示:How do I open the "front camera" on the Android platform?
编辑:实际上设备背面甚至还有一个 ZXing CameraUtils class 选择摄像头。只需将其更改为前置摄像头的 return id,并将该 id 传递给 ZXingCameraView 上的 startCamera(frontCameraId)。