我正在研究打开/关闭相机手电筒。
我想做的是:
- 当用户点击启动 LED 按钮时,它应该启动相机 LED。
- 在 n 秒后自动停止摄像头 LED,例如。 30 秒后(这完全取决于用户设置)。
- 当用户按下“停止 LED”按钮时停止摄像头 LED
我使用 ToggleButton 来启动和停止相机 LED。
这是我所做的:
toggleLED.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
if (toggleLED.isChecked())
{
startLED();
}
else
{
stopLED();
}
}
});
到目前为止,我已成功打开和关闭相机灯。
开启:
void startLED(){
Camera cam;
cam = Camera.open();
Parameters params = cam.getParameters();
params.setFlashMode(Parameters.FLASH_MODE_ON);
cam.setParameters(params);
cam.startPreview();
cam.autoFocus(new AutoFocusCallback() {
public void onAutoFocus(boolean success, Camera camera) {
}
});
}
对于关闭:
void stopLED() {
cam.stopPreview();
cam.release();
}
ToggleButton 的功能运行良好。
但我想要的是: 如何在 n 秒后关闭相机灯?
已编辑:
我试过使用它并且它完全可以正常工作..但我想知道我是否以正确的方式进行..
Runnable r = new Runnable()
{
public void run()
{
stopLED();
}
};
toggleLED.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
// Perform action on clicks
if (toggleLED.isChecked())
{
startLED();
int onledseconds=pref.getInt(MySettings.SHUTOFF_PERIOD,0);
if(onledseconds!=0)
handler.postDelayed(r,ledonseconds);
}
else
{
stopLED();
}
}
});
最佳答案
使用 AlarmManager安排一个将关闭相机灯的 PendingIntent。通过使用 AlarmManager,您可以确保即使您的应用程序被系统暂停或终止,它仍会运行。
您可以在 Android: How to use AlarmManager 查看一些示例代码
关于android - 在 Android 中强制相机 LED 灯在 n 分钟或 n 秒后关闭,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6972474/