gpt4 book ai didi

Android 位置 API : Get Provider Status

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

Android 中获取位置提供者状态的最佳方式是什么?为位置更新注册 LocationListener 时,只要状态发生更改,就会调用 onStatusChanged(String provider, int status, Bundle extras) 回调。但是,我没有找到在不注册位置更新的情况下获取当前状态(AVAILABLEOUT_OF_SERVICETEMPORARILY_UNAVAILABLE)的方法。 isProviderEnabled 方法仅指示提供程序是否通常打开(在设备的设置中),因此可能会返回 true 尽管提供程序已停止服务...是还有另一种方法吗?

另一个问题:是否可以在不注册位置更新的情况下监听状态更新?我想听取特定供应商的位置信息,但同时检查其他供应商是否可用。我目前的解决方法是将最小时间和距离设置为非常高的值,但我想知道是否有更好的解决方案...

感谢您的任何提示!

顺便说一句:如果可能,解决方案应该适用于 Android 1.1

最佳答案

如果您对位置不感兴趣,为什么需要 GPS 状态?

但是,您至少可以像这样获取 GPS 状态的某些方面:

final GpsStatus gs = this.locationManager.getGpsStatus(null);
int i = 0;
final Iterator<GpsSatellite> it = gs.getSatellites().iterator();
while( it.hasNext() ) {
it.next();
i += 1;
}
this.gpsSatsAvailable = i;

参见 http://developer.android.com/reference/android/location/GpsStatus.html您将需要至少 4 颗卫星进行精确的 2D 定位,5 颗卫星进行 3D 定位(包括高度)。根据文档,您应该从 onStatusChanged() 访问状态以获得一致的信息。它也可以从这个方法之外工作。链接文档解释了可能发生的问题。当然,您仍然需要监听位置更新,否则 GPS 状态不会更新。

关于Android 位置 API : Get Provider Status,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5261929/

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