我有一个小应用程序,我使用谷歌地图API为Android。我有一种方法来获得位置管理器的最佳提供者:
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”作为最佳提供商。为什么要回来?有没有最简单的方法来改进代码以获得任何设备的最佳提供商?
提前致谢, 问候。