Xin lỗi vì tiếng anh của tôi. Tôi đang cố gắng để có được một vị trí duy nhất từ GPS để đặt trên các biến toàn cầu vĩ độ, kinh độ. GPS bật nhưng hoạt động vẫn tiếp tục trước khi dữ liệu được truy xuất từ GPS.Cần hoạt động Android để chờ cho đến khi vị trí GPS thu được
Nhu cầu của tôi nói cách khác ... phương thức getCurrentLocation() phải kết thúc chỉ khi một vị trí đã được tìm thấy và các biến kinh độ và vĩ độ được lấp đầy, vì vậy tôi có thể sử dụng chúng theo phương pháp khác. Tôi biết ... người dùng phải chờ ... Tôi sẽ giải quyết vấn đề này hiển thị nội dung nào đó trên màn hình. Tôi nên làm gì? Cảm ơn bạn
Tôi nghĩ rằng tôi bỏ qua dừng nghe GPS ở một số nơi. Ở đâu tốt hơn?
Mã sau:
//Method to retrieve coordinates
public void getCurrentLocation() {
//Use GPS if possible
if(manager.isProviderEnabled(LocationManager.GPS_PROVIDER)) {
//assign Listener to GPS
manager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, listener);
Toast.makeText(this, LocationManager.GPS_PROVIDER, Toast.LENGTH_SHORT).show();
}
else if(manager.isProviderEnabled(LocationManager.NETWORK_PROVIDER)){//toherwise, use NETWORK
//assign Listener to NETWORK
manager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, listener);
Toast.makeText(this, LocationManager.NETWORK_PROVIDER, Toast.LENGTH_SHORT).show();
}
}
//Class to store the location recived in two variables
final class MyLocationListener implements LocationListener {
@Override
public void onLocationChanged(Location location) {
//coordinates storing
latitude = String.valueOf(location.getLatitude());
longitude = String.valueOf(location.getLongitude());
Toast.makeText(getApplicationContext(), latitude + longitude, Toast.LENGTH_LONG).show();
}
@Override
public void onProviderDisabled(String provider) {
// TODO Auto-generated method stub
}
@Override
public void onProviderEnabled(String provider) {
// TODO Auto-generated method stub
}
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
// TODO Auto-generated method stub
}
}