Могут ли приложения получить доступ к моей камере, не сообщая мне об этом?

Предположим, я даю приложению разрешение на доступ к моей камере (и/или микрофону), чтобы сделать снимок. После того, как я сделаю снимок, может ли приложение получить доступ к моей камере без запроса?

Я думал об этом, когда использовал приложение Facebook Messenger. Приложение позволяет делать снимки и отправлять их прямо в сообщения Facebook. Может ли приложение также «просматривать» мою камеру, когда я просматриваю контакты (или делаю что-то еще, не связанное с фотографиями)?

Извиняюсь, если на этот вопрос уже был дан ответ.

Ответы (2)

Этот вопрос на StackExchange привел меня к Руководству разработчика iOS от Apple , в частности, к фоновому разделу. В нем перечислены действия, которые приложения могут запускать в фоновом режиме, доступ к камере не входит в их число.

Это также было бы ужасным условием для времени автономной работы, поэтому неудивительно, что оно не поддерживается. Хотя это не гарантирует, что ни одно из ваших приложений не попытается получить доступ к вашей камере, вы можете быть уверены, что если кто-то попытается это сделать, Apple отклонит его приложение.

Это также гарантирует отсутствие API для доступа к фоновой камере, поэтому, если кто-то не придумал способ взломать взломанную iOS без джейла на очень низком уровне, мы все можем спокойно спать под бдительным оком Siri.

Редактировать: в моем обсуждении с timothymh ниже я понял, что вы, возможно, спрашивали о том, используете ли вы все еще данное приложение, сделав снимок, не переключаясь на новое приложение. Прочитав более интересное руководство Apple для разработчиков , мы обнаружили, что API камеры не будет передавать вам данные до тех пор, пока не будет сделан снимок или завершено видео. Поскольку камера не обрабатывается демоном, было бы очень сложно постоянно опрашивать камеру на наличие входных данных, даже если вы нашли способ, минуя API, для получения данных без пользовательского ввода. Примечание. Я не разработчик Apple, но с официальной точки зрения то, о чем вы говорите, кажется невозможным.

Тем не менее, это относится к тому, когда приложение находится в фоновом режиме, а OP относится к тому, когда оно находится на переднем плане, просто неясно, что к камере осуществляется доступ.
Это справедливое замечание, которое я, по-видимому, упустил из виду. Я предположил, что ОП имел в виду «фон», когда упоминалась прокрутка контактов, хотя я полагаю, что вы могли прокручивать свои контакты в мессенджере.
Еще из Руководства разработчика Apple (хотя и немного устаревшее), похоже, что API камеры предоставит вам данные только после того, как вы выпустите экземпляр камеры, а это означает, что будет чрезвычайно сложно создать экземпляр камеры, не говоря уже о получении данных от нее, не показывая ее. пользователю. Я не думаю, что Apple позволила бы этому случиться, но опять же, я не могу представить, чтобы мои родители занимались любовью, и это, по-видимому, произошло.
Этого достаточно для меня! :) Добавьте это к своему ответу; посмотрим, достаточно ли информации для Джозефа.

Я думаю, что ответ да, может. Но это вряд ли произойдет. Чтобы получить изображение, вы можете использовать класс UIImagePickerController , который наследуется от UINavigationController и UIViewController. Поверх этого представления вы можете поместить другое представление, обратившись к свойству cameraOverlayView.

Но есть еще один вариант, AVFoundation , который вообще не требует никакого вывода. И обратной связи для пользователя нет, если разработчик этого не хочет.