Android:选择位置提供程序时显示相同的结果

时间:2012-07-21 14:01:58

标签: android gps location wifi cellular-network

我正在尝试使用GPSCellular NetworkWiFi获取当前位置。我正在给出选择最佳提供商的标准。但始终显示GPS是最佳提供商。我在外面时可以正常,GPS信号很强,但当我在室内或GPS信号很差时,情况并非如此。 标准是

  Criteria criteria  = new Criteria();
  criteria.setAccuracy(Criteria.ACCURACY_FINE);
  criteria.setAltitudeRequired(false);
  criteria.setBearingRequired(false);
  criteria.setCostAllowed(true);
  criteria.setPowerRequirement(Criteria.POWER_LOW);
  WifiManager wifi = (WifiManager) getSystemService(Context.WIFI_SERVICE);
  wifi.setWifiEnabled(true);
  String provider = lm.getBestProvider(criteria, true);

解决方案是什么?请帮忙。

1 个答案:

答案 0 :(得分:0)

将准确度标准设置为Criteria.ACCURACY_FINE将始终为您提供GPS_PROVIDER(如果您的设备可用)。另一方面,设置Criteria.ACCURACY_COARSE会为您提供NETWORK_PROVIDER(如果有)。最好先启动这两个并首先使用NETWORK_PROVIDER,因为可能需要几分钟才能从GPS获得修复。

有关减少延迟和电池消耗的最佳做法,请参阅android-protips-location

这些也可能有所帮助:

Location Strategies

Android Protips: Advanced Topics for Expert Android App Developers