首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Android中迫使摄像头LED灯在n分钟或n秒后关闭

在Android中迫使摄像头LED灯在n分钟或n秒后关闭
EN

Stack Overflow用户
提问于 2011-08-07 11:23:18
回答 2查看 1.6K关注 0票数 2

我正在忙着开/关照相机手电筒。

我想做的是:

  1. 当用户点击开始LED按钮,它应该启动相机LED。
  2. 停止相机LED自动在n秒钟后,例如。30秒后(完全基于用户设置)。
  3. 当用户按下“停止LED”按钮时,停止照相机LED

我用ToggleButton启动和停止相机发光二极管。

以下是我所做的:

代码语言:javascript
复制
 toggleLED.setOnClickListener(new OnClickListener() {  
            public void onClick(View v) {      

                if (toggleLED.isChecked())
                {
                    startLED();
                }
                else      
                {
                    stopLED();
                }
            }
        });

到目前为止,我已经成功地打开和关闭了摄像机灯。

用于启动:

代码语言:javascript
复制
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) {
                }
     });
}

因为关闭:

代码语言:javascript
复制
void stopLED() {
    cam.stopPreview();
    cam.release();
}

托格巴顿的功能很好。

但是我想要的是:我怎么能在n秒钟后关掉摄像机灯呢?

编辑:

我试着用它&它完全起作用了,fine..But,我想知道我是否用正确的方式。

代码语言:javascript
复制
 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();
                }
            }
        });      
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-08-17 13:45:13

我试着用它&它完全起作用了,fine..But,我想知道我是否用正确的方式。

代码语言:javascript
复制
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();
    }                     
  }
}); 
票数 0
EN

Stack Overflow用户

发布于 2011-08-07 15:19:29

使用AlarmManager计划一个PendingIntent,这将关闭相机的灯光。通过使用AlarmManager,您可以确保即使您的应用程序被系统暂停或杀死,它仍将运行。

您可以在安卓:如何使用AlarmManager上看到一些示例代码

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6972474

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档