- objective-c - iOS 5 : Can you override UIAppearance customisations in specific classes?
- iphone - 如何将 CGFontRef 转换为 UIFont?
- ios - 以编程方式关闭标记的信息窗口 google maps iOS
- ios - Xcode 5 - 尝试验证存档时出现 "No application records were found"
我正在尝试使用 CoreBluetooth 写入特定的已知特征。我觉得这应该是可能的,因为我使用了 Texas Instruments BLE 实用程序,您可以在连接的外围设备上选择“写入值”操作,只需输入特征 UUID 和您想要写入的值,它就可以正常执行。
据我了解,为了做到这一点,我必须调用
[peripheral writeValue:data forCharacteristic:...];
CBCharacteristic
对象配置为具有正确的 UUID。
我已经尝试使用正确的 UUID 制作一个 CBMutableCharacteristic
,甚至我知道该外围设备配置文件中的现有特征的正确权限,并且在尝试执行任何操作时出现以下崩溃在外围设备上具有该特征的读/写操作:
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[CBMutableCharacteristic peripheral]: unrecognized selector sent to instance 0x1ed57690'
这是我用来设置和写入特性的代码:
NSString *characteristicUUIDstring = @"fff1";
CBUUID *characteristicUUID = [CBUUID UUIDWithString:characteristicUUIDstring];
char dataByte = 0x10;
NSData *data = [NSData dataWithBytes:&dataByte length:1];
CBMutableCharacteristic *testCharacteristic = [[CBMutableCharacteristic alloc] initWithType:characteristicUUID properties:CBCharacteristicPropertyRead|CBCharacteristicPropertyWrite value:data permissions:CBAttributePermissionsReadable|CBAttributePermissionsWriteable];
[peripheral writeValue:data forCharacteristic:testCharacteristic type:CBCharacteristicWriteWithResponse];
最佳答案
虽然外围设备内部可能存在这样的特征,但这并不是它所知道的实际特征。您需要发现所有服务和特征,然后直接从这些服务和字符写入。
//Assuming you've already discovered all your services and characteristics, do something like this:
for(CBService *service in peripheral.services)
{
if([service.UUID isEqual:theServiceCBUUIDYouAreLookingFor])
{
for(CBCharacteristic *charac in service.characteristics)
{
if([charac.UUID isEqual:theCharCBUUIDYoureLookingFor])
{
//NOW DO YOUR WRITING/READING AND YOU'LL BE GOOD TO GO
}
}
}
}
关于ios - 通过 UUID 写入 CBCharacteristic,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18088721/
我在我的一个应用程序中启用了 CoreBluetooth。有一个中央 iOS 设备,以及最多 2 个可以连接到中央的外围 iOS 设备。 我通过使用中央订阅的外围设备上的一个特性实现了上游通信,我通过
我目前正在开发扫描我公司信标的 BLE 应用程序,我需要更新 CBCharacteristic 的值。 我在写入函数后没有收到任何错误,但更改并未反射(reflect)在 BLE 设备上。 我已经扫描
我有可以与 BLE 设备配合使用的应用程序。我有特征值,但无法将其转换为字符串。例如, value = 如何转换成字符串? 最佳答案 let dd = getCharacteristic.value
首要任务:运行 OSX 10.10.4、iOS 4、Xcode 6.3.2、iPhone 6、Swift 短篇小说:我这里有一个特定的蓝牙 LE 设备,当特性值发生变化时,我想从中接收通知,例如通过用
在最新的 Apple 文档中,CBCharacteristic 的 UUID 属性有一条线穿过它,并且表示它仅在 5.0 到 7.1 中可用。但是,您通常希望看到的“已弃用”一词却不见踪影。 更重要的
我正在尝试使用 CoreBluetooth 写入特定的已知特征。我觉得这应该是可能的,因为我使用了 Texas Instruments BLE 实用程序,您可以在连接的外围设备上选择“写入值”操作,只
在 CoreBluetooth 应用程序中,我想从通知切换到指示,以便我可以确保另一端收到数据。 在Apple的示例代码中BTLE Central Peripheral Transfer ,我尝试用
我有一个已成功连接的 BLE 设备。在这种情况下,每当我向 BLE 设备发送字符串“GET DATA”时,设备都会通过向我发送特定响应来响应。我正在使用 didDiscoverCharacterist
我正在使用 CoreBluetooth 框架制作一个应用程序,我最近将它移植到 swift 2.0。在我的代码中,我有一个全局变量,它是一个 CBCharacteristic,在 swift 1.2
如何比较这个? uuid 和字符串不能比较 func charValues() { let charValue = String(data: getCharacteristic.valu
大家好,我正在尝试让这个蓝牙 LE 设备连接到应用程序并获取值。我正在使用 Core Bluetooth,它应该可以获取值。我让它工作,但突然间它在更新时停止通知值。 func peripheral(
我正在我的应用程序中开发 BLE 功能。我在我的项目中添加了CoreBluetooth框架。 我已经添加了, import CoreBluetooth 在 swift 文件的起始位置。 现在,当我尝试
我创建了一个充当 CBPeripheral 的应用程序。我试图在连接的 Central 上显示服务和特征的名称,但我无法找到执行此操作的方法。我已经阅读了 CBCharacteristic 的类引用,
我无法将类型为 NSData 的 CBCharacteristic 的值属性转换为 NSString。我尝试了通常的 initWithData:encoding: NSString 方法,如下所示。但
我想从蓝牙模块读取数据。有一个特征有4个值,存储在8个字节/4个字中。 这是存储在 characteristic.value 中的数据: 0x01 0x01 0x00 0x01 0x04 0x05 0
当我当时加载任何方法时,它会向我显示此警告,因为我正在使用从方法中检索的特性 var cbChar : CBCharacteristic func bleManagerPeripheral(_ p
我是一名优秀的程序员,十分优秀!