2014-03-12 2 views
13

새로 출시 된 iOS 7.1의 iBeacon 지원이 그물에 대한 주장을 보았습니다.iOS 7.1에서는 iBeacon 지원이 정말로 어떻게 변경 되었습니까?

은 특히 :

  1. 이 시스템은 여전히 ​​사용자가 명시 적으로 앱을 죽이는 경우에도 앱에 대한 정보 didEnterRegion/didExitRegion 이벤트를 통지 할 예정이다.
  2. didEnterRegion/didExitRegion 알림이 배경에서 더 빠르거나 기기가 더 빠르다고 가정합니다. 이 잠겼습니다.

본인은 본인의 테스트를 통해 이러한 주장을 확인할 수 없었습니다. 사실, 난 덜 잠금 장치에서 didEnterRegion/didExitRegion 알림을 얻을 것으로 보인다. (더 정확하게 didEnterRegion 고지를 얻은 것 같지만 didExitRegion 고지는 아닙니다). 그 이유는 애플이 내 info.plist에서 내 BLE 백그라운드 모드 항목을 제거하게 만들 수 있기 때문일 수 있습니다. 나는 이것을 아직도 해결하려고 노력하고있다.

답변

20

처음에는 테스트를 설정하는 데 어려움이 있었지만 iPhone 4s 및 iPhone 5s 모델에서 iOS 7.1로 앱을 종료 한 후 백그라운드 영역 입력 콜백을 목격했습니다. 테스트 세부 사항 및 재현 지침은 아래 주석을 참조하십시오.

iPhone 4S에서 백그라운드 감지 시간에 대한 테스트를 수행 했는데도 iOS 7.1에서 15 분 지연됩니다. My full test results and methodology are described here.

마지막으로, iOS 7.1로 업그레이드하기 전과 후에 같은 장치에서 측정 한 "정확도"(미터 단위 거리) 측정의 변동에 대한 몇 가지 테스트를 마쳤습니다. 견적에 대한 소음의 분명한 차이는 보이지 않습니다. 아래 그래프는 업그레이드 전후의 결과를 보여 주며, iBeacon은 0.5 미터 떨어져 60 초, 그 다음 3 미터는 60 초 동안 움직입니다. 두 경우 모두 송신기는 제대로 보정 된 iPhone 4S/iOS 7.1이었고 수신기는 iPhone 5S였습니다.

iOS 7.0.6

아이폰 OS 7.0.6 예상 거리

iOS 7.1

아이폰 OS 7.1 예상 거리

+0

David에게 감사드립니다. 나는 당신에게서 소식을 듣고 싶었습니다. (투표). 가능한 한 많은 사람들의 의견을 듣고 싶기 때문에 나는 잠시 동안 대답을 받아들이지 않을 것이지만, 당신의 대답은 언제나처럼 끝납니다. –

+0

P. 너가 DC 지역에있는 걸 본다. 소재? 나는 Great Falls/Sterling에있다. –

+0

Radius Networks 지사는 조지 타운에 있습니다. 아마도 우리는 오래 전에 물리적 세계에서 만날 것입니다. – davidgyoung

0

다윗이에 대한 몇 가지 훌륭한 일을했다, 그래서 나는 조심스럽게이 쓰고 있어요 .. 하지만 나는 내 시험에서 그와 아주 다른 것을보고있다.

iOS 7.1 (11D167)을 실행하는 iPhone 4S와 iOS 7.0.6 (11B651)을 실행하는 iPhone 5S의 두 가지 전화기를 사용하고 있습니다. 내 iBeacons는 Bluecats (www.bluecats.com)에서 제조하고 판매하지만, 아직 SDK를 사용하고 있지는 않습니다. (예 : CoreLocation 만 사용하고 있습니다.) 제조업체가 많은 차이를 내지 않을 것이라고 생각합니다.

앱이 포 그라운드에서 실행 중일 때와 백그라운드에서 실행 중일 때 두 장치 모두에서 약 1-2 초의 응답 시간이 나타납니다. 유일한 차이점은 앱 전환기에서 앱을 삭제할 때입니다. iOS 7.0.6이 응답하지 않거나 (또는 ​​15 분 내에 완료 될 수도 있지만) iOS 7.1이 대략 같은 시간에 응답합니다. "respond"라고 말하면 CLLocationManager의 locationManager : didDetermineState : forRegion : delegate가 iOS에 의해 호출됨을 의미합니다.

실제 전화로 내 사무실을 돌아 다니며 테스트하고 있으므로 신체적으로 움직이거나 범위를 벗어납니다. 이상하게도 (?), 초기 테스트에서 책상에 앉아서 배터리를 제거하고 다시 삽입하여 시뮬레이션을 수행하면서 응답 시간이 훨씬 느려졌습니다. 아마도 이것이 차이의 일부입니까?

+0

다만, "iOS 7.1이 대략 같은 시간에 반응"한다는 것은 응용 프로그램 전환기에서 앱이 종료 될 때 1-2 초 후에 iOS 7.1이 응답한다는 것을 의미합니까? – Segev

0

필자가 테스트 한 결과 비컨의 존재가 앱에 의해 최대 15 분 동안 눈치 채지 않는 것을 보았지만 흥미로운 것을 발견했다. 저는 RedBearLabs mini BTLE 센서를 ibeacons 및 해당 응용 프로그램의 응용 프로그램 (http://redbearlab.com/ibeacon/ (http://redbearlab.com/s/MiniBeacon_v1.zip))에 프로그래밍하여 비컨의 스캔/업데이트를 즉시 시작하는 것으로 보입니다. 만약 내가 신호를 시작하고, 내 애플 리케이션에 간다, MiniBeacon 애플 리케이션을 종료하여 시작, 내 애플 리케이션은 즉시 새로운 비콘이 있다는 것을 알립니다. 이것은 들어가거나 나가는 것과 같은 결과입니다. 그들의 애플 리케이션은 CBCentralManager를 사용하는데, CBCentralManager와 CLBeaconRegion을 섞어서 사용하는 것이 좋습니다. CLBeaconRegion이 블루투스 라디오를 시작/재시작한다고 상상해보십시오. 아마도 이것이 그 이유 일 것입니다. 좀 더 완전한 이해를 가진 사람이 이것을 해결하는 데 도움이되기를 바랄뿐입니다. 당신이 멀리 멀티 태스킹보기에서 귀하의 응용 프로그램을 슬쩍 경우에도

덕분에 인터넷의 주위에 순환 여러 기사에서 언급 한 바와 같이

+0

나는 이것도 보았다. CoreBluetooth를 직접 사용하거나 iBeacons를 사용하여 BLE 검색을 수행하면 같은 장치에있는 두 개의 앱 *이 서로 영향을 미칠 수 있습니다. 한 앱이 포 그라운드에서 BLE 스캔을 수행하면 BLE 스캔 결과는 백그라운드의 모든 앱에 대한 iBeacon 감지를 즉시 트리거합니다. 나는 이것이 당신이 MiniBeacon app으로보고있는 것임을 의심합니다. 불행히도 이것은 외부 응용 프로그램의 검색 동작을 제어 할 수 없기 때문에 백그라운드 검색 속도를 높이는 데 유용하지 않습니다. – davidgyoung

1

는 비콘 감지 사용할 수 있습니다. 그러나 내 실험에서 지역 입력/종료 이벤트는 didDetermineState :을 직접 호출하지 않습니다. (아마 내가 어떤 비컨 감지를 시작하기 위해 AppDelegate를 사용하지 않았기 때문에 UI 이벤트를 기반으로 모니터링을 트리거했기 때문일 것입니다. 대신 백그라운드 위치 업데이트에 등록한 경우 AppDelegate의 didFinishLaunchingWithOptions : 메소드는 launchOptions 매개 변수에 UIApplicationLaunchOptionsLocationKey 키의 값으로 호출됩니다.

이 작업을 수행하기 위해 앱을 백그라운드로 구매 한 위치 업데이트인지 테스트하기 위해 이와 같은 간단한 검사를 할 수 있습니다.

if ([launchOptions objectForKey:UIApplicationLaunchOptionsLocationKey]) 

그러면 모니터링 된 영역을 다시 등록하거나 즉시 측정을 시작할 수 있습니다.

P.S. CLLocationManager는 이전에 모니터링 한 응용 프로그램 복원 영역을 그대로 유지하지만 동일한 UUID와 ID를 사용하여 다시 모니터링을 시작하지 않으면 CLLocationManagerDelegate에 들어가거나 나가는 영역 이벤트가 생기지 않습니다. (생명을 되찾았습니다)

0

iOS7.1.1에서 내 앱이 백그라운드 모드에있을 때 검색을 시작하기 위해 15 분을 재현합니다. 궁금한 점이 있는데, 다른 회사의 많은 유튜브 비디오가 앱을 보여주는 것은 백그라운드 모드에서 깨어나 자마자 바로 그 비컨에 접근했다. 그것은 판매 트릭인가?

+0

결과가 매우 혼 합합니다. 가끔 내 앱이 깨어나고 즉시 알림을받습니다. 더 자주 몇 분이 걸립니다. 나는 단지 15 분의 지연 만 몇 번 봤어. 나는 그것이 "최악의 경우"의 응답 시간이라고 생각한다. –

+0

내가 더 많은 우리의 테스트를 abt 공유하자 .1) 전경에서, 다른 사람들이 제안한 것처럼, 거의 즉시; 2) 앱이 포 그라운드에 있지 않지만 다른 앱이 응답하는 데 약 15 분 3) 잠겨있는 동안 휴대 전화가 깨어나고 결과가 일관되지 않은 것으로 나타나 1-2 초에서 7-8 초로 바뀝니다. 4) 휴대 전화가 깨우지 않아 결과가 달라집니다 또한 일관성이 없으며 4-5 초에서 10+까지 다양하며 3보다 훨씬 느립니다. – Hammer