Tôi muốn nhận tọa độ vị trí chính xác hiện tại trong Android. Tôi có thể có được vị trí nếu điện thoại di động được kết nối với kết nối internet Wifi và trong trường hợp khác khi tôi đi một số nơi khác và không có kết nối internet thì nó không đưa ra tọa độ vị trí hiện tại. thay vào đó cho các tọa độ vị trí cuối cùng.Làm thế nào để có được vị trí chính xác hiện tại trong Android mà không cần kết nối internet?
Ví dụ:
Hiện nay tôi đang ở một thành phố và nhận được tọa độ hiện tại bằng cách vào kết nối wifi và di chuyển đến thành phố B thì tôi không thể lấy tọa độ hiện hành. Thay vì điều này, nó đưa ra các tọa độ vị trí cuối cùng.
Bất kỳ ai cũng có thể đề xuất tôi làm cách nào để có được vị trí hiện tại mà không cần kết nối internet.
public Location getLocation() {
try {
locationManager = (LocationManager) context.getSystemService(LOCATION_SERVICE);
// getting GPS status
isGPSEnabled = locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER);
// getting network status
isNetworkEnabled = locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER);
if (!isGPSEnabled && !isNetworkEnabled) {
// no network provider is enabled
} else {
this.canGetLocation = true;
// First get location from Network Provider
if (isNetworkEnabled) {
locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, MIN_TIME_BW_UPDATES, MIN_DISTANCE_CHANGE_FOR_UPDATES, this);
if (locationManager != null) {
location = locationManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
if (location != null) {
latitude = location.getLatitude();
longitude = location.getLongitude();
}
}
}
// if GPS Enabled get lat/long using GPS Services
if (isGPSEnabled) {
if (location == null) {
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, MIN_TIME_BW_UPDATES, MIN_DISTANCE_CHANGE_FOR_UPDATES, this);
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;
}
/**
* Stop using GPS listener
* Calling this function will stop using GPS in your app
* */
public void stopUsingGPS(){
if(locationManager != null){
locationManager.removeUpdates(GetLocations.this);
}
}
/**
* Function to get latitude
* */
public double getLatitude(){
if(location != null){
latitude = location.getLatitude();
}
return latitude;
}
/**
* Function to get longitude
* */
public double getLongitude(){
if(location != null){
longitude = location.getLongitude();
}
return longitude;
}
Thấy Android sử dụng AGPS, bạn không thể. –
@Raghav Sood Không có cách nào để giải quyết vấn đề của tôi ?? –
AGPS là viết tắt của Assisted GPS. Trong đó, module GPS được hỗ trợ bởi dữ liệu lấy từ internet. Không có internet = no AGPS –