2014-01-10 2 views
0

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

ответ

2

Нет, вам не нужны специальные файлы. Вы можете использовать общедоступные API-интерфейсы из AVFoundation.framework. С помощью AVCaptureSession вы можете снимать фотографии и записывать видео внутри демона или настраивать. И насколько я знаю, вы можете сделать это даже при обычных приложениях AppStore, находясь в фоновом режиме.

Я сделал и то, и другое на iOS 5-6, он работает именно так. На iOS 7 Apple защищен микрофон и камера с правами. Если вы попытаетесь получить доступ к ним внутри демона, вы просто получите сообщение об ошибке при попытке захватить фото, видео или аудио. Диалогов не будет показано. В консоли вы увидите сообщение о невозможности доступа к камере или микрофону.

Для решения этой проблемы необходимо подписать своего демона со специальными правами. Добавить com.apple.private.tcc.allow ключ со значением массива. Затем вставьте в этот массив следующие строковые элементы: kTCCServiceMicrophone, kTCCServiceCamera. Он должен выглядеть как

<key>com.apple.private.tcc.allow</key> 
<array> 
    <string>kTCCServiceMicrophone</string> 
    <string>kTCCServiceCamera</string> 
</array> 

Если вы хотите, чтобы захватить фото/видео/аудио в демоне нужно просто подписать его с правами. Если вы хотите сделать это внутри настройки, вам нужно быть уверенным, какое приложение будет загружать вашу настройку, так как это приложение должно быть подписано с правами. Предположим, вы хотите сделать это в настройке SpringBoard. Просто откройте SpringBoard с любым текстовым редактором и найдите строку <key>. Вы найдете права, среди которых будут права, которые нам нужны. К счастью, SpringBoard на iOS 7 уже подписал с правами, которые позволяют ему использовать камеру и микрофон.

+0

Спасибо! это так классно. я попробую AVFoundation в своем приложении. – JohnSuu

+0

и у меня есть другой вопрос. Я создаю приложение и запускаю его командой терминала ./test (бинарный файл приложения), это сообщение printf. но не делайте фото. Я не знаю, почему. Я написал приложение для местоположения. просто запущен таким же образом. оно работает. Должен ли я добавить что-то в свой info.plist? – JohnSuu

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