-1

我想为有 2 个按钮的 Android 设备创建一个应用程序,一个按钮用于“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 新手),那就太好了。谢谢

4

3 回答 3

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();
于 2012-11-01T22:23:22.113 回答
2

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

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

于 2012-11-01T22:32:22.387 回答
0

如果您有错误的设备,闪光灯应用程序对初学者来说并不是那么好,因为有些制造商不使用 android 提供的正常方式来打开灯。我建议你做一些其他的事情来学习 android。

于 2012-11-01T22:28:38.883 回答