我正在尝试使用GPS
,Cellular Network
或WiFi
获取当前位置。我正在给出选择最佳提供商的标准。但始终显示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);
解决方案是什么?请帮忙。
答案 0 :(得分:0)
将准确度标准设置为Criteria.ACCURACY_FINE
将始终为您提供GPS_PROVIDER
(如果您的设备可用)。另一方面,设置Criteria.ACCURACY_COARSE
会为您提供NETWORK_PROVIDER
(如果有)。最好先启动这两个并首先使用NETWORK_PROVIDER
,因为可能需要几分钟才能从GPS
获得修复。
有关减少延迟和电池消耗的最佳做法,请参阅android-protips-location。
这些也可能有所帮助:
Android Protips: Advanced Topics for Expert Android App Developers