0
我的应用程序是一个简单的火炬,它工作正常,但当手机关闭闪光灯也关闭,我想打开它,直到我关掉应用程序或杀死应用程序... 那么我要问,如果它可以通过这个程序,如果被其他应用程序开启,关闭闪光灯,反之亦然...... 这里是我的代码:为什么屏幕关闭时闪光灯会关闭?
package com.example.flash;
import android.media.MediaPlayer;
import android.media.MediaPlayer.OnCompletionListener;
import android.os.Bundle;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.graphics.Color;
import android.hardware.Camera;
import android.hardware.Camera.Parameters;
import android.util.Log;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.Window;
import android.view.WindowManager;
import android.widget.ImageButton;
import android.widget.RelativeLayout;
import android.widget.Toast;
import android.widget.ToggleButton;
public class FlashLight extends Activity {
ImageButton l;
Camera camera = Camera.open();
final Context context = this;
Camera.Parameters cp;
boolean flag = false;
boolean mode = false;
String OFF = android.hardware.Camera.Parameters.FLASH_MODE_OFF;
String ON = android.hardware.Camera.Parameters.FLASH_MODE_ON;
String TORCH = android.hardware.Camera.Parameters.FLASH_MODE_TORCH;
String AUTO = android.hardware.Camera.Parameters.FLASH_MODE_AUTO;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.requestWindowFeature(Window.FEATURE_NO_TITLE);
final PackageManager pm = context.getPackageManager();
if(pm.hasSystemFeature(PackageManager.FEATURE_CAMERA_FLASH)){
cp = camera.getParameters();
setContentView(R.layout.activity_main);
l = (ImageButton) this.findViewById(R.id.l);
l.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
try{
if(cp.getFlashMode().equals(OFF))
{
lamp(mode);
}
else if(cp.getFlashMode().equals(TORCH) || cp.getFlashMode().equals(ON))
{
lamp(mode);
}
}
catch(Exception e){
Log.e("STACKTRACE:", Log.getStackTraceString(e));
}
}
});
a.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if(camera == null){
lamp(mode);
}
else{
lamp(mode);
}
}
});
}
}
public void lamp(boolean mode){
if(!mode){
if(flag){
camera = Camera.open();
cp = camera.getParameters();
}
playSound(mode);
cp.setFlashMode(Parameters.FLASH_MODE_TORCH);
camera.setParameters(cp);
l.setImageResource(R.drawable.on);
this.mode = true;
}
else if(mode){
playSound(mode);
cp.setFlashMode(Parameters.FLASH_MODE_OFF);
camera.setParameters(cp);
camera.release();
camera = null;
flag = true;
l.setImageResource(R.drawable.off);
this.mode = false;
}
}
}