Ich habe an einer App gearbeitet, die die Taschenlampe an einem Android-Telefon ein- und ausschalten muss. Ich brauche eine Möglichkeit, die Taschenlampe über alle Versionen von Android über API 15 einzuschalten. Das Problem ist, auf älteren Telefonen (API < 21) muss ich die traditionelle Weise (unten) verwenden. Aber auf neueren Handys, wie meinem Nexus 6P, muss ich die Camera2 Schnittstelle benutzen (unter dem unten). Gibt es eine Möglichkeit, die Taschenlampe an ALLEN Android-Versionen mit einem einzigen Code arbeiten zu lassen?Android Taschenlampe in allen Versionen von Android einschalten?
Unten:
camera = Camera.open();
Camera.Parameters parameters = camera.getParameters();
parameters.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH);
camera.setParameters(parameters);
camera.startPreview();
camera = Camera.open();
Camera.Parameters parameters = camera.getParameters();
parameters.setFlashMode(Camera.Parameters.FLASH_MODE_OFF);
camera.setParameters(parameters);
camera.stopPreview();
// camera.release(); used later when app closes
Unter dem Unten:
CameraManager cameraManager = (CameraManager) context.getSystemService(Context.CAMERA_SERVICE);
String cameraId = cameraManager.getCameraIdList()[0];
cameraManager.setTorchMode(cameraId, state); // state is either true or false
Ich sehe, dass die Anrufe veraltet sind, aber nicht unbrauchbar. Könnten Sie nicht den traditionellen Weg für alle Geräte nutzen? – Bill
Aus irgendeinem Grund, nein. Mein Nexus 6P funktioniert nicht, wenn Sie die normale API verwenden. Der Android Monitor gibt Folgendes aus: 'E/Kamera: Error 2'. Ich habe diesen Fehler vorher ohne Hilfe nachgeschlagen. Gibt es irgendwo eine Liste von Kamerafehlern oder funktioniert die ursprüngliche API nicht? – AngryCupcake274
vielleicht hilft die Antwort hier: http://stackoverflow.com/questions/34557157/android-flashlight-code-not-working?rq=1 – Bill