从 Location 对象获取卫星数量

新手上路,请多包涵

我正在使用 GPS 提供商和 LocationListener.onLocationChanged(Location location) 来接收位置修正。

文档 说, Location.getExtras() 包含下一个键/值对:

卫星 - 用于导出定位的卫星数量

但实际上我得到了一个空的额外对象——那里没有任何数据。

这是否意味着我得到的是 A-GPS 定位而不是 GPS?

原文由 GetUsername 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 914
1 个回答

要获得 GPS 引擎使用的卫星数量,您需要实施 android.location.GpsStatus.Listener 并实施其方法 onGpsStatusChanged()

例子…

 public void onGpsStatusChanged(int event) {
    int satellites = 0;
    int satellitesInFix = 0;
    int timetofix = locationManager.getGpsStatus(null).getTimeToFirstFix();
    Log.i(TAG, "Time to first fix = " + timetofix);
    for (GpsSatellite sat : locationManager.getGpsStatus(null).getSatellites()) {
        if(sat.usedInFix()) {
            satellitesInFix++;
        }
        satellites++;
    }
    Log.i(TAG, satellites + " Used In Last Fix ("+satellitesInFix+")");
}

原文由 user1055212 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题