我想为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的新手),那就太好了。 谢谢
答案 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)