Android M版本上,如果我们使用的闪光灯是透过LED2 的driver去实际控制打闪的,在下拉菜单点击手电筒会不亮。


[SOLUTION]


M版本的手电筒是透过flash_hal.cpp 来控制的,默认的source code中只会下command去控
制LED1。如果闪光灯实际上是通过LED2的driver去控制,那么我们需要添加对LED2的控制
,如下code中所示。(add for led2是需要添加的内容)


setTorchOnOff(MINT32 i4SensorOpenIndex, MBOOL en)
{
MINT32 i4SensorDevId = (!m_pHalSensorList)? 0: m_pHalSensorList-
>querySensorDevIdx(i4SensorOpenIndex);
if(i4SensorDevId==2 && cust_isSubFlashSupport()==0)
return 1;
StrobeDrv* pStrobe = StrobeDrv::getInstance(i4SensorDevId);
StrobeDrv* pStrobe2 = StrobeDrv::getInstance(i4SensorDevId,2);//add for
led2
if(en==1){
pStrobe->init();
pStrobe->setDuty(0);
pStrobe->setTimeOutTime(0);
//add for led2
pStrobe2->init();
pStrobe2->setDuty(0);
pStrobe2->setTimeOutTime(0);
//add end
pStrobe->setOnOff(1);
pStrobe2->setOnOff(1);//add for led2
m_status = 1;
}else{
pStrobe->setOnOff(0);
pStrobe->uninit();
//add for led2
pStrobe2->setOnOff(0);
pStrobe2->uninit();
//add end
m_status = 0;
}
return 0;
}