Android闪光灯应用

时间:2012-11-01 22:17:08

标签: android android-camera

我想为Android设备创建一个应用程序,该应用程序将有2个按钮,一个按钮用于“ON”,另一个按钮用于“OFF”。我在网上搜索了一个例子,我看过很多例子,但是他们的组织非常糟糕(对我而言)。到目前为止我创建的是带按钮的布局和主要活动的代码是:

 package com.simple.flashlight;

import android.os.Bundle;
import android.app.Activity;
import android.graphics.Camera;
import android.hardware.Camera.Parameters;
import android.view.Menu;
import android.view.View;
import android.widget.Button;

public class Main extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main_menue);

        Button turnOnButtOn = (Button) findViewById (R.id.button1);
        Button turnOnButtOff = (Button) findViewById (R.id.button2);


        turnOnButtOn.setOnClickListener(new Button.OnClickListener(){
            public void onClick(View cameraButton){

            }
        });
    }
}

现在我想做这样的事情(伪代码):

turnOnButtOn.setOnClickListener(new Button.OnClickListener(){
    public void onClick(View cameraButton){
        turnOnTheFlahLight
    }
});

turnOnButtOn.setOnClickListener(new Button.OnClickListener(){
    public void onClick(View cameraButton){
        turnOffTheFlahLight
    }
});

如果有任何完整的参考(我是android的新手),那就太好了。 谢谢

3 个答案:

答案 0 :(得分:3)

首先,您需要为清单添加权限才能使用手电筒:

 <permission android:name="android.permission.FLASHLIGHT"
             android:permissionGroup="android.permission-group.HARDWARE_CONTROLS"
             android:protectionLevel="normal" />

要打开手电筒,请使用以下内容:

Camera mCam = Camera.open();     
Parameters p = mCam.getParameters();
p.setFlashMode(Parameters.FLASH_MODE_TORCH);
mCam.setParameters(p);
mCam.startPreview();

将其关闭:

mCam.stopPreview();
  mCam.release();

答案 1 :(得分:2)

如果您想打开设备的LED以使其像手电筒一样,这就是您的伪代码所指示的,您的应用必须假装它是一个相机应用程序,因为闪光灯在相机API中。因此,你必须做一些事情 1)在您的清单中,您需要声明您的应用程序使用camera permission and feature
2)在应用程序代码中,您需要使用Camera :: open()
实际创建Camera对象的实例 3)你的应用程序代码需要创建一个CameraParams对象,并将flash模式设置为on或torch(自从我看到这个已经过了几个月,但是其中一个会做到这一点)。查看CameraParemeters文档以获取更多详细信息。在此对象中设置正确的参数后,您需要在步骤2中创建的Camera对象上调用setParameters 4)然后你需要调用startPreview()

要关闭闪光灯,您只需要在Camera对象上调用stopPreview()

答案 2 :(得分:0)

如果你有错误的设备,闪光灯应用程序对初学者来说不是很好,因为有些制造商不会使用android提供的普通方式。 我建议你做一些其他的东西来学习android。