iOS 블 루 투 스 장치 이름 캐 시 문제 해결 방법

1.문제 의 배경
  • 장치 가 App 에 연결 되 었 을 때
  • 장치 이름 수정
  • App 에서 스 캔 한 장치 이름 은 이전 이름
  • 입 니 다.
  • App 코드 에서 이름 을 가 져 오 는 방법 은(perpheral.name)
  • 2.문제 분석
    앱 을 중심 으로 다른 블 루 투 스 장 치 를 연결 할 때.
    첫 연결 이 성공 하면 iOS 시스템 에 서 는 이 외부 캐 시 를 기록 합 니 다.
    다음 에 다시 검색 할 때 검 색 된 블 루 투 스 장 치 를 직접 인쇄(peripheral.name)하면 이전 캐 시 에 있 던 블 루 투 스 이름 을 얻 을 수 있 습 니 다.
    이 기간 에 블 루 투 스 장치 가 이름 을 업데이트 하면(peripheral.name)이 매개 변 수 는 변 하지 않 기 때문에 장치 의 이름 을 다른 방식 으로 가 져 와 야 합 니 다.라디오 패 킷 에 kCBAdvDataLocalName 이라는 필드 가 있어 현재 장치 이름 을 실시 간 으로 가 져 올 수 있 습 니 다.
    3.문제 해결
    OC 와 Swift 의 해결 방법 을 알려 드 리 겠 습 니 다.
    OC
    
    -(void)centralManager:(CBCentralManager *)central didDiscoverPeripheral:(CBPeripheral *)peripheral advertisementData:(NSDictionary<NSString *,id> *)advertisementData RSSI:(NSNumber *)RSSI{
        NSString *localName = [advertisementData objectForKey:@"kCBAdvDataLocalName"];
    } 
    Swift
    
    func centralManager(_ central: CBCentralManager, didDiscover peripheral: CBPeripheral, advertisementData: [String : Any], rssi RSSI: NSNumber) {
        let localName = advertisementData["kCBAdvDataLocalName"]
    }
    총결산
    iOS 블 루 투 스 장치 이름 캐 시 문제 해결 방법 에 대한 이 글 은 여기까지 입 니 다.iOS 블 루 투 스 장치 이름 캐 시 내용 에 대해 서 는 이전 글 을 검색 하거나 아래 글 을 계속 찾 아 보 세 요.앞으로 도 많은 응원 부탁드립니다!

    좋은 웹페이지 즐겨찾기