2011-10-16 4 views
3

IOS4.01이 설치된 3GS에서 startMonitoringSignificantLocationChanges를 사용하는 응용 프로그램을 테스트하고 있습니다. (IOS4의 모든 버전에서 응용 프로그램을 작동 시키므로이 장치에서 OS를 업그레이드하지 않았 으면합니다.)startMonitoring 중요한 위치 변경이 시작되지 않았습니까?

info.pllist에는 "위치 업데이트에 등록됨"배경 키가 있습니다 (startMonitoringSignificantLocationChanges에는 필요하지 않지만 앱의 다른 위치에 필요함).

장치가 절전 모드이고 내 앱이 배경에있는 경우 장거리 (꽤 많은 셀 타워 통과)와 오랜 시간 동안 여행하더라도 중요한 위치 업데이트가 실행되지 않습니다. . 그러나 홈 키를 눌러 기기를 깨우는 순간 (내 앱이 백그라운드에서, 전경에서 아무것도 보이지 않는 경우) 앱의 위치 이벤트 핸들러가 해당 지역의 유효한 위치로 트리거됩니다. 이것은 1000 미터가 넘는 정확도를 확인함으로써 중요한 위치 이벤트입니다.)

사용자가 장치를 활성 상태로 여행하지 않기 때문에 중요한 위치 변경을 모니터링한다는 전체적인 생각을 무시합니다.

안타깝게도 이보다 고급 OS가있는 장치는 없습니다 (다른 모든 장치는 iPhone이 아니며 startMonitoringSignificantLocationChanges를 지원하지 않습니다).

이 문제는 알려진 문제입니까? 아니면 잘못된 것입니까?

+0

이봐,이 문제를 해결할 수 있었습니까? – Yoav

+0

최신 iOS 버전 6.0 이상에서도이 문제가 발생했습니다. 어떤 해결책? –

+0

위치 서비스에서 호출하는 appdelegate 메소드를 말하는 중입니다. 델리게이트 메서드가 호출 된 후에 당신이해야 할 일은 무엇입니까? –

답변

0

AppDelegate가 CLLocationManagerDelegate로 설정되어 있고 중요한 변경이 발생할 때 콜백을 수신하도록 올바른 메서드를 설정해야합니다. 위임자와 다른 클래스를 설정하고 앱을 백그라운드로 가져 가면 클래스가 해당 클래스를 수신 할 수 있도록 깨우지 않을 가능성이 있습니다.

AppDelegate를 수신하도록 설정해보십시오. 그런 다음 수행해야하는 모든 작업에 대해 클래스에 전화하십시오.

+0

고마워요.하지만 AppDelegate가 전화를 걸었습니다.하지만 홈 키를 눌러 절전 모드에서 장치를 꺼내야합니다. 내 앱이 백그라운드에서 작동하는 상태에서이 버튼을 누르면, 앱 배치는 여전히 배경에 있지만 중요한 위치 알림을받습니다. 내 애플 리케이션 대리인에서 자세한 로깅을 사용하고 정확히 무슨 일이 언제 일어날 지 알고 있습니다. 디스플레이가 꺼져있는 동안에는 위치 이벤트가 없습니다. 심지어 타이머 이벤트를 추가하여 내 앱이 여전히 살아 있고 백그라운드에서 실행되도록하고 타이머 위임을 호출합니다. –

0

this question과 비슷한 주제로 답을 보았습니까?

코드를 보지 않고도 말하기는 어렵지만, 백그라운드 동작 구현시 누락 된 부분이있을 수 있습니다.

관련 문제