我正在使用c#在Win 8 Metro應用程序中工作。在metro應用程序中更改權限時會收到通知
在我的應用程序中我使用地理定位服務來獲取用戶位置的當前座標。第一次啓動應用程序時,系統會要求您提供權限。 這一切工作正常,我得到的座標沒有問題。
現在我想在權限更改後立即給用戶一條消息。 如何做到這一點?
我正在使用c#在Win 8 Metro應用程序中工作。在metro應用程序中更改權限時會收到通知
在我的應用程序中我使用地理定位服務來獲取用戶位置的當前座標。第一次啓動應用程序時,系統會要求您提供權限。 這一切工作正常,我得到的座標沒有問題。
現在我想在權限更改後立即給用戶一條消息。 如何做到這一點?
檢查上述文件: http://msdn.microsoft.com/en-us/library/windows/apps/Hh465148
爲重新啓用定位服務
讓你的應用程序用於重新啓用位置提供UI服務,例如,一個刷新按鈕來實現UI重新實例化Geolocator對象並嘗試再次獲取位置信息。
如果用戶禁用後重新啓用位置訪問,沒有對應用程序沒有通知。狀態屬性不會更改,並且不存在statusChanged事件。您的應用程序應該創建一個新的Geolocator對象,並調用getGeopositionAsync來嘗試獲取更新的位置數據,或者再次訂閱positionChanged事件。如果狀態表明該位置已重新啓用,請清除您的應用程序先前通知用戶該位置服務已被禁用的任何UI,並對新狀態進行適當響應。
您的應用程序也應該再試一次激活時獲得位置數據,或者當用戶明確嘗試使用需要位置信息,或在任何其他情況下,適當的時間功能。
StatusChanged事件可以用於此。
case Windows.Devices.Geolocation.PositionStatus.disabled:
// The app doesn't have permission to access location,
// either because location has been turned off.
return "Your location is currently turned off. " +
"Change your settings through the Settings charm " +
" to turn it back on.";
break;
嗯,這幾乎可以工作,但StatusChanged事件僅在我關閉權限時才被調用,而不是在我之後打開它們時調用它們。 – SwissPrime 2012-08-15 11:35:46