2012-11-16 2 views
0

Windows 8 Metro App에서 GeoLocator를 사용 중입니다. 사용자가 위치 액세스를 허용했다고 가정하면 데이터를 가져 와서 캐시에 저장합니다. 사용자가 앱을 다시로드 할 때 캐시에있는 GeoLocator를 호출 할 필요가 없습니다. - 좋습니다.Windows 8의 위치 권한 변경 확인

그러나 사용자가 위치 액세스를 사용 중지 한 경우이를 감지하고 그에 따라 캐시를 업데이트하여 앱이 GeoLocator를 다시 호출하는 것을 알고 있도록하려면 어떻게해야합니까?

기능을 끄면 GeoLocator가 실패하지만 캐시에 위치 데이터가 있으므로 GeoLocator를 호출하지 않아도이를 감지합니다.

나는 분명한 뭔가를 놓치고 있습니까? 내가 놓친 위치 정보 기능을 감지하는 방법이 있습니까? 내가 제대로 질문을 이해 확실하지 않다

감사 크리스

+1

위치를 캐시 하시겠습니까? 물리적 위치를 변경 한 후 (집이나 다른 곳으로 몰아서) 사용자가 앱을 다시로드하면 어떻게 될까요? –

+0

애플 리케이션이 데스크톱에 있었던 시나리오를 생각하고있었습니다. (옛날처럼 :)) 그리고 GeoLocator를 사용하는 것이 '비싸다'는 MS 문서를 읽으면 캐시에 대해 생각하게됩니다. 그러나, 나는 걱정할 필요가없는 것을 너무 걱정하고있다 .... 대답에 다시 한번 감사한다. – user1706388

답변

0

하지만 한 발언 :

  • 위치를 캐싱은 좋은 생각이 아니다. 앱을 다시로드 할 때 사용자가 앱이 일시 중지 된 시점과 동일한 지리적 위치에 있다는 보장이 없습니다. 이 경우 앱을로드/재개 할 때마다 GeoLocator를 호출해야합니다.

위치 정보가 활성화되어 있는지 확인하려는 경우 어쨌든 GeoLocator에서 StatusChanged 이벤트를 사용할 수 있습니다. 앱이 실행되는 동안 위치 설정이 변경되면 이벤트가 실행됩니다.

앱이 언로드되면 이벤트가 트리거되지 않습니다.

앱이 언로드되는 동안 위치가 사용 중지되었는지 여부를 확인하려면 앱이로드 될 때마다 Geolocator.GetGeoPositionAsync() 번으로 전화를 걸고 실패 여부를 확인하는 것 외에는 다른 방법이 없습니다.

희망이 있습니다.

+0

많은 정보를 제공해 주셔서 감사합니다. 유용합니다. 사용자가 GeoLocator를 전혀 사용하지 않고 앱 위치 권한 (위치가 아님)을 변경했는지 감지 할 수있는 방법이 있다고 생각했습니다. 나는 이것이 내가 궁극적으로 내가 겪은 것이라고 생각한다. – user1706388

+0

확인하지 않으면 위치가 변경되었는지 알 수 없으며 확인하면 업데이트 만 할 수도 있습니다. –

+0

당신이 이것을 의미했을 지 모르지만 내가 알고 싶었던 위치 "권한"또는 기능이 사용자 위치가 변경되지 않았다. – user1706388

0

GetGeopositionAsync() 호출을 try-catch에 넣을 수 있습니다. "액세스 거부"예외가 발생하면 앱에 대한 위치 권한이 비활성화 된 메시지 상자 만 표시하면됩니다.