jjzjj

CoreBluetooth

全部标签

ios - 使用 CoreBluetooth 是否可以获取蓝牙 LE 设备的原始扫描记录

我正在尝试更好地了解蓝牙LE,并一直在研究iOS和Android的蓝牙堆栈以及各种信标(StickNFind、Estimote等...)在Android上,当发现设备时,我会得到一个原始的“扫描记录”——我可以自己解析的一团数据,以获取设备的广告数据。在iOS上,这由iOS解析并呈现为字典。很公平,除了我尝试使用CoreBluetooth(即:不是位置服务)从iBeacon读取广告数据,并注意到iOS似乎删除了iBeacon设备的制造商特定广告数据。我意识到我可能应该使用Apple认可的方法来检测iBeacon,但它并不真正适合我们的用例,我想知道是否有解决方法。

ios - 如何使用 corebluetooth 在 ios 中广播蓝牙服务?

如果我想让我的iOS设备充当“服务器”并将其蓝牙服务广播到其他iOS设备,我将如何使用核心蓝牙框架(或任何其他iOS框架)来实现它?到目前为止,我从corebluetooth框架中看到的只是如何编写客户端的东西。(扫描,连接到现有的蓝牙服务) 最佳答案 您可以使用名为DNSSDObjects的OSX示例项目。核心类(其中三个)在iOS下工作得很好。代码需要做一些小的改动才能与蓝牙一起工作(因为它们只能与WiFi一起工作)。参见myanswertoanotherquestion所需的代码更改。基本上,您可以使用设置服务器所需的任何代码

iOS CoreBluetooth 不扫描 iPad Air 中的服务

我正在开发一个连接到BLE外设并从中接收数据的应用。它扫描外围设备,找到外围设备,发现服务,如果找到正确的服务,它就会接收数据。它在iPhone5上运行良好,但当我在iPadAir上运行它时,它会连接,但不会发现任何服务,也不会收到任何数据。两款设备均运行iOS7.0.4这是代码的一些相关部分-(void)startScan{[managerscanForPeripheralsWithServices:niloptions:nil];}-(void)stopScan{[managerstopScan];}-(void)centralManager:(CBCentralManager*)

ios - 当我在 watch 套件扩展或 iPhone 蓝牙中使用 corebluetooth 框架时,Apple Watch 是否使用自己的蓝牙?

在AppleWatch指南中说,WatchKitExtension中的所有内容都可以在用户的​​iPhone上运行。那么,这是否意味着当我在WatchKit扩展代码中使用CoreBluetooth函数时,它将使用WatchBluetooth或iPhonesBluetooth...? 最佳答案 手机的蓝牙,AFAIK。用许多Apple传道者的话说,与Watch的蓝牙/WiFi连接是一个实现细节。你不需要关心它。 关于ios-当我在watch套件扩展或iPhone蓝牙中使用corebluet

ios - CoreBluetooth - 可以多次调用 connectPeripheral

一个应用能否同时尝试连接到多个设备?当应用程序调用“connectPeripheral”时,它将尝试连接一段未指定的时间,因为没有超时。但是,如果第二次调用“connectPeripheral”,它会取消之前的调用,还是应用会尝试同时建立两个单独的连接? 最佳答案 在我的测试中,我发现如果您在连接之前多次调用它,实际连接会花费更长的时间(并且通常实际上会阻止连接发生),但之后通常会正常运行。但是,我注意到的一件大事是,如果您尝试在didConnectPeripheral:回调中调用connectPeripheral:,您将陷入无限循

ios - 使用 CoreBluetooth (BLE) 将数据从 CentralManager 发送到 PeripheralManager

我的应用程序在两台iOS设备(均为6.1.4)上运行,其中一台设备充当中央设备,另一台设备充当外围设备。我已经成功地将通知(设置为通知的特性)从外围设备发送到中央设备,一切正常。但是,我想将一个从Central到Peripheral的值写入一个特定的可写特征,但总是失败。peripheral:didWriteValueForCharacteristic:error:委托(delegate)的方法被立即调用,错误描述如下:"Oneormoreparameterswereinvalid"我一直在网上搜索任何线索,但尚未找出问题所在。这就是我在外设端设置特征的方式:[[CBMutableCh

ios - 如何在 CoreBluetooth 框架中传递设备 UUID,以便客户端稍后重新连接

我刚刚编写了一个简单的应用程序,我可以在其中扫描并连接到外围设备(这也是一个IOS设备)。但是,我从ConnectPeripheral函数返回的CBPeripheral对象没有设备UUID,它始终为空。现在我想知道我在哪里设置它以便它通过。这就是我正在做的事情。宣传我正在做的服务NSDictionary*advertisingDict=[NSDictionarydictionaryWithObject:servicesforKey:CBAdvertisementDataServiceUUIDsKey][managerstartAdvertising:advertisingDicts];

ios - CoreBluetooth 不会在重新连接时发现服务

我们有一个与我们自己的BLE设备通信的应用程序。当我们推送一个新固件时,我们重新启动并得到centralManager:didDisconnectPeripheral:error:和centralManager:didConnectPeripheral:但是当我们调用[peripheraldiscoverServices:nil]我们从来没有得到peripheral:didDiscoverServices:的回调。我们在最初连接时得到它,但在我们重新连接时却没有。CoreBluetooth似乎知道服务和特征是什么,因为我们可以与设备交互,但我们希望能够在重启后立即写入特征,但找不到可靠

ios - CoreBluetooth 框架可以与从蓝牙 2.0 串行模块配对并交谈吗?

我想为iPhone4s编写一个应用程序,它可以与HC-06、BC417或EGBT-046S等从属蓝牙2.0串行模块通信。这可能吗?谁能提供一些示例代码? 最佳答案 不,CoreBluetooth用于低功耗蓝牙。外部附件框架可用于经典蓝牙连接。但是为了能够从iPhone上打开串行链接,您需要一个符合MadeForiPhone(MFi)程序的外围设备,并且您需要成为MFi成员(member)才能购买。查看此问题以获取更多信息:What'sneededtousetheAppleAccessoryProtocol?

iphone - 是否可以以编程方式访问 CoreBluetooth 记录的错误代码?

我正在iPhone上实现BLE中央设备,使用开发的自定义BLE设备(其固件由同事编写)作为外围设备。外设进行一些操作会返回一个BLE错误码,符合BLE规范定义的标准蓝牙ATT错误码。在iPhone端,我正在使用CoreBluetooth堆栈开发中央设备,我在xCode的调试器输出窗口中收到此类错误的通知:CoreBluetooth[警告]未知错误:XX然后我在回调中收到一个CBError*对象。我的问题是我在回调中获得的CBError*对象(例如,在CBPeripheralDelegate的didWriteValueForCharacteristic回调中)只包含code=0和loca