Сбой при _context.GetSystemService (Context.CameraService) в Xamarin.andoid - PullRequest
0 голосов
/ 29 марта 2019

У нас есть приложение xamarin.froms, в котором нам нужно сделать снимок на основе переключения.

это код

public void OpenCamera()
        {
            if (_context == null || OpeningCamera){
                return;
            }

            OpeningCamera = true;


            _manager = (CameraManager)_context.GetSystemService(Context.CameraService);

            var cameraId = _manager.GetCameraIdList()[0];

            var characteristics = _manager.GetCameraCharacteristics(cameraId);
            var map = (StreamConfigurationMap)characteristics.Get(CameraCharacteristics.ScalerStreamConfigurationMap);

            _previewSize = map.GetOutputSizes(Class.FromType(typeof(SurfaceTexture)))[0];

            _manager.OpenCamera(cameraId, _mStateListener, null);

        }

Впервые камера просыпается, как и ожидалось.если мы нажимаем кнопку, то приложение выходит из строя на этой конкретной линии

        var characteristics = _manager.GetCameraCharacteristics(cameraId);

И это происходит только для самсунговских устройств для других устройств.

это сообщение об ошибке

{Android.Hardware.Camera2.CameraAccessException: Camera service is currently unavailable
  at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () [0x0000c] in <f32579baafc1404fa37ba3ec1abdc0bd>:0 
  at Java.Interop.JniEnvironment+InstanceMethods.CallObjectMethod (Java.Interop.JniObjectReference instance, Java.Interop.JniMethodInfo method, Java.Interop.JniArgumentValue* args) [0x00069] in <7802aa64ad574c33adca332a3fa9706a>:0 
  at Java.Interop.JniPeerMembers+JniInstanceMethods.InvokeAbstractObjectMethod (System.String encodedMember, Java.Interop.IJavaPeerable self, Java.Interop.JniArgumentValue* parameters) [0x00014] in <7802aa64ad574c33adca332a3fa9706a>:0 
  at Android.Hardware.Camera2.CameraManager.GetCameraCharacteristics (System.String cameraId) [0x00029] in <263adecfa58f4c449f1ff56156d886fd>:0 
  at TechnicianApp.Droid.Renderers.Camera.CameraDroid.OpenCamera () [0x0004e] in /Users/apple/Desktop/Pwc-Release/UATRelease3/technician-mobile-app/TechnicianApp.Android/Renders/Camera/CameraDroid.cs:96 
  --- End of managed Android.Hardware.Camera2.CameraAccessException stack trace ---
android.hardware.camera2.CameraAccessException: Camera service is currently unavailable
    at android.hardware.camera2.CameraManager.getCameraCharacteristics(CameraManager.java:192)
    at 

есть ли способ решить эту проблему?

...