J'ai un problème en utilisant l'appareil photo dans Android.Android lance une erreur à chaque fois que "Camera camera = Camera.open();" est appelé
Développement sur API 25 Nougat 7.1.1 SDK. SDK cible min est fixé à 15.
Il jette l'erreur à chaque fois lors de l'appel:
Camera camera = Camera.open();
avec l'erreur « RuntimeException: Echec de la connexion au service de la caméra », qui peut être vu de mon émulateur (Nexus 5X API 25 Android 7.1.1)
En testant sur un appareil réel (Android 5.1.1), les fonctions de l'appareil photo ne fonctionnent pas - exactement le même problème.
Voici le code:
import android.hardware.Camera;
...
boolean hasCamera = false;
private boolean hasCamera(Context context) {
return context.getPackageManager().hasSystemFeature(PackageManager.FEATURE_CAMERA);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
...
hasCamera = hasCamera(this);
if(!hasCamera) {
takePhotoButton.setText("No Camera Found");
takePhotoButton.setEnabled(false);
}
}
private class TakePhotoButtonListener implements View.OnClickListener {
@Override
public void onClick(View v) {
if(hasCamera) {
try {
Camera camera = Camera.open();
camera.startPreview();
camera.takePicture(
null,
null,
new CameraPictureCallbackJPEG());
} catch (Exception e) {
Log.i("Error", e.getMessage());
}
}
}
}
Le camara est en effet détecté (hasCamera == true).
Je n'utilise pas Camera2 (à partir d'API 21) car je souhaite que mon application fonctionne sur API 15 et versions ultérieures.
J'ai essayé plusieurs réponses ici mais rien n'a fonctionné. S'il vous plaît donnez votre avis!
http://stackoverflow.com/questions/23904459/android-java-lang-runtimeexception-fail-to-connect-to-camera-service –
Problème d'autorisation? – GhostCat
Essayez de redémarrer l'appareil. Je vois généralement cela quand une application a acquis l'appareil photo et ne l'a pas libéré. – CommonsWare