【发布时间】:2015-02-19 12:57:28
【问题描述】:
对于一个项目,我需要通过蓝牙将密钥发送到 BLE 设备。
我从我的网络服务接收密钥作为 NSString。例如 1234
现在我需要发送到设备的是
Byte byteArray[] = {0x12, 0x34};
有没有人可以给我一些示例代码来说明如何做到这一点?
谢谢
【问题讨论】:
对于一个项目,我需要通过蓝牙将密钥发送到 BLE 设备。
我从我的网络服务接收密钥作为 NSString。例如 1234
现在我需要发送到设备的是
Byte byteArray[] = {0x12, 0x34};
有没有人可以给我一些示例代码来说明如何做到这一点?
谢谢
【问题讨论】:
要将字符串作为字节发送,您应该使用以下代码:
NSString *yourString = @"1234";
NSData *data = [yourString dataUsingEncoding:NSUTF8StringEncoding];
NSUInteger len = [data length];
Byte *byteData = (Byte*)malloc(len);
memcpy(byteData, [data bytes], len);
但0x12 的十六进制等于十进制的18。
有用的链接:
【讨论】:
我终于设法使用组合 webservice - xcode 做到了这一点 我没有将整个密钥作为一个字符串发送,而是将其拆分并将前 2 位数字转换为 PHP 中的十六进制(在 Web 服务上)。
使用此代码,我创建了正确的字节数组来发送代码:
NSString *key1 = [message objectForKey:@"key1"];
NSString *key2 = [message objectForKey:@"key2"];
unsigned char byteArray[2];
byteArray[0] = [key1 intValue];
byteArray[1] = [key2 intValue];
【讨论】: