Android 为什么屏幕关闭时闪光灯会关闭?
我的应用程序是一个简单的手电筒,它工作正常,但当手机关闭闪光灯也关闭了,我想让它打开,直到我关闭应用程序或关闭应用程序。。。 然后我想问一下,如果另一个应用程序打开flash,是否可以通过该应用程序关闭flash,反之亦然。。。 这是我的密码:Android 为什么屏幕关闭时闪光灯会关闭?,android,flash,Android,Flash,我的应用程序是一个简单的手电筒,它工作正常,但当手机关闭闪光灯也关闭了,我想让它打开,直到我关闭应用程序或关闭应用程序。。。 然后我想问一下,如果另一个应用程序打开flash,是否可以通过该应用程序关闭flash,反之亦然。。。 这是我的密码: package com.example.flash; import android.media.MediaPlayer; import android.media.MediaPlayer.OnCompletionListener; import and
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;
}
}
}
锁定手机后,您的活动将进入onPause()状态。因此,您可以使用后台服务进行尝试 通过单击开始按钮,启动服务,并将您的全部代码放在后台服务中。只需单击停止按钮即可停止服务。一般认为,即使手机处于锁定状态,服务也会运行 您可以查看此链接以了解服务的工作原理。它就像一个没有UI的Android活动,在后台运行