2

我想获取 BluetoothManager 私有框架的所有通知。我一直在搜索,但只找到了两个(BluetoothAvailabilityChangedNotification 和 BluetoothDeviceDiscoveredNotification)。我对报告 iphone 是否连接/断开设备的通知很感兴趣。如果有人能给我一份所有通知的列表,我将不胜感激。

4

2 回答 2

2

我没有完整的列表,但这些是您感兴趣的:

BluetoothDeviceConnectFailedNotification
BluetoothDeviceConnectSuccessNotification
BluetoothDeviceDisconnectFailedNotification // haven't confirmed this one
BluetoothDeviceDisconnectSuccessNotification

以下是其他一些:

BluetoothConnectabilityChangedNotification // fires when bluetooth is turned on/off
BluetoothAvailabilityChangedNotification // seems to fire once at app start)
BluetoothPowerChangedNotification
BluetoothDeviceDiscoveredNotification
BluetoothDeviceRemovedNotification
BluetoothPairingUserNumericComparisionNotification
BluetoothPairingPINResultSuccessNotification
于 2014-03-07T19:40:35.563 回答
1

在调用之前添加[BluetoothManager sharedInstance]

CFNotificationCenterAddObserver(CFNotificationCenterGetLocalCenter(),
                                    NULL,
                                    bluetoothCallback,
                                    NULL,
                                    NULL,
                                    CFNotificationSuspensionBehaviorDeliverImmediately);

在这个实现的某个地方,方法 void bluetoothCallback:

void bluetoothCallback (CFNotificationCenterRef center,
                 void *observer,
                 CFStringRef name,
                 const void *object,
                 CFDictionaryRef userInfo)
{
    if (CFStringGetCharacterAtIndex(name, 0) == 'B') { // stupid way to filter for only 'B'luetooth notifications
        NSLog(@"%@", name);
    }
}

您的控制台日志现在向您显示所有蓝牙通知。

于 2013-10-04T10:33:11.570 回答