标签: core-bluetooth

iOS 6 CoreBluetooth配对/遗忘(2个问题)

我们有一个可绑定的(当我们连接时,我们被要求配对,请参阅问题2)我们制造并编写了iOS应用程序的蓝牙4.0外围设备.

问题1

在具有CoreBluetooth的iOS 6中是否可以从我们的应用程序中删除iOS蓝牙设置中的外围设备,或仅限于进入iOS设置/蓝牙/我们的外围设备和"忘记此设备".

我们要做的是当我们从应用程序中删除外围设备时,我们希望此外围设备也可以从iOS蓝牙列表中删除.

问题2

我的第二个问题是,iOS SDK是否提供了一种方法来确定用户是否在配对请求警报中选择了"配对"或"取消"?截至目前,我们通过在连接设备时读取我们的服务/特征来确定用户按下的对.

配对示例

objective-c core-bluetooth bluetooth-lowenergy ios6

18
推荐指数
1
解决办法
7099
查看次数

ios CoreBluetooth [警告]未知错误:1309

当我正在开发运行BlueTooth应用程序时,我偶尔会在控制台上收到消息"CoreBluetooth [WARNING] Unknown error:1309".即使消息声明它是一个警告,它也会停止执行应用程序.我已经能够通过关闭蓝牙设置然后重新打开来解决这个问题.任何人都可以告诉我是什么导致这个以及我应该做些什么来避免它?

iphone objective-c ios core-bluetooth

18
推荐指数
1
解决办法
3177
查看次数

如何在iOS 7.1的后台和前台中使用蓝牙LE检测附近的设备?

我有一个应用需要检测运行相同应用程序和iOS 7.1的附近(蓝牙LE范围内)设备.我考虑了两种检测方法:

  1. 使设备充当iBeacons并检测范围内的iBeacons
  2. 使用CoreBluetooth(就像在近处实现这里)来创建一个BLE外设,通告和扫描外设

看来选项1是不可能的,因为:

  • 当应用程序运行后台时,iOS可能需要至少15分钟才能检测到进入信标区域(iOS 7.1)

方案2似乎要走了,但实施方面存在一些困难:

  • iOS似乎在一段时间后(大约15分钟?)更改广告包中的外围UUID.这意味着不能直接从广告广播信号中识别广告设备.

关于这一点,我有以下问题:

  • 有没有其他方法实现附近的设备检测我没有考虑过?
  • 是否可以通过广告(或通过其他方式)识别设备,以便选项2可以工作?

iphone bluetooth ios core-bluetooth bluetooth-lowenergy

18
推荐指数
1
解决办法
7555
查看次数

17
推荐指数
1
解决办法
2万
查看次数

locationManager:在检测到信标时未调用didEnterRegion

在使用信标(iOS设备)进行测试时,我发现侦听器信标会发出一些意外行为.locationManager:即使信标进入某个区域,也不会调用didEnterRegion方法.但是locationManager:didRangeBeacons:inRegion:被正确调用,并在那里显示检测到的信标.有没有人经历过这样的事情.

core-location ios core-bluetooth ibeacon

17
推荐指数
4
解决办法
2万
查看次数

将iOS 6设备作为BLE外围设备运行

众所周知,iOS 6支持运行设备(iPhone 4s及更高版本,以及新iPad)作为BLE外设.WWDC 2012 Session 705中有一个名为"高级核心蓝牙"的演示.我问过Apple的源代码.他们发给我一个修改后的源代码版本(BTLE_Transfer_Draft).然后我:

  • 在"外设模式"下在iPhone 5(iOS 6)中运行应用程序并启动"广告"
  • 在"中央模式"下在新iPad(iOS 5.1.1)中运行应用程序

问题是外围设备从未被发现过.所以我使用其他测试应用程序,包括从App Store下载的一些.所有人都未能发现外围设备.我认为问题应该在BTLE_Transfer_Draft中.因为我不确定是否允许我提供整个源代码.所以我只在这里展示"外围模式"部分:

- (void)viewDidLoad {
    [super viewDidLoad];

    // Start up the CBPeripheralManager
    _peripheralManager = [[CBPeripheralManager alloc] initWithDelegate:self queue:nil];
}

- (void)peripheralManagerDidUpdateState:(CBPeripheralManager *)peripheral {
    // Opt out from any other state
    if (peripheral.state != CBPeripheralManagerStatePoweredOn) {
        return;
    }

    // We're in CBPeripheralManagerStatePoweredOn state...
    NSLog(@"self.peripheralManager powered on.");

    // ... so build our service.

    // Start with the CBMutableCharacteristic
    self.transferCharacteristic = [[CBMutableCharacteristic alloc] initWithType:[CBUUID UUIDWithString:TRANSFER_CHARACTERISTIC_UUID]
                                                                  properties:CBCharacteristicPropertyNotify
                                                                       value:nil
                                                                 permissions:CBAttributePermissionsReadable];

    // Then the service …
Run Code Online (Sandbox Code Playgroud)

peripherals ios core-bluetooth

16
推荐指数
2
解决办法
2万
查看次数

iOS同时向多个蓝牙设备播放音频

我有一些蓝牙音箱(类似的),并且非常希望能够同时播放多个蓝牙音箱,但我找不到办法.

我可以部署自己的应用程序,因此不一定要通过公共API完成,但iPhone硬件是否支持它?

audio bluetooth objective-c ios core-bluetooth

16
推荐指数
1
解决办法
2万
查看次数

如何用蓝牙信号(BLE)唤醒iOS应用程序

使用带有CoreBluetooth的BLE(没有iBeacon),有没有办法在设备收到蓝牙信号时唤醒应用程序未运行的应用程序?

我正在使用redbearlab的BLE Shield(http://redbearlab.com/bleshield/)模拟一个灯塔.

谢谢,DAN

*更新03/05/14*

看起来苹果已经推出了iOS 7.1的主要更新:现在,如果iOS检测到与您的应用匹配的UUID,它将为您打开应用.该应用程序只需要安装,它不必运行(AppDelegate中的逻辑需要响应唤醒呼叫).

ios core-bluetooth bluetooth-lowenergy cbcentralmanager ibeacon

16
推荐指数
2
解决办法
2万
查看次数

CoreBluetooth XPC连接在关闭viewcontroller时无效

在我完成与蓝牙设备的断开连接后,看到他们已经在didDisconnectPeripheral委托中断开连接,我试图解除我的viewcontroller.

当发生这种情况时,我看到消息:"[CoreBlueooth] XPC连接无效"

是否有特定的东西必须在视频控制器被解除之前用蓝牙清理?

objective-c ios core-bluetooth

16
推荐指数
2
解决办法
1万
查看次数

如何在iOS中找到蓝牙音频设备

好吧,我正在开发一个有趣的项目,我需要为我的iOS应用程序启用蓝牙音频支持.

我遇到的障碍是我甚至无法开始获得连接的蓝牙音频设备列表.即使我的iPhone 5S识别我的耳机(准确地说是一个~3 - 4岁的LG HBM-230)并通过它播放音频进行电话呼叫,但当我查询两者时,BOTH External Accessory和CoreBluetooth都没有给我任何帮助.

我将我自己的代码基于我发现的CoreBluetoothExternal Accessory框架的问题和答案.

当我的代码只是试图" scanForPeripheralsWithServices:nil" 设置 - >蓝牙说的任何蓝牙设备可见并连接时,下面的代码只是CBCentralManagerStatePoweredOn在控制台中的" "消息之外不会出现一次命中.

我的代码中的这一行(带有有效的EAAccessoryManager实例)

NSArray * connectedDevices = [self.eAAccessoryManager connectedAccessories];
Run Code Online (Sandbox Code Playgroud)

还带有一个nil数组.

我能做错什么?

顺便说一下,我已将此代码作为GitHub项目提供.

@implementation BluetoothManager

+ (BluetoothManager *)sharedInstance
{
    static dispatch_once_t pred = 0;
    __strong static id _bluetoothMGR = nil;

    dispatch_once(&pred, ^{
        _bluetoothMGR = [[BluetoothManager alloc] init];
    });

    return _bluetoothMGR;
}

- (id)init
{
    self = [super init];
    if(self)
    {
        dispatch_queue_t …
Run Code Online (Sandbox Code Playgroud)

iphone audio external-accessory ios core-bluetooth

15
推荐指数
1
解决办法
1万
查看次数