【问题标题】:Android Location Not Available when there is no GPS没有 GPS 时,Android 位置不可用
【发布时间】:2017-06-14 08:41:38
【问题描述】:

我希望我的应用可以使用位置信息,如果有的话,可以从 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");

我的 manifest.xml 设置如下:

...
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-feature android:name="android.hardware.location.gps" />
...

请有任何想法。 GPS 不可用时如何启用定位服务

【问题讨论】:

  • LocationManager的网络提供商呢?
  • 谢谢布莱卡拉。这就是问题所在。

标签: android gps location android-manifest locationmanager


【解决方案1】:

答案很简单,除了启用 GPS 之外,还启用了网络提供商。

        Provider = LocationManager.NetworkProvider;
        if (m_LocMgr.IsProviderEnabled(Provider))
            m_LocMgr.RequestLocationUpdates(Provider, 2000, 1, this);

我误读了权限文档。仅仅因为它说如果您使用精细(GPS)权限,您会隐式获得粗略(网络)权限,并不意味着您不需要在代码中同时启用它们。

【讨论】:

    猜你喜欢
    • 2013-03-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-11
    • 1970-01-01
    • 2013-01-08
    相关资源
    最近更新 更多