问题标签 [cbperipheralmanager]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ios - 为什么我的外围设备无法连接到其他设备?
我的 iPad mini(iOS7.1.2) 有我的应用程序使用 CoreBluetooth 作为外围设备。它的 state( CBPeripheralManager::state
) 是PoweredOn
,并且在添加和开始宣传我的服务时没有任何其他错误。但是,外围设备周围的任何中央设备都无法连接到它。
当然,我认为中央设备可能存在问题。这不是真的,因为这些中央设备可以与除“那个外围设备”之外的其他外围设备连接。当我试图与外围设备连接时,- (void)centralManager:(CBCentralManager *)central didDisconnectPeripheral:(CBPeripheral *)peripheral error:(NSError *)error
被调用。(错误代码为 7)。
外围设备没有显示任何错误,并且中央设备在重新启动外围设备之前无法连接。我应该多做些什么?我应该将设备升级到 iOS8 吗?
ps 中心设备多种多样,从iPhon4s到iPhone6+,从iOS7.0.6到iOS8.2。中央设备和外围设备都没有问题。
ps 只发生过一次,但是在奇怪的状态下,外围状态突然变成了Resetting
,PoweredOn
又一次。之后,连接就没有问题了。不知道为什么状态突然变成了 Resetting
,状态是怎么变的。
+添加 @ 04081228 (GMT+0000)
我从试图与外围设备连接的中央设备中发现了一些可疑的日志。以下是一些日志。
4 月 8 日 21:20:57 BTServer[61]:ATT 无法在设备“9C3C82F8-50F5-FE2C-EE41-D8B8B85D7DA3”上找到 GATT 主>服务
Apr 8 21:20:57 BTServer[61] : ATT Aborting command as device >"9C3C82F8-50F5-FE2C-EE41-D8B8B85D7DA3" 不再连接
4 月 8 日 21:21:08 BTServer[61]:ATT 无法在设备“9C3C82F8-50F5-FE2C-EE41-D8B8B85D7DA3”上找到 GATT 主>服务
Apr 8 21:21:08 BTServer[61] : ATT Aborting command as device >"9C3C82F8-50F5-FE2C-EE41-D8B8B85D7DA3" 不再连接
我发现来自 github 的评论说这是 iOS 的已知问题。不过,我找不到有关此的任何其他信息。
+添加@ 04081304 (GMT+0000)
我也找到了这个日志。我也不确定这意味着什么。
4 月 8 日 22:02:03 BTServer[61]:ATT 无法将 MTU 设置为 158,结果 BM3 STATUS 14
4 月 8 日 22:02:13 BTServer[61]:ATT 无法将 MTU 设置为 158,结果 BM3 STATUS 14
ios - 一段时间后,ble 外围设备在后台断开连接
我在 plist 中使用后台获取模式。当我们将外围设备连接到设备时,它会在后台工作片刻,但 10-15 分钟后它会自动断开连接。我希望我的外围设备始终连接。当应用程序从后台唤醒时调用哪个方法..
ios - UITextView 被阻止,因为 peripheral:didUpdateValueForCharacteristic: 被调用非常快
我试图通过附加来自的数据在 UITextView 中显示数据peripheral:didUpdateValueForCharacteristic:error:
。在这种情况下peripheral:didUpdateValueForCharacteristic:error:
,调用非常频繁,因此UITextView
( self.responseTextView
) 要么无法打印任何数据,要么阻塞 UI。
ios - 为什么不调用 CBPeripheralManagerDelegate 方法?
为什么不调用 CBPeripheralManagerDelegate 方法虽然我已将类初始化为 var bluetoothManager = CBPeripheralManager(delegate: self, queue: nil, options: nil)
并且已经在我的 Bundle 中添加了蓝牙框架。
swift - 如何在 Swift 中重置 CoreBluetooth 的 CBPeripheralManager?
我正在使用 CoreBluetooth 快速编写一个应用程序,并且我正在寻找一种方法将 CBPeripheralManager 重置为与应用程序首次启动时相同的状态。
ios - CBCentralManager not calling didDiscoverPeripheral method when iPhone is locked
I am working on an app that scans for a specific peripheral, ones peripheral is found it should send the small amount of data.
App works in the foreground and also in background. I have also add this code in the plist
UIBackgroundModes bluetooth-central When iPhone is locked and peripheral starts advertising, it doesn't call
I have done some research but couldn't find an answer.
Any help is appreciated.
Thanks
ios - 如何在 CBPeripheral 设备上编写命令?
我有一个有两个模块的 BLE 设备
1-蓝牙 (BlueCreation BC127A) 2-微控制器附有一些命令,如 LOGIN RESET VERSION 等。
我想向与 uC 通信的 BLE 写入命令。
按照我的规范/文档,数据包结构应该是这样的:
当我在 BLE 上编写确切的命令时,出现错误:“值的长度无效。”
根据文档,它的数据包长度是 17,我认为这是错误的,因为当我得到它时 sizeof(byte)/sizeof(char); 我得到 4。我使用了这两个值,但我无法得到积极的回应。
我需要帮助通过成功编写命令来克服这个问题。这是我的第一个蓝牙集成项目。
我的代码遵循数据包结构,我的命令 LOGIN 变为:
谢谢。
ios - iOS 蓝牙 peripheralManagerDidUpdateState 从未调用过
我正在尝试将我的 iPhone 设置为心率监测器并使用标准心率服务发送信息,以便我在 PC 上运行的应用程序可以检索数据。我是 iOS 的新手,但我之前在 Android 和 Windows 上运行过蓝牙。我正在关注这里的信息,但我遇到了第一个障碍......
如文档中所述,我首先调用
我还实现了 peripheralManagerDidUpdateState 回调,但问题就在这里。这个回调永远不会运行!我等了几分钟,什么也没发生。我怀疑我错过了一个非常简单的步骤,因为我已经搜索了一整天并且在网上一无所获!任何人都可以解释在代码和物理上用我的 iPhone 做事情的明确步骤吗?在此回调运行之前是否必须建立连接?它必须与任何东西配对吗?
这是完整的代码。一切运行良好,我完全没有错误。
ios - iOS:如何设置 iOS 设备作为蓝牙键盘?
我想要一个 iOS 设备告诉世界它是一个键盘,当人们与它配对时,它将能够发送击键。
根据论坛文章,看来我需要提供 4 项服务:1800(设备信息)、180f(电池)、1812(输入设备)、180a(制造商)。
我这样做了,BLE 实用程序报告了 4 个服务,但没有 1812 的迹象。
当我尝试将 iOS 外围设备与 OS/X 配对时,OS/X 放弃了,并且 iOS 应用程序的各种外围设备委托方法大部分都没有被调用(我在其中设置了断点)。例如,在我添加到每个服务的特性中,没有一个被读出或订阅。
谁能解释在 BLE 上宣传输入设备的正确方法是什么?
ios - CoreBluetooth [CBPeripheralManager respondToRequest:withResult:] 断言失败
在通过蓝牙相互发送数据的 iPhone 之间相当普遍地发生奇怪的崩溃。经过大量的努力,我仍然无法在调试器中重现它。
崩溃日志:
不知道是什么触发了外设管理器调用 handleSetAttributeValues 或 nil 值从这里来。
在代码库中只有一个地方我调用 [CBPeripheralManager respondToRequest:withResult:] 并且我在它周围有保护措施,以确保如果请求为零,它永远不会被调用。