Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.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_Flash - Fatal编程技术网

Android 为什么屏幕关闭时闪光灯会关闭?

Android 为什么屏幕关闭时闪光灯会关闭?,android,flash,Android,Flash,我的应用程序是一个简单的手电筒,它工作正常,但当手机关闭闪光灯也关闭了,我想让它打开,直到我关闭应用程序或关闭应用程序。。。 然后我想问一下,如果另一个应用程序打开flash,是否可以通过该应用程序关闭flash,反之亦然。。。 这是我的密码: package com.example.flash; import android.media.MediaPlayer; import android.media.MediaPlayer.OnCompletionListener; import and

我的应用程序是一个简单的手电筒,它工作正常,但当手机关闭闪光灯也关闭了,我想让它打开,直到我关闭应用程序或关闭应用程序。。。 然后我想问一下,如果另一个应用程序打开flash,是否可以通过该应用程序关闭flash,反之亦然。。。 这是我的密码:

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活动,在后台运行