Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/212.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
不能让我的手电筒工作一次以上-android_Android_Flashlight_Android Imagebutton - Fatal编程技术网

不能让我的手电筒工作一次以上-android

不能让我的手电筒工作一次以上-android,android,flashlight,android-imagebutton,Android,Flashlight,Android Imagebutton,大家好,我正在尝试为android手机构建我的第一个应用程序。这是一个有一些特点的手电筒。我已经为开/关按钮编写了代码,但是使用我的退出代码,开/关按钮只工作一次,我不知道如何将其修复为工作多次。这是我的密码: public class MainActivity extends ActionBarActivity { ImageButton OnOff; Button SOS, Pallette; private Camera camera; boolean isFlashOn; boolea

大家好,我正在尝试为android手机构建我的第一个应用程序。这是一个有一些特点的手电筒。我已经为开/关按钮编写了代码,但是使用我的退出代码,开/关按钮只工作一次,我不知道如何将其修复为工作多次。这是我的密码:

public class MainActivity extends ActionBarActivity {

ImageButton OnOff;
Button SOS, Pallette;
private Camera camera;
boolean isFlashOn;
boolean isFlashOff;
boolean hasFlash;
Parameters params;
MediaPlayer mp;
String blink = "01010101";
long blinkDelay = 50;

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

    // declare flash switch button
    OnOff = (ImageButton) findViewById(R.id.bOnOff);

    // declare sos flash button
    SOS = (Button) findViewById(R.id.bSOS);

    // Now we check if our device has flash so we can turn on
    hasFlash = getApplicationContext().getPackageManager()
            .hasSystemFeature(PackageManager.FEATURE_CAMERA_FLASH);

    if (!hasFlash) {
        // if our device doesn't have flash we show an error message
        // after pressing "OK" on error message we close the application

        AlertDialog alert = new AlertDialog.Builder(MainActivity.this)
                .create();
        alert.setTitle("Error");
        alert.setMessage("Sorry but your device doesn't support flash");
        alert.setButton("OK", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                // TODO Auto-generated method stub
                finish();
            }
        });
        alert.show();
        return;
    }

    // Now we get the Camera
    getCamera();

    // Display button image
    toggleButtonImage();

    OnOff.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            if (isFlashOn) {
                // turn off flash
                turnOffFlash();
            } else {
                // turn on flash
                turnOnFlash();
            }
        }
    });

private void getCamera() {
    if (camera == null) {
        try {
            camera = Camera.open();
            params = camera.getParameters();
        } catch (RuntimeException e) {
            Log.e("Camera Error", e.getMessage());
        }
    }
}

private void turnOnFlash() {
    if (!isFlashOn) {
        if (camera == null || params == null) {
            return;
        }

        params = camera.getParameters();
        params.setFlashMode(Parameters.FLASH_MODE_TORCH);
        camera.setParameters(params);
        camera.startPreview();
        isFlashOn = true;
    }

    toggleButtonImage();
}

private void turnOffFlash() {
    if (isFlashOn) {
        if (camera == null || params == null) {
            return;
        }

        params = camera.getParameters();
        params.setFlashMode(Parameters.FLASH_MODE_OFF);
        camera.setParameters(params);
        camera.stopPreview();
        isFlashOff = false;
    }

    toggleButtonImage();
}

private void toggleButtonImage() {
    if (isFlashOn) {
        OnOff.setImageResource(R.drawable.on);
    } else {
        OnOff.setImageResource(R.drawable.off);
    }
}

@Override
protected void onDestroy() {
    super.onDestroy();
}

@Override
protected void onRestart() {
    super.onRestart();
}

@Override
protected void onStop() {
    super.onStop();

    if (camera != null) {
        camera.release();
        camera = null;
    }
    }
}
关闭闪存()
方法中更改此选项

isFlashOff = false;
进入

您没有在任何地方使用
isFlashOff

在任何情况下都应拆除瓦莱贝尔

boolean isFlashOff;

分享你的日志错误非常感谢!!!!!我已经做到了这一点,并完美地工作了!!!!非常感谢你!!!!!
boolean isFlashOff;