Обнаружение, когда Bluetooth отключен на iOS5 - PullRequest
2 голосов
/ 02 апреля 2012

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

Я хочу приостановить звук, когда Bluetooth отключен, как приложение iPod.Я думал, что это невозможно без использования частного API после прочтения этого. Проверить, включен ли Bluetooth?

Но мой клиент сказал мне, что оба приложения Rhapsody и DI Radio поддерживают его.

Затем я обнаружил, что iOS5 имеет Core Bluetooth Framework.https://developer.apple.com/library/ios/documentation/CoreBluetooth/Reference/CoreBluetooth_Framework/CoreBluetooth_Framework.pdf

Состояние CBCentralManagerStatePoweredOff выглядит как единое.

Но в описании говорится, что этот API-интерфейс поддерживает только устройства с низким энергопотреблением Bluetooth 4.0.Кто-нибудь пробовал сделать то же самое?

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

Ответы [ 2 ]

2 голосов
/ 26 июня 2012

Для звука фокусировка на Bluetooth определенно звучит как неправильный подход.

Я думаю, что вы ищете Обработка изменений аппаратного маршрута аудио .

ВыВы заметите, что все следующее приводит к приостановке работы встроенного приложения iPod:

  • Устройство Bluetooth удалено (возможно, из-за того, что Bluetooth отключен).
  • Наушники отключены.
  • Устройство удалено из док-станции.

Вы получаете все это правильное поведение при использовании Audio Session API.

1 голос
/ 26 июня 2012

На BLE вы получите обновление менеджера, содержащее состояние:

 enum {
CBCentralManagerStateUnknown = 0, // State unknown,
update imminent.
CBCentralManagerStateResetting, // The connection with the system service was      momentarily lost,
update imminent.
CBCentralManagerStateUnsupported, // The platform doesn't support Bluetooth Low Energy.
CBCentralManagerStateUnauthorized, // The app is not authorized to use Bluetooth Low Energy.
CBCentralManagerStatePoweredOff, // Bluetooth is currently powered off.
CBCentralManagerStatePoweredOn, // Bluetooth is currently powered on and available to use.
};

, которое вы можете проверить на обязательном обратном вызове, например,

centralManager:didUpdateState...{
if ([manager state] == CBCentralManagerStatePoweredOff)
{
[musicPlayer pause]
}
}
...