2016-12-05 2 views
0

버튼을 누르면 내 앱에서 위치 서비스를 실행하는 블루투스 장치가 있습니다. 위치 서비스는 약 8 초 동안 만 실행됩니다. didUpdateToLocation 대리자 메소드에서 NSLog가 위치를 찾았습니다. 8 초 동안 NSLog를 출력합니다.BackgroundLocationUpdates는 몇 초 동안 만 작동합니다.

앱을 포 그라운드에 놓으면 위치 서비스가 다시 계속됩니다.

[self.locationManager startUpdatingLocation]; 
+0

지속적으로 백그라운드에서 위치 업데이트를 시작하려면 앱이 포어 그라운드에있는 동안 중요한 위치 변경 모니터링을 시작해야합니다. – Paulw11

+0

테스트를 마친 후 효과가 있었지만 수행해야 할 작업을 수행 할 방법이 없습니다. 내 앱으로? 조금도? – Chris

+0

글쎄, 중요한 위치 정보를 남겨두면됩니다. 전체 GPS 위치 업데이트에 비해 에너지 영향이 적습니다. – Paulw11

답변

0

당신만큼 당신의 위치 관리자가 한, 백그라운드 모드 (위치) 활성화 필요 : 버튼을 누르면

self.locationManager = [[CLLocationManager alloc] init]; 
self.locationManager.delegate = self; 
[self.locationManager requestAlwaysAuthorization]; 
[self.locationManager requestWhenInUseAuthorization]; 
self.locationManager.desiredAccuracy = kCLLocationAccuracyBest; 
[self.locationManager setAllowsBackgroundLocationUpdates:YES]; 
[self.locationManager allowsBackgroundLocationUpdates]; 

, 나는이 실행 여기에 내가 위치 관리자를 초기화하는 방법입니다 위치 업데이트를 수신 할 수 있으면 앱에서 모든 블루투스 데이터를 수신합니다.

@ Paulw11이 의견에서 언급했듯이 중요한 위치 업데이트를 사용하면 배터리 사용량이 크게 감소합니다.

여기는 Apple guide에 대한 링크입니다.

여기 백그라운드에서 위치 업데이트를 가져 오는 것과 관련된 question에 대한 링크입니다.