Существует пример C++ в msdn http://msdn.microsoft.com/en-us/library/ms724429 (По сравнению с 85) .aspx, наряду с примечанием, которое кто-то добавил о том, как обернуть его для использования в .NET [VB]. Это похоже на "недостающий" бит, в котором Вы нуждаетесь, функция Win32 GetProductInfo ( ссылка PInvoke.net для этого ).
Между этим и ответом от Avram, необходимо смочь собрать строку полной версии.
Обратите внимание на разницу в размере между [[UIScreen mainScreen] границами]
и [[UIScreen mainScreen] applicationFrame]
. Если разница составляет 20 пикселей и вы не скрываете строку состояния, значит, пользователь, вероятно, не звонит. Если разница составляет 40 пикселей, вероятно, ваш пользователь звонит, поскольку светящаяся зеленая строка состояния, которая появляется во время звонков, примерно в два раза больше обычной строки состояния.
Я не делал этого раньше, поэтому YMMV. Удачи и дайте мне знать, сработает ли это!
Когда iPhone получает вызов, приложение закрывается. Вы можете зарегистрировать обратный вызов для корректной обработки этого события, см.
После завершения вызова ваше приложение перезапустится.
Приложения, которые сохраняют ваше состояние во время разговора, просто хорошо написаны :)
Ага! Я только что прочитал ваш настоящий вопрос.
Я не могу найти и не знаю ни одного API для доступа к телефонному приложению. Единственный совет: Phone - это такое же приложение, как и любое другое, и оно может публиковать информацию через HTTP-туннель, предоставляемый всеми приложениями.
Интересно, можно ли было бы просто иметь кнопку «Я говорю по телефону», которую пользователь мог бы нажмите, чтобы добиться тех же результатов?
При поступлении вызова приложение не выходит, оно переходит в неактивное состояние. Следующий метод должен быть вызван для UIApplicationDelegate :
- (void)applicationWillResignActive:(UIApplication *)application
Этот метод также вызывается в других случаях, например, когда iPhone заблокирован, и у вас нет возможности определить, был ли это входящий телефонный звонок. это вызвало это.