Не удается активировать фронтальную вспышку телефона

Верхняя часть кода - обычный фонарик, ниже я попытался подключить еще и фронтальный, но почему-то не определяется frontCameraId

public class MainActivity extends AppCompatActivity {

Button button1 = null;
Button btn;

private Camera camera = null;
private boolean isFlashOn;
private boolean hasFlash;
Camera.Parameters params;

public void errorDialog(){

    AlertDialog dialog = new AlertDialog.Builder(MainActivity.this).create();
    dialog.setTitle("Error!");
    dialog.setMessage("Your device not support flashlight!");
    dialog.setButton("OK", new DialogInterface.OnClickListener(){
        public void onClick(DialogInterface dialog, int which){
         finish();
        }
    });

    dialog.show();
    return;

}

private void getCamera(){

    if(camera == null){
        try{
            camera = Camera.open();
            params = camera.getParameters();
        }catch (RuntimeException e){
            e.printStackTrace();
        }
    }

}

private void turnOn(){
    if(!isFlashOn){
        if(camera == null || params == null){
            return;
        }
        params = camera.getParameters();
        params.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH);
        camera.setParameters(params);
        camera.startPreview();
        isFlashOn = true;

    }
}

private void turnOff(){
    if(isFlashOn){
        if(camera == null || params == null){
            return;
        }
        params = camera.getParameters();
        params.setFlashMode(Camera.Parameters.FLASH_MODE_OFF);
        camera.setParameters(params);
        camera.stopPreview();
        isFlashOn = false;

    }
}


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    button1 = (Button)findViewById(R.id.button1);
    btn = (Button)findViewById(R.id.koo);

    hasFlash = getApplicationContext().getPackageManager().hasSystemFeature(PackageManager.FEATURE_CAMERA_FLASH);

    if(!hasFlash){

        errorDialog();

    }

    getCamera();

    button1.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            if(isFlashOn){
                turnOff();
            }else{
                turnOn();
            }
        }
    });

}

//попытка фронтальной вспышки, вот тут и есть проблема, frontCameraId ошибка "Cannot resolve symbol frontCameraId"
CameraManager cameraManager = (CameraManager)getSystemService(CAMERA_SERVICE);
{
    try {
        if (hasFlashForFrontCamera(cameraManager)) {
            cameraManager.setTorchMode(frontCameraId, true);
        }

    } catch (CameraAccessException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}

//проверка наличия фронтальной вспышки
boolean hasFlashForFrontCamera(CameraManager cManager) throws CameraAccessException {
    for(final String cameraId : cManager.getCameraIdList()){
        CameraCharacteristics characteristics = cManager.getCameraCharacteristics(cameraId);
        int cOrientation = characteristics.get(CameraCharacteristics.LENS_FACING);
        if(cOrientation == CameraCharacteristics.LENS_FACING_FRONT) {
            return characteristics.get(CameraCharacteristics.FLASH_INFO_AVAILABLE);
        }
    }
    return false;
}

}

Ответы (0 шт):