
出現如圖所示情況,這時候有兩種方法可以處理,一種是讓硬件部修改硬件配對,另一種是程序里面測試該提示框的對應特征值,不要調用該特征值就不會出現
//2.掃描到Characteristics,特征回調
-(void)peripheral:(CBPeripheral *)peripheral didDiscoverCharacteristicsForService:(CBService *)service error:(NSError *)error{
for (CBCharacteristic *characteristic in service.characteristics)
{
_writePeripheral = peripheral;
//截取設備uuid6
NSString *UID2 =[UUIDSERVICE2 substringWithRange:NSMakeRange(4, 4)];
//轉化為大寫
NSString*UUIDString2 =[UID2 uppercaseString];
//獲取當前密碼狀態
if ( [characteristic.UUID.UUIDString isEqualToString:UUIDString2]) {
_readCharacteristic =characteristic;
[peripheral setNotifyValue:YES forCharacteristic:characteristic];
}
//截取設備uuid6
NSString *UID6 =[UUIDSERVICE6 substringWithRange:NSMakeRange(4, 4)];
//轉化為大寫
NSString*UUIDString6 =[UID6 uppercaseString];
//截取設備uuid4
NSString *UID4 =[UUIDSERVICE4 substringWithRange:NSMakeRange(4, 4)];
//轉化為大寫
NSString*UUIDString4 =[UID4 uppercaseString];
//寫入數據
if ( [characteristic.UUID.UUIDString isEqualToString:UUIDString6]) {
// 拿到特征,和外圍設備進行交互 保存寫的特征
_writeDataCharacteristic = characteristic;
[peripheral setNotifyValue:YES forCharacteristic:characteristic];
}
//獲取當前狀態
if ( [characteristic.UUID.UUIDString isEqualToString:UUIDString4]) {
_readCharacteristic =characteristic;
[peripheral setNotifyValue:YES forCharacteristic:characteristic];
}
}
}
在這里不要調用多余的特征值和提示框顯示的特征值,
[peripheral readValueForCharacteristic:characteristic];這行代碼要注意在特定的特征值里再調用,特征值外面別調用,不然問題就來了
