gpt4 book ai didi

Android LocationManager.isProviderEnabled() 总是返回 false

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:15:27 25 4
gpt4 key购买 nike

我有一个应用程序使用网络提供商来定位。每次应用程序启动时,它都会使用 LocationManager 中的 isProviderEnabled() 方法检查网络提供商是否已启用。

如果它返回 false,我会向用户发出警报以启用网络提供商,然后使用该应用程序。这种逻辑运行得非常好,除了一些非谷歌认证设备的异常(exception)情况(不用担心,因为它们通常也没有 Maps API)。最近,对于 ICS 上的某些设备以及现在在 JellyBean 模拟器上的一些设备,即使启用了 isProviderEnabled(),我也会得到一致的“false”。

我已经开始使用从Settings.Secure.getString(getContentResolver(), Settings.Secure.LOCATION_PROVIDERS_ALLOWED)) 查看是否包含“网络”。这是一个 hack,但它现在正在工作。我希望能够使用 isProviderEnabled() 方法。

有没有人以前见过这个问题?

最佳答案

@naqi @gkris我还注意到 isProviderEnabled(LocationManager.GPS_PROVIDER) 返回 false 的问题。
对此的解决方案还要求用户将 Location Method 设置为 High Accuracy 而不是 Battery SavingDevice Only

此设置在位置设置下可用,并且在不同的设备上具有不同的名称。在我测试过的某些设备上,此设置的名称为 ModeLocation ModeLocation Method 等值也可以是 高精度GPSGPS、Wifi 和移动网络

开发人员必须就此对用户进行培训。

关于Android LocationManager.isProviderEnabled() 总是返回 false,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11437327/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com