0
我有一个问题,onCallStateChanged()
它不是听众或程序本身。onCallStateChanged不更改状态
除了一件事以外,一切正常。 当我在while()-Loop
中时,我无法跳过呼叫状态。
我想要做的是当电话响铃时让LED闪烁。
所以我跳进:
if (TelephonyManager.CALL_STATE_RINGING == state){
// Incoming call handling
Log.d(incomingNumber, "Ring");
ring = true;
idle = false;
if (mCamera == null) {
mCamera = Camera.open();
Parameters pLightOn = mCamera.getParameters();
Parameters pLightOff = mCamera.getParameters();
pLightOn.setFlashMode(Parameters.FLASH_MODE_TORCH);
pLightOff.setFlashMode(Parameters.FLASH_MODE_OFF);
mCamera.setParameters(pLightOn);
mCamera.startPreview();
try {
Thread.sleep(30);
} catch (InterruptedException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
//##########################################
while(ring && !idle){
try {
mCamera.setParameters(pLightOff);
Thread.sleep(1000);
mCamera.setParameters(pLightOn);
Thread.sleep(30);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
idle = true;
pLightOff.setFlashMode(Parameters.FLASH_MODE_OFF);
e.printStackTrace();
}
catch(RuntimeException ex){
idle = true;
pLightOff.setFlashMode(Parameters.FLASH_MODE_OFF);
String errorMessage = "Error setting camera flash status. Your device may be unsupported.";
}
}
idle = true;
ring = false;
pLightOff.setFlashMode(Parameters.FLASH_MODE_OFF);
mCamera.stopPreview();
mCamera.release();
//##########################################
}
}
但问题是,当我结束调用它不会跳下WHILE
。 STATE
不变,它保持在RING
。 所以我有无尽的眨眼。它永远不会回到IDLE
。
当我删除while-loop
一切工作正常,但。 它跳入。开关LED ON
...然后OFF
...并且当我结束呼叫时返回到IDLE
。 只是一次...但我希望他这样做,只要电话在RING
状态。
任何想法来解决这个问题.. ??