我希望位置信息可用于我的应用程序,如果可用,则从GPS获得,如果不是从其他方式(如Wifi)获得。
位置信息在GPS上工作正常,但是如果我转身 设置->个人->位置模式 = 省电 以执行非 GPS 场景,或者只是在无法访问 GPS 的情况下运行应用程序,应用程序不再提供位置信息。
在我的代码中,当 GPS 不可用时,此测试返回 false:
string Provider = LocationManager.GpsProvider;
if (m_LocMgr.IsProviderEnabled(Provider))
Log.Info("location available");
else
Log.Info("location NOT available");
我的清单.xml设置如下:
...
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-feature android:name="android.hardware.location.gps" />
...
请有任何想法。 当 GPS 不可用时,如何启用定位服务
答案只是启用网络提供商以及GPS提供商。
Provider = LocationManager.NetworkProvider;
if (m_LocMgr.IsProviderEnabled(Provider))
m_LocMgr.RequestLocationUpdates(Provider, 2000, 1, this);
我误读了权限文档。仅仅因为它说如果你使用精细(GPS)权限,你隐式地获得粗略(网络)权限,并不意味着你不需要在代码中同时启用它们。