我正在开发博客演讲应用程序。
我希望像iPod应用程序一样禁用蓝牙时暂停音频。我认为在阅读此内容后不使用私有api是不可能的。 Check if Bluetooth is Enabled?
但是,我的客户告诉我Rhapsody和DI Radio应用程序都支持它。
然后我发现iOS5有Core蓝牙框架。 https://developer.apple.com/library/ios/documentation/CoreBluetooth/Reference/CoreBluetooth_Framework/CoreBluetooth_Framework.pdf
CBCentralManagerStatePoweredOff状态似乎就是那个。
但是,描述说这个api只支持蓝牙4.0低功耗设备。 有没有人尝试做同样的事情?
我想支持当前流行的蓝牙耳机,或支持蓝牙的方向盘。我不知道它是否值得尝试,因为它只支持一些全新的蓝牙。
答案 0 :(得分:2)
对于音频,专注于蓝牙听起来特别错误。
我认为你要找的是Handling Audio Hardware Route Changes。
您会注意到以下所有情况导致内置iPod应用暂停:
使用音频会话API时,您将获得所有正确的行为。
答案 1 :(得分:1)
在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]
}
}