當我在我的應用程序中使用位置功能時,如果我想讓應用程序獲取我的位置,我會在第一次啓動時收到問題。如何在啓用我的職位時獲得活動?
然後我可以在魅力熊上設置這個選項,而不用自己實現。
現在的問題:
我如何趕上如果用戶更改魅力吧這個選項設置爲true或false的事件?
我加了圖片,但它的Windows 8的
當我在我的應用程序中使用位置功能時,如果我想讓應用程序獲取我的位置,我會在第一次啓動時收到問題。如何在啓用我的職位時獲得活動?
然後我可以在魅力熊上設置這個選項,而不用自己實現。
現在的問題:
我如何趕上如果用戶更改魅力吧這個選項設置爲true或false的事件?
我加了圖片,但它的Windows 8的
您需要使用GeoLocator
StatusChanged
事件捕捉位置服務變化的德語版。
這是一個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;
}
有幾種情況,你可以得到:
如果您獲得已禁用狀態,則表示用戶已禁用位置服務權限。如果您遇到其他問題,則表示該用戶已啓用位置服務權限。
如果用戶禁用後重新啓用位置訪問,也沒有 通知應用程序。狀態屬性不會更改,並且 不是statusChanged事件。您的應用應該創建一個新的Geolocator對象,並調用getGeopositionAsync以嘗試獲取更新的位置 數據,或者再次訂閱positionChanged事件。如果狀態爲 表示位置已重新啓用,請清除您的應用程序先前已通知用戶位置服務已被禁用的任何UI, 並對新狀態做出適當響應。
問題是,當我禁用它,並再次啓用我沒有得到location_StatusChanged事件 – gurehbgui
這是它的工作方式。這不是你的應用程序的問題。您可以使用'PositionChanged'事件和'GetGeopositionAsync'方法來解決這個問題,但是您不會100%確定它,並且您將根據您定義的報告間隔獲得一些延遲。 – letiagoalves