jjzjj

CoreBluetooth

全部标签

ios - CoreBluetooth 状态保存 : correct way to restore CBCentralManager

当应用程序由于状态保存事件而使用选项午餐时,从AppDelegate恢复CBCentralManager的正确方法是什么?-(BOOL)application:(UIApplication*)applicationdidFinishLaunchingWithOptions:(NSDictionary*)launchOptions{//Thesystemprovidestherestorationidentifiersonlyforcentralmanagersthathadactiveorpendingperipheralconnectionsorwerescanningforperi

ios - CoreBluetooth "willRestoreState"- 究竟应该在那里做什么?

我正在开发一个需要持续运行和跟踪一些外围特征的应用程序。在前台一切正常。它也可以在后台运行,但我不确定我是否正确运行。我发了很多关于状态恢复和实现willRestoreState的帖子,但是其中很多都没有明确告诉您调用此方法时要做什么。我的流程是这样的:我正在使用创建中央管理器myCentralManager=[[CBCentralManageralloc]initWithDelegate:selfqueue:niloptions:@{CBCentralManagerOptionRestoreIdentifierKey:@"myCentralManagerIdentifier"}];从

ios - CoreBlueTooth 委托(delegate) didWriteValueForCharacteristic 调用时值为 null

我给一个characteristic设置notify,然后写一些数据(就是要读取的地址和读取数据长度)到另一个characteristic。委托(delegate)didUpdateValueForCharacteristic将被调用,但characteristic.value为零(应该有一些值)且长度正确。我还检查了委托(delegate)didWriteValueForCharacteristic。这将在我写入数据后调用,但在委托(delegate)中,characteristic.value为null,而characteristic.UUID与我写入的相同。那么当didWrite

ios - 飞行模式切换时,CoreBluetooth 不会调用 didDisconnectPeripheral

我有一个CoreBluetooth应用程序。这会在前台启动连接并开始发送/接收数据,并在发送到后台时继续执行此操作,因为我已将bluetooth-central添加到app-Info中的UIBackgroundModes。plist。如果我切换飞行模式设置,我的应用会断开连接,但它不会获得didDisconnectPeripheral回调。为什么是这样?我的解决方法是清除centralManagerDidUpdateState中对我的CBPeriperal对象的所有引用,以便能够在应用程序再次进入前台时进行新的扫描和连接. 最佳答案

ios - 使用 corebluetooth 从 iOS 断开外围设备 (TI CC2541) 时出现的问题

当固件调用断开外设时,我的委托(delegate)被调用,(didDisconnectPeripheral),之后,我启动一个计时器并尝试在5秒内重新连接(计时器已启用重复).我的didFailToConnectPeripheral没有被调用,didConnectToPeripheral也没有。大约30秒后,芯片会自动与应用程序重新连接。即使我尝试调用[_managercancelPeripheralConnection:_peripheral];电路板也无法彻底断开连接。有没有人知道外围设备所处的这种“边缘”状态的更多信息?我找到了这些页面:iOS6-BluetoothLEdisco

ios - 在后台使用 iBeacon 或 CoreBluetooth 识别 iOS 设备

我有一个运行2种模式的应用程序:方式一:通告AppUUID模式2:应用UUID的监控和范围当2台设备靠近时,会触发通知。在前台时,我可以使用Major/Minor值将唯一的设备ID(猜测蓝牙MAC地址)发送到模式2中的设备,并调用网络服务来识别设备属于“谁”。这个方法后台好像不行?我读到iOS设备广播的蓝牙数据包要么在广播时剥离蓝牙MAC地址和主要/次要值,要么在后台运行应用程序的设备接收通知选择不接收通知?我的问题真的是这样的:即使设备监控在后台使用CoreBluetoothiBeacon或CoreLocation服务,是否有可能检测到哪个设备正在通告应用程序UUID?

ios - 是否可以使用 CoreBluetooth 更改蓝牙配对请求的超时?

我想知道是否可以更改“蓝牙配对请求”的警报弹出窗口的超时时间。我找不到与此相关的任何内容。谢谢! 最佳答案 遗憾的是,配对过程完全由iOS控制。没有您可以更改的设置或参数。 关于ios-是否可以使用CoreBluetooth更改蓝牙配对请求的超时?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/26674532/

ios - 如何使用 iOS CoreBluetooth 同时扫描多个 BLE 服务

我正在尝试为我的iOS应用程序寻找一种好方法来扫描三种不同类型的蓝牙LE外设,每一种都由一个唯一的服务/UUID表示。CBCentralManagerscanForPeripheralsWithServices:options方法采用一组服务UUID,文档指出“中央管理器仅返回宣传您指定的服务的外围设备”。但是我发现这实际上意味着如果您指定3个服务UUID,您将只会获得宣传所有这三个服务的外围设备。即它是AND而不是OR:它不会返回在数组中宣传任何这些服务的所有外围设备。我看到的唯一其他选项是为服务UUID数组传递“nil”,并且根据文档“返回所有发现的外围设备,无论它们支持的服务如何

ios - LightBlue 找到的设备,但 iOS CoreBluetooth 找不到的设备

我在Arduino上使用BLEShield-LightBlue正确检测到BLEShield。现在,我正在尝试制作一个应用程序来扫描所有BLE设备并连接到正确的设备,这样我就可以从我的应用程序向我的盾牌发送一些信息。但是应用程序没有检测到BLEShield(它检测到另一个BLE设备......)。我的代码如下:-(void)centralManagerDidUpdateState:(CBCentralManager*)central{switch(central.state){caseCBCentralManagerStatePoweredOn:msg=[NSStringstringWi

ios - CoreBluetooth central 在指定服务时没有发现任何外围设备

我正在尝试弄清楚如何使用CoreBluetooth来扫描外围设备,这些外围设备为预先知道的服务做广告。所以我有以下ViewController,它显示在UITableViewController中发现的外围设备:importUIKitimportCoreBluetoothclassMasterViewController:UITableViewController{vardiscoveredPeripherals=[CBPeripheral]()varconnectedPeripherals=[CBPeripheral]()varperipheralsSupportingDeviceI