我想在我的應用程序創建一個像SOS模塊選項,我創建的代碼來處理這個問題:選項像SOSModule沒有工作
class SOSModule {
private Camera camera;
private Camera.Parameters params;
private boolean isFlashOn;
void blink(final int delay, final int times) {
Thread t = new Thread() {
public void run() {
try {
for (int i=0; i < times*2; i++) {
if (isFlashOn) {
turnOffFlash();
} else {
Camera.open();
turnOnFlash();
}
sleep(delay);
}
} catch (Exception e){
e.printStackTrace();
}
}
};
t.start();
}
void turnOnFlash() {
if (!isFlashOn) {
if (camera == null || params == null) {
return;
}
params = camera.getParameters();
params.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH);
camera.setParameters(params);
camera.startPreview();
isFlashOn = true;
}
}
void turnOffFlash() {
if (isFlashOn) {
if (camera == null || params == null) {
return;
}
params = camera.getParameters();
params.setFlashMode(Camera.Parameters.FLASH_MODE_OFF);
camera.setParameters(params);
camera.stopPreview();
isFlashOn = false;
}
}
}
我還添加所有必需的權限清單中和當然我會按時檢查使用權限。
但這沒有工作。我只是創建其他代碼,但像沒有任何循環一樣工作。
你們能幫我嗎?
這對我很重要,我不能這樣做,因爲我的華爲p8 Lite和p9 Lite不會給出任何錯誤,當發生這種情況時,它是一個華爲軟件問題,相機我需要在精神設備上測試它,它的一個大問題,我沒有任何來自設備的日誌。
public void flash_effect() throws InterruptedException
{
cam = Camera.open();
final Camera.Parameters p = cam.getParameters();
p.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH);
Thread a = new Thread()
{
public void run()
{
for(int i =0; i < 10; i++)
{
cam.setParameters(p);
cam.startPreview();
try {
Thread.sleep(50);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
cam.stopPreview();
try {
Thread.sleep(50);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
};
a.start();
}}
此代碼工作,但閃光燈是開放的無窮無任何閃爍效果 任何想法?
它會崩潰,並拋出一個異常,它只是沒有做任何事情在SOS按鈕按? –
早些時候有類似問題http://stackoverflow.com/questions/39055659/thread-interrupt-alternatives –
什麼都沒有發生,當我點擊SOS按鈕 – Rodriquez