1
我使用android谷歌條碼視覺API,我可以完美地檢測我的QR碼。我怎樣才能同時打開火炬。它需要在晚上掃描二維碼。這裏是工作的代碼我到目前爲止Android谷歌手機視覺api打開相機和手電筒
public class fragment_qrscan extends myFragment {
SurfaceView cameraPreview;
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_qrscan, container, false);
cameraPreview = (SurfaceView)view.findViewById(R.id.camera_preview);
createCameraSource();
return view;
}
private void createCameraSource() {
BarcodeDetector barcodeDetector = new BarcodeDetector.Builder(getActivity()).build();
final CameraSource cameraSource = new CameraSource.Builder(getActivity(),barcodeDetector)
.setAutoFocusEnabled(true)
.setRequestedPreviewSize(1600,1024)
.build();
cameraPreview.getHolder().addCallback(new SurfaceHolder.Callback() {
@Override
public void surfaceCreated(SurfaceHolder holder) {
try {
if (ActivityCompat.checkSelfPermission(getActivity(), Manifest.permission.CAMERA) != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(getActivity(), new String[]{Manifest.permission.CAMERA}, 1);
}
cameraSource.start(cameraPreview.getHolder());
} catch (Exception e) {
e.printStackTrace();
}
}
@Override
public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {
}
@Override
public void surfaceDestroyed(SurfaceHolder holder) {
cameraSource.stop();
}
});
barcodeDetector.setProcessor(new Detector.Processor<Barcode>() {
@Override
public void release() {
}
@Override
public void receiveDetections(Detector.Detections<Barcode> detections) {
final SparseArray<Barcode> barcodes = detections.getDetectedItems();
if (barcodes.size() >0) {
Log.i("myStuff",String.valueOf(barcodes.valueAt(0).displayValue));
}
}
});
}
}
一切工作完美我只是無法弄清楚如何正確地打開了手電筒,仍然使用移動視覺API。任何幫助或建議將不勝感激。
嗨,你包括CameraSource類明確在你的項目? – mydreamadsl
是的,我做了.......... –
謝謝,完美的工作 – mydreamadsl