我有一个小应用程序,我在其中使用适用于 Android 的 google maps api。我有一种方法可以为位置管理器找到最佳提供者:
public String getBestProvider(){
String result = LocationManager.NETWORK_PROVIDER;;
try {
String value = LocationManager.NETWORK_PROVIDER;
List<String> proveedores = locationManager.getAllProviders();
//Try to set the position with the gps
if (locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER)) {
value = LocationManager.GPS_PROVIDER;
}
else{
Criteria criteria = new Criteria();
value = locationManager.getBestProvider(criteria, true);
}
Toast.makeText(this, value, 1000);
result = value;
} catch (Exception e) {
e.printStackTrace();
}
return result;
}
我这样做是为了强制我的手机在启用时将“GPS_PROVIDER”作为最佳提供商(我的手机是三星 Galaxy S2,搭载 Android 4.1.2)。这是因为使用命令“locationManager.getBestProvider(criteria, true);” 当 GPS 处于活动状态时,它没有将其返回为最佳提供者。
好吧,通过这种方式在我的手机上工作正常。但是我有一台平板电脑(Xtreme X81,Android 4.2.2,没有 gps),我安装了我的应用程序。我已经在平板电脑上测试过,它不起作用。我无法调试应用程序,因为我没有平板电脑的驱动程序,但是使用 Toast 插入消息我发现这种方法将“GPS_PROVIDER”作为最佳提供者返回给我。为什么要退货?有没有最简单的方法来改进代码以获得任何设备的最佳提供商?
预先感谢,问候。