Ich versuche Option wie SOS-Modul in meiner app erstellen, I-Code erstellen zu handhaben:Option wie SOSModule funktionierte nicht
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;
}
}
}
ich auch hinzufügen, alle erforderlichen Berechtigungen in einem offenkundigen und natürlich überprüfe ich die Erlaubnis rechtzeitig.
Aber das ist keine Arbeit. Ich erstelle nur anderen Code, arbeite aber wie "One Flash" ohne Zyklus.
Können Sie mir helfen?
Jungs das ist wichtig für mich, ich kann dies tun, weil mein Huawei p8 Lite und p9 Lite keine Fehler geben, wenn dies passiert, es ist ein Huawei-Software-Problem, mit der Kamera muss ich es auf psychische Gerät testen, und seine a großes Problem, dass ich keine Protokolle von Geräten habe.
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();
}}
Dieser Code funktioniert, aber Flash ist offen für die Unendlichkeit ohne Blinkeffekt Jede Idee ??
liest es zum Absturz bringen und eine Ausnahme auslösen, oder es tut einfach nichts auf SOS-Knopfdruck? –
Hatte ein ähnliches Problem früher http://stackoverflow.com/questions/39055659/thread-interrupt-alternatives –
Nichts passiert, wenn ich auf die SOS-Taste klicken – Rodriquez