问题标签 [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 - 如何在 Swift 的前台和后台广播蓝牙信号?
如何在 Swift 中广播蓝牙信号?我的目标是然后用另一个设备发现这个设备。我曾尝试使用该CBPeripheralManager.startAdvertising
函数,但CBPeripheralManager.isAdvertising
总是返回 false。
另外,后台广播是如何工作的?它与在前台广播有什么不同吗?核心蓝牙编程指南说你应该为你的经理分配一个restoration identifier
,但我不知道该怎么做。
谢谢!
ios - IOS蓝牙(BLE) CBPeripheralManager服务广播
如何在 CBPeripheralManager 中嵌入两个服务并进行广播。
service1 - 信息(读取特征),密钥(写入特征) service2 - 数据(根据服务1中收到的密钥修改)
我的应用程序设计就像第一个服务将具有密钥写入特征的基本信息,如果 didReceiveWriteRequests 接收密钥,基于此我必须在第二个服务和广播中对特征数据进行一些更改。
我试过像下面这样添加两个服务,但它不起作用。如何广播service2?售后服务1。任何建议都会有所帮助。
ios - CoreBluetooth:无法发现已发现外围设备的特征
我已经编写了一些 CoreBluetooth 代码,我可以发现这些设备,但我似乎无法发现我发现的外围设备的特征。有没有人有一个很好的示例代码可以用来验证我的代码?
这是我写的:
ios - CLPeripheralManager.startAdvertising 不接受 CLBeaconRegion.peripheralDataWithMeasuredPower 的返回值
根据Swift 2.0 文档,CLBeaconRegion
应该仍然可以将peripheralDataWithMeasuredPower:
方法startAdvertising:
的输出传递给CLPeripheralManager
.
获取信标广告数据
- peripheralDataWithMeasuredPower:
检索可用于将当前设备宣传为信标的数据。
宣言
迅速
func peripheralDataWithMeasuredPower(_measuredPower: NSNumber?) -> NSMutableDictionary
目标-C
- (NSMutableDictionary<NSString *,id> * _Nonnull)peripheralDataWithMeasuredPower:(NSNumber * _Nullable)measuredPower
参数
measuredPower
设备的接收信号强度指示器 (RSSI) 值(以分贝为单位)。该值表示从一米外测得的信标强度,并在测距期间使用。指定nil
使用设备的默认值。返回值
可以与 a 结合使用的数据字典,
CBPeripheralManager
以将当前设备宣传为信标。讨论
返回的字典对信标的识别信息以及广告信标所需的其他信息进行编码。您不需要直接访问字典内容。将字典传递给 a 的
startAdvertising:
方法CBPeripheralManager
以开始宣传信标。可用性
在 iOS 7.0 及更高版本中可用。
然而,peripheralDataWithMeasuredPower:
返回 an NSMutableDictionary
while 的startAdvertising:
方法CLPeripheralManager
接受一个 Swift 字典[String : AnyObject]?
,尽管文档声称它接受一个NSDictionary
. 以下代码在 Swift 1.0 中有效:
在 Swift 2.0 中,相同的代码编译失败并出现警告: 编译失败,出现警告:
NSDictionary
不能转换为[String : AnyObject]
; 你的意思是as!
用来强迫沮丧吗?
但是,强制向下转换总是失败。
这是文档错误,Swift 2.0 中的错误,还是我遗漏了什么?
ios - LGBluetooth 后台扫描或 CBCentralManager 后台扫描
我正在开发 BLE 应用程序,我需要在后台模式下扫描设备。在调试时,我发现它扫描了设备,但没有调用并返回设备的发现。在前台模式下一切正常。
为什么我的应用在后台运行时无法扫描设备?
注意:我确实输入了所需的后台模式 1.App 使用 CoreBluetooth 进行通信 2.App 使用 CoreBluetooth 共享数据。下面是我在前台调用扫描设备的代码
输出广告数据:
ipad - 从中央到外围设备发送数据时数据丢失 - CoreBluetooth ios
在 CoreBluetooth 中,我试图将数据从中心传输到外围设备,writevalue: with type:CBCharacteristicWriteWithoutResponse
这使得数据传输速度更快。但数据在两者之间丢失。
我不想使用writevalue: with type:CBCharacteristicWriteWithResponse
,因为它的传输速度较慢,因为我不断地传输大量数据帮助我哪里出错了。
提前致谢。
ios - CBPeripheralManager respondToRequest:withResult 中的断言失败
当我的 iOS(外围)开始做广告时,我立即重新运行我的应用程序,此时,我的计算机(中央)正在订阅一个特性并写入它。
一旦我的外围应用程序完成启动,就会出现问题(可能是因为中央以前试图写入它)并且我的应用程序崩溃并显示以下消息:
我从不在我的代码中调用“respondToRequest”,我的所有外围设备的特性都配置如下(WriteWithoutResponse):
当我从 Centra 端写入特征时,我使用:
我不知道如何防止这个问题。请问有什么想法吗?
bluetooth-lowenergy - EverTime 呼叫 didDisconnectPeripheral
早上好,我是 Pavan,我对 corebluetooth 有疑问。我正在使用蓝牙 LE 设备。我在目标 c 中使用核心蓝牙框架中编写了示例代码,我得到了蓝牙名称、UUID、RRSI 值。我使用了中央管理器、外围管理器和外围委托方法。我的代码不执行 CBPeripheralManager 委托方法。它只给出一个 UUID kCBAdvDataServiceUUIDs = "00001C00-D102-11E1-9B23-00025B00A5A5",无法获得剩余的服务。
在这里,我需要获取警报设置、更好的级别、日期和时间设置。我使用了您的示例项目,得到了以下结果。找到具有名称的外设:可选(“名称”)
无法与外围设备断开连接并出现错误:Error Domain=CBErrorDomain Code=7 "The specified device has disconnected from us." UserInfo=0x165d4000 {NSLocalizedDescription=The specified device has disconnected from us.}
周边:
我无法得到问题所在。请帮我。
bluetooth-lowenergy - Error Domain=CBErrorDomain Code=7 "指定设备已与我们断开连接
我们需要从蓝牙设备获取数据到 IOS 设备。我们正在使用core_bluetooth.frameworks
. didDisconnectPeripheral 每次在 didConnectPeripheral 之后调用。我们得到错误是错误是Error Domain=CBErrorDomain Code=7 "The specified device has disconnected from us." UserInfo={NSLocalizedDescription=The specified device has disconnected from us.}
我们尝试的代码是://在 ViewDidLoad
//蓝牙开/关
//发现
//didConnectPeripheral
//didDisconnectPeripheral
我们不明白为什么在 didConnectPeripheral 之后总是调用 didDisconnection。请告诉我我的代码有什么问题。