gpt4 book ai didi

android - GPS isProviderEnabled 始终返回 false

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:06:34 28 4
gpt4 key购买 nike

我有这个代码

 lm = (LocationManager) this.getSystemService(Context.LOCATION_SERVICE);
boolean isGPS = lm.isProviderEnabled (LocationManager.GPS_PROVIDER);

它总是返回 false,即使启用了 GPS。 GPS 工作正常,但我使用此 bool 值显示弹出窗口“未启用 GPS”。在这种情况下,每次都会出现弹出窗口

  1. 我检查了类似的问题,但对我没有帮助。
  2. 是的,我的 list 中有权限
  3. 我在 onResume 方法中使用这段代码

感谢您的帮助。

最佳答案

如果你正在检查位置是否打开,无论它是否使用 GPS,那么你必须注意以下内容,就像我的情况一样,在设备位置设置中,定位方法 设置为 BatterySaving 模式,在该模式下,设备仅使用 WiFi 移动网络来估计位置:

enter image description here

因此,GPS 甚至不会用于更新位置,因此位置图标不会出现在状态栏中,而且位置提供者会显示为网络 而不是 GPS .

因此,要解决该问题,您必须检查提供程序是否包含 gps 或包含 network:

private boolean checkIfLocationOpened() {
String provider = Settings.Secure.getString(getActivity().getContentResolver(), Settings.Secure.LOCATION_PROVIDERS_ALLOWED);
if (provider.contains("gps") || provider.contains("network"))
return true;
}
// otherwise return false
return false;
}

如果您想使用 LocationManager 执行此操作:

private boolean checkIfLocationOpened() {
final LocationManager manager = (LocationManager) getActivity().getSystemService(Context.LOCATION_SERVICE);
if (manager.isProviderEnabled(LocationManager.GPS_PROVIDER) || manager.isProviderEnabled(LocationManager.NETWORK_PROVIDER)){
return true;
}
// otherwise return false
return false;
}

关于android - GPS isProviderEnabled 始终返回 false,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21600049/

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