我正在开启/关闭相机手电筒。
我想做的是:
我使用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();
}
}
});
答案 0 :(得分:2)
使用AlarmManager安排PendingIntent,它会关闭相机灯。通过使用AlarmManager,即使您的应用程序被系统暂停或终止,您仍可以确保它仍然可以运行。
看到一些示例代码答案 1 :(得分:0)
我试过用这个&它完全正常。但我想知道我是否以正确的方式进行..
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();
}
}
});