我正在构建适用于Windows 10 Mobile的应用程序,我希望知道位置授权状态何时更改,以便启用/禁用位置功能。我遇到过这个问题,用户总是会看到一个图标,表明应用正在手机的状态栏中访问其位置。看起来简单地为StatusChanged添加一个监听器(而不是为PositionChanged)就足以导致出现这个图标,这是没有意义的,因为应用程序还没有请求任何位置信息。
即使没有获得用户的位置,我也希望能够检测授权状态更改,但这会让用户认为该应用正在跟踪他们的位置(侵犯他们的隐私并耗尽他们的电池),即使它ISN'吨
当我没有真正收听位置更新时,我有什么办法可以阻止此图标出现吗?
这里有一些(丑陋的)代码可以证明这一点:
MainPage::MainPage()
{
InitializeComponent();
Geolocator::RequestAccessAsync();
static Geolocator ^g;
g = ref new Geolocator();
g->StatusChanged += ref new Windows::Foundation::TypedEventHandler<Windows::Devices::Geolocation::Geolocator ^, Windows::Devices::Geolocation::StatusChangedEventArgs ^>(this, &LocationIndicatorTest::MainPage::OnStatusChanged);
}
void LocationIndicatorTest::MainPage::OnStatusChanged(Windows::Devices::Geolocation::Geolocator ^sender, Windows::Devices::Geolocation::StatusChangedEventArgs ^args)
{
OutputDebugStringW(L"Status changed\n");
}