none
Geolocation기능 관련 질문 RRS feed

  • 질문

  • 안녕하세요.
    Windows 8 메트로 앱을 최근 개발하기 시작한 개발자입니다.

    근래에 Geolocation 기능을 사용중에 여러 가지 문의 사항이 있어 아래와 같이 질문 드립니다.

    1. Geolocation 기능은 Windows 8을 사용하는 모든 기기에서 지원 가능한지요?

    2. 모두 지원 가능하지 않다면, 해당 기능을 지원하지 않는 기기는 어떻게 API를 통해 알 수 있나요?

    3. Geolocation기능을 사용하기 전 사용자에게 권한 요청을 하게 되는데, 이때 사용자가 권한주기를 거부하면 PositionStatus::Disabled가 오는 것을 확인했습니다. 
    그런데 다시 사용자가 어플이 실행중인 상태에서 권한을 다시 오른쪽 Panel을 통해 주게될때는 어떠한 Status Event도 오지않고 또한 Geolocation정보도 더 이상 전달이되지 않습니다. 
    혹시 사용자가 다시 권한을 줬을때 상태를 알려주는 API가 있는지요? 또한 이러한 경우에 Geolocation정보를 받기 위해서는 어떻게 해야 하는지요?

    혹시 답변 주실분이 있으신지요?





    • 편집됨 Jung-Min Park 2012년 12월 20일 목요일 오전 12:27
    2012년 12월 20일 목요일 오전 12:24

답변

  • 안녕하세요,

    1번과 2번. Geolocation의 requirement를 보면 다음과 같이 정의되어 있습니다.

    http://msdn.microsoft.com/library/windows/apps/BR225603

    지원되는 최소 클라이언트

    Windows 8

    지원되는 최소 서버

    Windows Server 2012

    지원되는 최소 전화

    Windows Phone 8

    즉, Windows 8에서는 모든 플랫폼에서 Geolocation namespace를 사용할 수 있으며, 만약 어떠한 이유로 서비스를 사용할 수 없는 상황이라면 아래의 enum값을 통해 값이 통지될 것입니다.

    http://msdn.microsoft.com/ko-KR/library/windows/apps/windows.devices.geolocation.statuschangedeventargs

    case Windows.Devices.Geolocation.PositionStatus.notAvailable:
              // Location is not available on this version of Windows
              return "You do not have the required location services " +
                  "present on your system.";

    3. 만약 Geolocation 서비스를 Permission에서 disable 한 후 다시 enable한 경우, 말씀하신 것처럼 enable했다는 재통지 notification이 날아오지 않습니다. 이 내용은 Geolocation의 Guidelines 문서에 설명되어 있는 내용입니다.

    • If the user reenables location access after disabling it, there is no notification to the app. The status property does not change and there is no statusChanged event. Your app should create a new Geolocator object and callgetGeopositionAsync to try to get updated location data, or subscribe again to positionChanged events. If the status then indicates that location has been reenabled, clear any UI by which your app previously notified the user that location services were disabled, and respond appropriately to the new status.
    • Your app should also try again to get location data upon activation, or when the user explicitly tries to use functionality that requires location info, or at any other scenario-appropriate time.

    즉, 설명되어 있는 것처럼 disable후 다시 reenable한 경우 statusChanged 이벤트가 날아오지 않습니다. 이 경우에는, 새로운 Geolocator를 생성해야 할 것을 안내하고 있습니다.

    감사합니다.

    • 답변으로 표시됨 Jung-Min Park 2012년 12월 29일 토요일 오후 2:28
    2012년 12월 28일 금요일 오전 2:08