2011-04-10 6 views
2

저는 Apple의 중요한 위치 변경 서비스를 결정하고 위치 관리자를 정기적으로 시작/중지하려고합니다. Apple이 이에 대해 말한 내용입니다.배경 위치 추적 : iOS

위치 데이터 수집은 전력을 많이 소비하는 작업입니다. 온보드 무선을 켜고 사용 가능한 셀 타워, Wi-Fi 핫스팟 또는 GPS 위성을 쿼리하는 데 몇 초가 걸릴 수 있습니다. 장시간 표준 위치 서비스를 실행하면 장치의 배터리가 소모 될 수 있습니다. (중요한 변경 위치 서비스는 셀 타워 변경 만 모니터링하여 배터리 소모를 크게 줄이지 만 셀룰러 라디오가있는 장치에서만 작동합니다.) 대부분의 응용 프로그램에서는 일반적으로 초기 위치 고정을 설정 한 다음 업데이트 만 획득하면 충분합니다 그 후 주기적으로. 정기적 인 위치 업데이트가 필요하다고 확신하는 경우 가능한 중요한 위치 서비스를 사용해야합니다. 그렇지 않으면 배터리 수명에 미치는 영향을 최소화하는 방식으로 표준 위치 서비스의 매개 변수를 구성해야합니다.

따라서 내 유스 케이스는 사용자가 특정 위치 근처 (~ 1km)에 있는지 사용자에게 알릴 수 있어야합니다. 중요한 위치 업데이트를 건너 뛰고 매 10 분마다 위치 관리자를 폴링해야합니까?

감사합니다.
Teja.

답변

1

지역 모니터링 API 사용을 고려하십시오. iOS 4 멀티 태스킹을 지원하면서 잠글 수있는 유일한 방법입니다. 그러나, 특히 많은 지역을 모니터하고 싶다면 약간의 변덕 스러움이 있습니다.

사용자가 특정 위치 근처에있을 때를 알고 싶다면 중요한 위치 변경 API를 피할 수 있습니다.

+0

현재 @Tejaswi가하고있는 것과 비슷한 것을 개발하려고하지만 내 경우가 조금 다릅니다. 나는 그가 공항에있는 물체 근처에있을 때 사용자에게 알려주는 앱을 만들어야한다. 지역 모니터링 문제는 이미 영역에있을 때 didEnterRegion 호출을받지 못한다는 것을 테스트하고 명확히했습니다. 내 입/퇴장 이벤트에서만 작동한다는 뜻입니다. – Centurion

+0

필자의 경우 비행기 모드가 ON 인 항공편에서 사용자가 왔을 수 있으며 앱이 일시 중지 모드 일 수 있습니다. 즉, regionMonitoringEnabled 및 locationServicesEnabled를 검사하여 YES가 반환되었지만 모든 모니터링이 중지됩니다. 이제는 사용자가 이미 지역에있는 동안 비행기 모드를 사용할 수 없게되었을 때 비행기 모드가 입력/종료 이벤트에서만 모든 위치 및 지역 모니터링 작업을 멈추게하므로 위치 변경 이벤트를받지 못하는 것이 저를 방해합니다. 이것은 당신이 지역에 있다는 것에 대해 결코 통보받지 못할 것이고 그것은 지역 모니터링을 위해 매우 문제가있는 것처럼 보입니다. – Centurion