gpt4 book ai didi

android - 在 Android 中强制相机 LED 灯在 n 分钟或 n 秒后关闭

转载 作者:行者123 更新时间:2023-11-29 00:44:45 27 4
gpt4 key购买 nike

我正在研究打开/关闭相机手电筒。

我想做的是:

  1. 当用户点击启动 LED 按钮时,它应该启动相机 LED。
  2. 在 n 秒后自动停止摄像头 LED,例如。 30 秒后(这完全取决于用户设置)。
  3. 当用户按下“停止 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/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com