Я не уверен, есть ли способ перезагрузить камеру через терминал или DDMS, но я добился большого успеха, положив мой вызов на Camera.release()
в методе onPause()
моей активности, поэтому камера получает выпущен всякий раз, когда приложение переходит в фоновый режим. Точно так же, моя инициализация камеры происходит в onResume()
, поэтому камера будет открыта при первом запуске, затем отпущена и повторно инициализирована снова, когда ваше приложение перемещается в фоновый режим и обратно. Эта техника полностью устранила проблему, которую вы описываете для меня.
Если проблема не устранена для вас, также рассмотрите возможность упаковки кода, который может привести к сбою, в try / catch, где вы ловите любой Exception
и делаете вызов, чтобы освободить камеру в этом блоке catch. Я обычно использую эту технику для ошибок, которые можно сгладить, не закрывая приложение, однако я считаю, что это будет работать во всех случаях.