我创建了一个位置跟踪器应用程序,它将移动设备的位置发送到数据库。
当我使用旧的三星设备(没有SIM卡)测试位置时,应用程序可以运行。他发送位置管理器并将其发送到数据库。
但是当我使用我的新设备测试应用程序时。一个三星银河。该应用程序不起作用。 无法计算位置,因为他说GPS已启用'是虚假的' NetworkedEnabled'也是假的..
这是我确定位置的代码。也许有人对这个奇怪的事情有了答案,谢谢
public Location getLocation() {
try {
ConfigurationManager();
if (isGPSEnabled == false && isNetworkEnabled == false) {
// no network provider is enabled
return null;
} else {
this.canGetLocation = true;
if (isNetworkEnabled) {
location = null;
Log.d("Network", "Network - GET LOCATION ");
if (locationManager != null) {
location = locationManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
if (location != null) {
latitude = location.getLatitude();
longitude = location.getLongitude();
}
}
}
if (isGPSEnabled) {
location = null;
if (location == null) {
Log.d("GPS Enabled", "GPS Enabled - GET LOCATION");
if (locationManager != null) {
location = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
if (location != null) {
latitude = location.getLatitude();
longitude = location.getLongitude();
}
}
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
return location;
}
答案 0 :(得分:0)
您应该使用FusedLocationProviderApi根据Android文档获取当前位置。在此处阅读更多内容:Getting the Last Known Location