Android 安卓手电筒坏了

Android 安卓手电筒坏了,android,Android,我正在尝试在我的应用程序中实现flashligth。由于它是一个更大程序的一部分,我创建了另一个活动,即flash_activity.java,并从另一个片段Tab3中创建了它。但不幸的是,点击按钮 在闪光灯中,旨在使手电筒打开的活动没有响应。 这是我的Tab3代码,flash_活动。请帮帮我 Tab3 package com.example.bavarian.sos; import android.content.Context; import android.media.MediaPlay

我正在尝试在我的应用程序中实现flashligth。由于它是一个更大程序的一部分,我创建了另一个活动,即flash_activity.java,并从另一个片段Tab3中创建了它。但不幸的是,点击按钮 在闪光灯中,旨在使手电筒打开的活动没有响应。 这是我的Tab3代码,flash_活动。请帮帮我

Tab3

package com.example.bavarian.sos;

import android.content.Context;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageButton;
import android.content.Intent;

//Our class extending fragment
public class Tab3 extends Fragment
{
ImageButton imageButton;
private boolean playing = false;

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

    View rootView = inflater.inflate(R.layout.tab3, container, false);

    imageButton = (ImageButton) rootView.findViewById(R.id.torch);
    imageButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Intent intent = new Intent(getActivity(), Flash_activity.class);
            startActivity(intent);
        }
    });

    return rootView;
}
}
flash\u活动

package com.example.bavarian.sos;

import android.content.DialogInterface;
import android.content.pm.PackageManager;
import android.hardware.Camera;
import android.media.MediaPlayer;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.ImageButton;
import android.widget.TextView;
import android.widget.Toast;

public class Flash_activity extends AppCompatActivity {

// private ImageButton btnSwitch;
Button button;
Camera camera;
boolean isFlashOn;
boolean hasFlash;
Camera.Parameters params;
MediaPlayer mp;

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


    //btnSwitch= (ImageButton) findViewById(R.id.torch1);
    button = (Button) findViewById(R.id.button);
    hasFlash = getApplicationContext().getPackageManager()
            .hasSystemFeature(PackageManager.FEATURE_CAMERA_FLASH);


    if (!hasFlash) {
        // device doesn't support flash
        // Show alert message and close the application
        AlertDialog alert = new AlertDialog.Builder(Flash_activity.this)
                .create();
        alert.setTitle("Error");
        alert.setMessage("Sorry, your device doesn't support flash light!");
        alert.setButton(DialogInterface.BUTTON_POSITIVE,
                "OK", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialogInterface, int i) {

                    }
                });
        alert.show();
        return;
    }

    // get the camera
    getCamera();

    // displaying button image
    //  toggleButtonImage();


    // Switch button click event to toggle flash on/off
    button.setOnClickListener(new View.OnClickListener() {

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

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

// Turning On flash
private void turnOnFlash() {
    if (!isFlashOn) {
        if (camera == null || params == null) {
            return;
        }
        // play sound
        playSound();

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

        // changing button/switch image
        //    toggleButtonImage();
    }

}

// Turning Off flash
private void turnOffFlash() {
    if (isFlashOn) {
        if (camera == null || params == null) {
            return;
        }
        // play sound
        playSound();

        params = camera.getParameters();
        params.setFlashMode(Camera.Parameters.FLASH_MODE_OFF);
        camera.setParameters(params);
        camera.stopPreview();
        isFlashOn = false;

        // changing button/switch image
        //   toggleButtonImage();
    }
}

// Playing sound
// will play button toggle sound on flash on / off
private void playSound() {
    if (isFlashOn) {
        mp = MediaPlayer.create(Flash_activity.this, R.raw.alrm);
    } else {
        mp = MediaPlayer.create(Flash_activity.this, R.raw.alrm);
    }
    mp.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {

        @Override
        public void onCompletion(MediaPlayer mp) {
            // TODO Auto-generated method stub
            mp.release();
        }
    });
    mp.start();
}


/*    private void toggleButtonImage(){
    if(isFlashOn){
        btnSwitch.setImageResource(R.drawable.flash_on);
    }else{
        btnSwitch.setImageResource(R.drawable.flash_off);
    }
}
*/
@Override
protected void onDestroy() {
    super.onDestroy();
}

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

    // on pause turn off the flash
    turnOnFlash();
}

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


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

    // on resume turn on the flash
    if (hasFlash)
        turnOffFlash();
}

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

    // on starting the app get the camera params
    getCamera();
}

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

    // on stop release the camera
    if (camera != null) {
        camera.release();
        camera = null;
    }
}

}