2014-11-04 2 views
2

В нашем приложении мы используем камеру для сканирования QR-кодов. Я получил несколько сбоев на консоли разработчиков, говоря «не подключиться к службе камеры». Чтение вокруг я узнал, что возможно, что другое приложение открыло камеру и не вызвало release() onPause (я проверял это с помощью простого приложения, которое ведет себя так). Я уже сделал сообщение об ошибке для пользователя вместо сбоя, однако я хотел бы указать пользователю приложение, которое блокирует доступ к камере. Возможно ли что-то подобное или лучшее, что я могу сделать, - «пожалуйста, выйдите из любых приложений, которые могут использовать камеру и повторите попытку»?Есть ли способ узнать, какое приложение заблокировано камерой?

+1

Просто отпустите службу камеры и откройте ее – Amy

+0

Как я могу отпустить что-то, что у меня нет? Чтобы уточнить, у меня есть наше приложение, а затем простое тестовое приложение, в котором есть две кнопки: один вызывает mCamera = Camera.open(), а другой mCamera.release(). Я открываю тестовое приложение, блокирую/открываю камеру, а затем открываю приложение (совершенно другое приложение) и пытаюсь получить доступ к камере, и он не работает. Я не могу вызвать mCamera.release() в нашем приложении, потому что mCamera имеет значение null (поскольку mCamera = Camera.open() не удалось). – ciny

+1

Затем вы можете выбросить Exception и показать ошибку пользователю для закрытия камеры, но, похоже, не представляется возможным показать, какое приложение в настоящее время использует службу камеры. – Amy

ответ

3

К сожалению, в настоящее время это невозможно.

+0

да, похоже, я отмечаю это как ответ, поскольку, к сожалению, это так. – ciny

Смежные вопросы