Можете ли вы определить тип устройства, подключенного к разъему для наушников iphone / ipad / ipod?

Я заметил что-то интересное при работе с iPad и гнездом для наушников.

Я могу изменить громкость головного телефона (используя кнопки громкости на iPad), когда я подключаю наушники для наушников iPhone к iPad. Если я отсоединяю наушники и подключаю внешние громкоговорители, используя один и тот же разъем для наушников, я могу снова отрегулировать громкость на другой уровень. Если я отсоединяю колонки, я могу поменять их в наушниках. Громкость автоматически изменится на том, на который я в последний раз установил наушники. Если у меня есть третье устройство, которое подключается к разъему для наушников (в моем случае я тестировал с помощью устройства для чтения кредитных карт UniMag, которое подключается к разъему для наушников), iPad запоминает еще третий том. Кажется, известно, какое устройство подключено к гнезду iphone и установите его на соответствующий уровень громкости.

Это противоречит тому, что я ожидал. Я ожидал, что будет один уровень громкости для разъема для наушников, независимо от того, какое устройство подключено к нему.

Если iPad может определить, какое устройство является, это также доступно моему родному приложению? Могу ли я узнать, подключен ли пользователь наушников, внешних громкоговорителей или устройство для переноса кредитных карт UniMag в гнездо для наушников с использованием некоторого Audio API и, соответственно, вести себя так?

Для бонуса, если вы знаете технический механизм, лежащий в основе способности iPads определить, какое устройство является, что мне было бы интересно.

Я тестирую iPad2 с iOS5.

Вы можете использовать CoreAudio для этой цели. Я считаю, что вы также можете настроить уведомления об изменениях. Более конкретно, вы можете сделать это на iOS с аудио-сессиями. То, что вы ищете, это изменения маршрута. https://developer.apple.com/library/ios/#documentation/Audio/Conceptual/AudioSessionProgrammingGuide/Cookbook/Cookbook.html

  • iOS XMPP, поиск пользователей по имени пользователя
  • Универсальные 2D-игры и абсолютное позиционирование узла
  • UITableView - как показать только строки, содержащие данные
  • iPad presentViewController - это всегда полноэкранный (need formSheet) iOS6
  • iOS: поддерживайте приложение как службу
  • анимация и изменение размера UIImageView
  • Кнопки ввода стилей для iPad и iPhone
  • Просмотры не вращается в ландшафтном режиме после обновления iOS6
  • Отображаемые имена Gamecenter содержат кавычки, добавленные в режиме деблокирования
  • Пользователи не могут открыть наши файлы из iPad-приложения для iPad?
  • Инициализация пользовательского UICollectionViewCell
  • Interesting Posts

    анализ json и сохранение с использованием основных данных swift 2.0.

    Невозможно назначить экземпляр класса его типу протокола?

    Objective-C: UITabBarController с разделенными видами

    Протокол GKLocalPlayerListener не вызывается

    В чем разница между GLKView и EAGLView?

    Отменить и перенести UserNotification (старое UILocalNotification), начиная с пользовательской даты в iOS 10

    Как установить ширину кадра просмотров? (Почему я не могу установить его напрямую?)

    Ошибка ссылки UNUserNotificationCenter

    Вопросы SpriteKit Swift Node Count

    Почему мой iPad mini не обнаруживает в Xcode после обновления его до iOS 7?

    Как загрузить UIViewController программно без использования раскадровки в Swift

    импорт, сохранение и отображение больших наборов данных с использованием фонового потока

    Уведомление об обновлении приложения iOS

    Лучший способ совместного использования кода между несколькими проектами в iOS

    Отключить HTTP-поток в AVPlayer

    Давайте будем гением компьютера.