Имам проблем с използването на камерата в Android.
Разработване на API 25 Nougat 7.1.1 SDK. Минималният целеви SDK е зададен на 15.
Извежда грешка всеки път при извикване:
Camera camera = Camera.open();
с грешката „RuntimeException: Fail to connect to camera service“, която може да се види от моя емулатор (Nexus 5X API 25 Android 7.1.1)
При тестване на РЕАЛНО УСТРОЙСТВО (Android 5.1.1) функциите на камерата също не работят - абсолютно същия проблем.
Ето кода:
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());
}
}
}
}
Камарата наистина е открита (hasCamera == true).
Не използвам Camera2 (от API 21) нататък, защото бих искал приложението ми да работи върху API 15 нататък.
Опитах много отговори тук, но нищо не работи. Моля за съвет!