【问题标题】:Android getBestProvider never returns GPSAndroid getBestProvider 从不返回 GPS
【发布时间】:2013-07-05 01:50:03
【问题描述】:

我一直在开发基于位置的应用程序。

我正在测试Samsung Galaxy S4Samsung Tab 7

当调用getBestProvider() 时,如果启用它通常返回 GPS,否则返回网络,我的 Galaxy S4 就是这种情况。

但是,当我尝试在选项卡上运行应用程序时,getBestProvider() 从未返回 GPS 提供程序,即使它已启用。

S4 有android 4.2.2 而tab 有4.1.1,这可能是问题吗,如果不是,是什么?

【问题讨论】:

  • 三星手机有一个固有的问题,他们没有像预期的那样正确地移植谷歌。不幸的是,他们没有像我们这样的开发人员记录错误的错误区域。谷歌不会让我们记录三星的错误,因为三星不像 HTC 那样为他们的手机定制安卓系统。
  • 做这个实验,在三星、HTC 以外的任何设备上运行你的代码。它会像魅力一样发挥作用。

标签: android location location-provider


【解决方案1】:

无论您使用 GPS、NETWORK 还是最好的提供商,都遵循从本地(在设备上)缓存中获取位置的相同原则。

如果您想立即获得 GPS,您需要破解系统以更新缓存然后读取它。在三星手机上,这个黑客是必需的。在 HTC 和其他型号上,您不需要此 hack。 我(幸运的是)找到了通过 hack 触发缓存更新的方法。

只需在 getLastKnownLocation 之前调用以下代码即可。

<YourActivity>.getLocationManager().requestLocationUpdates(
        LocationManager.NETWORK_PROVIDER, 0, 0, new LocationListener() {
        @Override
        public void onStatusChanged(String provider, int status, Bundle extras) {
        }
        @Override
        public void onProviderEnabled(String provider) {
        }
            @Override
        public void onProviderDisabled(String provider) {
        }
        @Override
        public void onLocationChanged(final Location location) {
    }
});

使用 LocationClient。用于位置更新的新 API(刚刚推出)。这些 API 不需要你找到最好的提供者,而是在下面做所有这些事情。

【讨论】:

  • 谢谢,但我有一个问题(可能是个愚蠢的问题),但是 HomeScreen 到底是什么?另外,即使我有自己的 requestLocationUpdates 实现,我是否应该编写此代码?
  • 它说 getLocationManager() 是未定义的!!
  • 我在 Google 上搜索了“getLocationManger”,得到了androidhive.info/2012/07/android-gps-location-manager-tutorialdeveloper.android.com/reference/android/location/… 等等。我建议你阅读一些网站和谷歌的帮助。它很容易通过。
  • 非常感谢,感谢您的帮助 :) 关于整个三星 GPS 错误,可以不处理就发布应用程序吗??
  • 不客气。请以我也可以受到鼓励的方式传递感谢。不赞成或不接受令人沮丧。\
【解决方案2】:

getBestProvider() 不会总是返回 GPS。因为 GPS 并不总是最好的提供者。标签是否连接到wifi? wifi的位置非常准确,如果您连接到wifi,可能会返回。

此外,您应该切换到新的位置服务,它是 Google Play 服务的一部分。使用保险丝位置提供程序将消除管理提供程序的所有麻烦,并为您提供最佳结果。

【讨论】:

  • 问题是,即使我根据 GPS 提供商强制获取位置,我也没有收到信号!!!我不知道新的定位服务是什么,请你提供一些链接或教程,thnQ
  • @Siddharth 非常感谢您,但是当使用三星设备的用户下载我的应用程序时,这不会被视为问题。另外,为什么我的三星 S4 没有发生这种情况
  • 你应该在三星论坛上发布这个问题。我不会有答案的。
  • 这是一个指向 Google Play 服务位置 API 的链接 developer.android.com/google/play-services/location.html 以及今年来自 google io 的一些视频,它们对此进行了一些解释:youtube.com/…youtube.com/…
猜你喜欢
  • 2012-05-28
  • 1970-01-01
  • 2014-08-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-10-23
相关资源
最近更新 更多