2016-09-27 3 views
0

나는 비콘 (내가 UIID를 알고 있음)을 스캔하고 표시하는 앱을 가지고있다. 처음 몇 번 나는 그것을 실행했다. 나는 즉시 비컨을 발견했다. 하지만 지금은 내가 그것을 실행할 때마다, 그들을 감지하는 데 오래 걸리는 것 같습니다. 비록 내가 장치 옆의 책상 바로 위에 앉아있는 표지판을 가지고있다.iOS : 오랜 시간이 걸리는 신호 탐지

저는 배터리 교체, iPad에서 iPad로 변경, Mac에서 비콘 스캔 응용 프로그램 검사, 응용 프로그램 재구성 등을 시도했습니다. 다른 제조업체의 다양한 비컨 범위가 모두 표시됩니다. 같은 문제가 있습니다. 아무것도이 문제를 해결하는 것 같습니다.

let locationManager = CLLocationManager() 
locationManager.delegate = self 
let region = CLBeaconRegion(proximityUUID: UUID(uuidString:"61687109-905F-4436-91F8-E602F514C96D")!, identifier: "BlueCat beacon") 
locationManager.startMonitoring(for: region) 

을 그리고 나는 전화를받을 위임 방법 중 하나를하기 전에 5 분 이상까지 무엇이든 기다릴 수 :

내 코드는 기본적으로 다음과 같습니다.

내가 처음으로 비콘을 사용하려고 시도한 것입니다. 이게 정상인가? 장치가 신호를 보는데 오랜 시간이 걸릴 수 있습니까?

답변

1

이상적인 조건에서 iOS의 didEnterRegion 콜백은 범위로 들어오는 신호가 몇 초 내에옵니다. 덜 이상적인 조건에서이 콜백은 15 분 이상 걸릴 수 있습니다.

모니터링 할 때 신호를 탐지하는 데 지연을 초래할 수있는 요소가 많으며 테스트하는 방법을 정확히 모른 채 말하기는 어렵습니다. 두 팁 :

  1. 하드웨어 필터 슬롯 iOS 장비에이을 제한하고, 선착순에있는된다. 이 슬롯을 차지한 비콘 앱이 많이 설치되어 있거나 (또는 ​​앱이 여러 지역을 등록한 경우) 모든 슬롯이 사용되었을 수 있습니다. 하드웨어 필터 슬롯이 없어지면 탐지는 약 15 분마다 발생하는 소프트웨어 검사로 바뀝니다. 이 슬롯에 고정되어있을 수있는 모든 앱 (귀하의 앱 포함)을 제거한 다음 앱만 다시 설치하십시오.

  2. 앱을 배경으로 놓을 때 "영역 내에 있지"않은지 확인하십시오. iOS가 해당 지역에 있다고 판단하면 지역을 벗어난 것을 인식하고 다시 입력 할 때까지 새로운 didEnterRegion 콜백을받지 못합니다. iOS가이 지역을 벗어났다는 것을 깨닫는 시간은 그것이 실현되었다는 것을 깨닫는 데 걸리는 시간보다 훨씬 길다. 앱이 전경에있을 때 항상 비컨에 대해 범위를 지정하고 iOS가 더 이상 지역에 없다는 것을 확인하기 위해 앱을 포 그라운드에서 전경에 두는 것이 좋습니다 (일반적으로 30 개가 필요함). 몇 초 만에 종료를 트리거 할 수 있습니다.) 그런 다음에 만 백그라운드에 놓고 감지 시간을 측정하기위한 신호를 켜야합니다.

관련 문제