2013-08-21 2 views
4

에서 I는 결과는 동일한 둘레에 회 반환하는 perpheral 장치 스캔 코드 아래scanForPeripheralsWithServices : 반환 결과 회 동일한 주연

[centralManager scanForPeripheralsWithServices:serviceUUIDArray 
     options:[NSDictionary dictionaryWithObject:[NSNumber numberWithBool:NO] 
     forKey:CBCentralManagerScanOptionAllowDuplicatesKey]] 

를 사용한다. 하나를 돌려 보내는 방법? 감사.

+0

UUID로 필터링 ... 아직 없으면 버리십시오 (아직 주어지지 않음) – Larme

+0

UUID는 이전에 연결된 경우에만 주변 장치에서 사용할 수 있습니다. 새로운 주변 장치에는 UUID가 없습니다. 'nil' UUID를 가진 필터를 필터링하면 새로운 주변 장치를 찾지 못하게됩니다. – allprog

답변

1

주변기기의 이름이 업데이트 되었기 때문에 이러한 현상이 발생합니다. 이 경우 다시 콜백을받습니다. http://lists.apple.com/archives/bluetooth-dev/2013/Apr/msg00099.html

크레딧 ETAN Kissling로 이동 :

  1. 이름에서 읽을 :

    이 장치 이름이 우선 순위 목록에 따라 아이폰 OS에 의해 캐시

    이 스레드에 대한 자세한 설명이 포함되어 연결 후 장치 이름 특성

  2. 광고 패킷의 이름
  3. 광고 패킷에서 이름이 장치 이름 특성의 마지막 이름의 접두사해야한다는

참고.

아마도 물리적 장치에 이미 캐시 된 이름이 있었고 은 이미 이름을 검색 했으므로 두 번째 업데이트를 보내지 않았을 수 있습니다.

을 요청하지 않아도 앱에서 중복 된 정보를 처리 할 수 ​​있어야합니다.

당신이 주변에 isEqualTo: 방법으로 이미받은 사람을 확인하거나 저장하기위한 NSSet을 사용할 수 있습니다, 중복 처리합니다.

+0

크레딧을 주셔서 감사합니다 :-) 당신은 최고입니다! <3 – Etan

+0

@ 이탄 농담 해? 나는 심지어 당신에게 그것을위한 reps를 줬다. – allprog

+2

@ 이탄, 너 최고야! (위의 내 설명을 명확히하기 위해.) – allprog