2014-01-03 4 views
2

Это короткий вопрос, но он прослушивал меня всю ночь. У меня есть несколько моих собственных приложений здесь (я пишу Objective-C Только и я использую ARC), где, если я пишу в AppDelegate - приложение didFinishLaunching ...:iOS 7, iPhone, Датчик приближения

[[UIDevice currentDevice] setProximityMonitoringEnabled:YES]; 
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(proximityStateChanged:) name:UIDeviceProximityStateDidChangeNotification object:nil]; 

я совершенно нормальный ответ. Дисплей отключается, я получаю уведомление с измененным адресом proximityState и т. Д.

Теперь у меня есть приложение, которое не является моим, и я должен его изменить (у меня есть проект Xcode - исходные файлы). Я должен только выполнить некоторые изменения, основанные на proximitySensor. Я абсолютно не могу включить proximityMonitoring? Я делаю то же самое, что и в других приложениях, но просто не вызывает уведомление и не меняет proximityState. Самая большая разница в том, что appDelegate этого приложения является .mm - смешанным языком, но я действительно не думаю, что это должно быть проблемой.

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

+0

Не все устройства iOS имеют датчики приближения. Чтобы определить, доступен ли мониторинг близости, попробуйте включить его. Если значение свойства proximityMonitoringEnabled остается НЕТ, мониторинг близости недоступен. – KudoCC

+0

Если это не проблема устройства, вы удостоверились, что никто не изменил свойство proximityMonitoringEnabled, кроме вас? – KudoCC

+0

Поиск по всему коду, только я упоминаю близость. Я тестирую свое устройство (iPhone 5), у которого есть датчик приближения, и он работает над другим проектом, где я написал тот же код. – jovanjovanovic

ответ

4

FUU!

ProximitySensor отключается, если приложение не поддерживает портретную ориентацию! Вы можете делать все, что хотите, но если Portrait не проверяется как ориентация устройства, ProximitySensor не запускается!

+0

Вы должны принять свой собственный ответ, его рекомендуется использовать в Stackoverflow. – avf

0

Непонятно, что вы просите. Когда вы говорите, что у вас «есть приложение, которое не мое», у вас есть исходный код, или вы пытаетесь его исправить?

Если у вас есть полный исходный код, вы должны иметь возможность вставлять те же вызовы, которые вы показываете выше, и заставить их работать. Вам нужно будет включить мониторинг близости, добавить наблюдателя, а затем добавить свой метод наблюдателя к классу, который вы добавили в качестве наблюдателя.

Я не думаю, что вы должны установить флаг в файле info.plist, чтобы включить мониторинг близости, но я не уверен. Я использовал его только как эксперимент, и это было давно.

+0

Да, у меня есть исходный код, и я уверен, что я вызываю вышеупомянутые методы в AppDelegate.mm этого приложения. Каким будет флаг, если это потребуется? – jovanjovanovic

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