ios中藍牙自動連接出現硬件提示框的問題


 

出現如圖所示情況,這時候有兩種方法可以處理,一種是讓硬件部修改硬件配對,另一種是程序里面測試該提示框的對應特征值,不要調用該特征值就不會出現

//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];這行代碼要注意在特定的特征值里再調用,特征值外面別調用,不然問題就來了

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM