ios蓝牙适配

This commit is contained in:
lishuo committed 2021-08-30 18:28:26 +08:00
1 parent d8927ceca5
commit 99540eb1fd
6 files changed
+84 -41

No files matched your search

+14 -8
View File
@@ -816,10 +816,16 @@ extern "C" {
NSString *message = nil;
if (advertisementData != nil && [advertisementData objectForKey:CBAdvertisementDataManufacturerDataKey] != nil)
if (advertisementData != nil && [advertisementData objectForKey:@"kCBAdvDataServiceUUIDs"] != nil)
{
NSData* bytes = [advertisementData objectForKey:CBAdvertisementDataManufacturerDataKey];
message = [NSString stringWithFormat:@"DiscoveredPeripheral~%@~%@~%@~%@", identifier, name, RSSI, [UnityBluetoothLE base64StringFromData:bytes length:bytes.length]];
NSArray* bytes = [advertisementData objectForKey:@"kCBAdvDataServiceUUIDs"];
NSString* list = @"";
for (CBUUID* sUUID in bytes)
{
list = [list stringByAppendingString: sUUID.UUIDString.length == 4? [NSString stringWithFormat:@"0000%@-0000-1000-8000-00805F9B34FB",sUUID.UUIDString]:sUUID.UUIDString];
list = [list stringByAppendingString: @","];
}
message = [NSString stringWithFormat:@"DiscoveredPeripheral~%@~%@~%@~%@", identifier, name, RSSI, list];
}
else if (RSSI != 0 && _rssiOnly)
{
@@ -916,7 +922,7 @@ extern "C" {
{
for (CBService *service in peripheral.services)
{
NSString *message = [NSString stringWithFormat:@"DiscoveredService~%@~%@", foundPeripheral, [service UUID]];
NSString *message = [NSString stringWithFormat:@"DiscoveredService~%@~%@", foundPeripheral,service.UUID.UUIDString];
UnitySendMessage ("BluetoothLEReceiver", "OnBluetoothMessage", [message UTF8String]);
[peripheral discoverCharacteristics:nil forService:service];
@@ -939,7 +945,7 @@ extern "C" {
{
for (CBCharacteristic *characteristic in service.characteristics)
{
NSString *message = [NSString stringWithFormat:@"DiscoveredCharacteristic~%@~%@~%@", foundPeripheral, [service UUID], [characteristic UUID]];
NSString *message = [NSString stringWithFormat:@"DiscoveredCharacteristic~%@~%@~%@", foundPeripheral,service.UUID.UUIDString,characteristic.UUID.UUIDString];
UnitySendMessage ("BluetoothLEReceiver", "OnBluetoothMessage", [message UTF8String]);
}
}
@@ -960,7 +966,7 @@ extern "C" {
{
if (characteristic.value != nil)
{
NSString *message = [NSString stringWithFormat:@"DidUpdateValueForCharacteristic~%@~%@~%@", foundPeripheral, [characteristic UUID], [UnityBluetoothLE base64StringFromData:characteristic.value length:characteristic.value.length]];
NSString *message = [NSString stringWithFormat:@"DidUpdateValueForCharacteristic~%@~%@~%@", foundPeripheral, characteristic.UUID.UUIDString, [UnityBluetoothLE base64StringFromData:characteristic.value length:(int)characteristic.value.length]];
UnitySendMessage ("BluetoothLEReceiver", "OnBluetoothMessage", [message UTF8String]);
//NSString *message = [UnityBluetoothLE base64StringFromData:characteristic.value length:characteristic.value.length];
//UnitySendMessage ("BluetoothLEReceiver", "OnBluetoothData", [message UTF8String] );
@@ -1072,7 +1078,7 @@ extern "C" {
NSString *foundPeripheral = [self findPeripheralName:peripheral];
if (foundPeripheral != nil)
{
NSString *message = [NSString stringWithFormat:@"DidUpdateNotificationStateForCharacteristic~%@~%@", foundPeripheral, characteristic.UUID];
NSString *message = [NSString stringWithFormat:@"DidUpdateNotificationStateForCharacteristic~%@~%@", foundPeripheral, characteristic.UUID.UUIDString];
UnitySendMessage ("BluetoothLEReceiver", "OnBluetoothMessage", [message UTF8String] );
}
}
@@ -1166,7 +1172,7 @@ extern "C" {
{
characteristic.value = request.value;
NSString *message = [NSString stringWithFormat:@"PeripheralReceivedWriteData~%@~%@", [characteristic UUID], [UnityBluetoothLE base64StringFromData:characteristic.value length:characteristic.value.length]];
NSString *message = [NSString stringWithFormat:@"PeripheralReceivedWriteData~%@~%@", [characteristic UUID], [UnityBluetoothLE base64StringFromData:characteristic.value length:(int)characteristic.value.length]];
UnitySendMessage ("BluetoothLEReceiver", "OnBluetoothMessage", [message UTF8String]);
success = TRUE;