2013-10-05 2 views
4

Я разрабатываю приложение для Firefox OS, которое должно загружать камеру, когда элемент тронут.Активность камеры FirefoxOS

У меня был поиск в Интернете, но я не мог найти способ сделать такую ​​вещь, если бы я не начал «веб-активность» и не позволял пользователю выбирать приложение для выбора.

Я бы хотел, чтобы приложение камеры запускалось и не позволяло пользователю выбрать приложение для запуска. Есть ли способ? (Я действительно надеюсь!)

Благодарим за ответ заранее!

Lorenzo

ответ

4

Запуск камеры (приложения) и получение доступа к камере (аппаратное обеспечение) - это две разные вещи - в зависимости от ваших потребностей вам может понадобиться API-интерфейс камеры (как предложил Джек), чтобы вытащить изображения/видео с устройство камеры устройства, или вы можете просто захотеть запустить встроенное приложение для камеры, чтобы пользователь мог взаимодействовать с ним (без необходимости извлекать из этого взаимодействия любой результат, например фотографию).

К сожалению, оба варианта использования в настоящее время ограничены системой разрешений Firefox OS.

Прямой доступ к аппаратной части камеры требует разрешения уровня "Certified", что предотвращает его использование в сторонних приложениях. Если вам нужна эта функция, your best chance должен подождать, пока WebRTC (the getUserMedia() API) не приземлится на устройствах Firefox OS, что даст вам прямой доступ к аппаратам камеры и микрофона в сторонних приложениях (есть already some experiments on early Nightly builds of FxOS, которые используют API-интерфейс getUserMedia WebRTC на реальных устройствах, поэтому вам это не займет много времени, прежде чем он станет доступен конечным пользователям). Следите за ходом выполнения работ bug 750011.

Другой вариант использования - это запуск встроенной камеры приложение из вашего приложения. Чтобы запустить установленное приложение на устройстве, вам нужна ссылка на его App object, при вызове метода объекта .launch() объекта запускает выбранное приложение. К сожалению, в настоящее время единственным способом приобретения упомянутого объекта приложения, по-видимому, является вызов функции Apps.mgmt.getAll(), в котором перечислены все установленные приложения на вашем устройстве - сканирование списка, в котором вы могли бы выбрать приложение «Камера», и использовать его метод launch() для запустите его. Вы могли бы see this in action в Kevin Grandon's "Matchscreen" homescreen-experiment. К сожалению, система разрешений имеет и последнее слово в этом случае использования, так как объект Apps.mgmt вызывает вызовы, также требующие разрешения «Сертифицированный» уровень (разрешение webapps-manage). Это одна из основных причин, по которым сторонние домашние экраны (like the one by Matteo D'Ignazio) не могут функционировать и фактически запускать приложения в настоящее время. Существует ongoing discussion на ослабление требований к этому, однако, и есть работа, продолжающаяся в отношении сторонних домашних экранов, поэтому (со временем) это также должно быть разрешено.

+0

Благодарим за ответ. – LoreV

0

Как видно на странице MDN объясняющей App permissions, камера API не доступен для сторонних разработчиков пока нет, но есть планы, как это происходит в будущем.

Примечание. Причина, по которой камера ограничена сертифицированными приложениями, заключается в том, что песочница, в которой работают приложения, препятствует доступу к оборудованию камеры. Наша цель - как можно скорее сделать его доступным для сторонних приложений, но у нас нет времени на это в начальной версии.

0

Вы можете использовать webRTC (getUserMedia API) в FxOS для доступа к камере, как в современном браузере рабочего стола через полгода. Это будет предпочтительным способом, а не устаревшим API mozCamera (который не может использоваться для стороннего разработчика).

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