2013-05-27 39 views
0

當我在我的應用程序中使用位置功能時,如果我想讓應用程序獲取我的位置,我會在第一次啓動時收到問題。如何在啓用我的職位時獲得活動?

然後我可以在魅力熊上設置這個選項,而不用自己實現。

現在的問題:

我如何趕上如果用戶更改魅力吧這個選項設置爲true或false的事件?

我加了圖片,但它的Windows 8的enter image description here

回答

0

您需要使用GeoLocatorStatusChanged事件捕捉位置服務變化的德語版。

這是一個C#示例。你沒有標記編程語言,但你可以用這個想法得到這個想法,並使用你選擇的語言。

Geolocator location; 
protected override void OnNavigatedTo(NavigationEventArgs e) 
{ 
    location = new Geolocator(); 
    location.StatusChanged += location_StatusChanged; 
} 

async void location_StatusChanged(Geolocator sender, StatusChangedEventArgs args) 
{ 
    var new_status = args.Status; 
} 

有幾種情況,你可以得到:

  • notInitialized
  • 禁用
  • 不可用的
  • 無數據
  • 初始化
  • 準備

如果您獲得已禁用狀態,則表示用戶已禁用位置服務權限。如果您遇到其他問題,則表示該用戶已啓用位置服務權限。

documentation

如果用戶禁用後重新啓用位置訪問,也沒有 通知應用程序。狀態屬性不會更改,並且 不是statusChanged事件。您的應用應該創建一個新的Geolocator對象,並調用getGeopositionAsync以嘗試獲取更新的位置 數據,或者再次訂閱positionChanged事件。如果狀態爲 表示位置已重新啓用,請清除您的應用程序先前已通知用戶位置服務已被禁用的任何UI, 並對新狀態做出適當響應。

+0

問題是,當我禁用它,並再次啓用我沒有得到location_StatusChanged事件 – gurehbgui

+0

這是它的工作方式。這不是你的應用程序的問題。您可以使用'PositionChanged'事件和'GetGeopositionAsync'方法來解決這個問題,但是您不會100%確定它,並且您將根據您定義的報告間隔獲得一些延遲。 – letiagoalves

相關問題