抱歉我的英文不好。
我试图从GPS获取单个位置,并将其放在全局变量latitude,longitude中。
GPS已启动,但在从GPS检索数据之前,活动继续进行。
换句话说,方法getCurrentLocation()必须仅在找到位置并填充经度和纬度变量后才能完成,以便我可以在其他方法中使用它们。 我知道...用户必须等待...我会通过在屏幕上显示一些东西来解决这个问题。 我该怎么办? 谢谢
我认为我在某个地方跳过了停止监听GPS。哪里更好?
以下是代码:
换句话说,方法getCurrentLocation()必须仅在找到位置并填充经度和纬度变量后才能完成,以便我可以在其他方法中使用它们。 我知道...用户必须等待...我会通过在屏幕上显示一些东西来解决这个问题。 我该怎么办? 谢谢
我认为我在某个地方跳过了停止监听GPS。哪里更好?
以下是代码:
//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
}
}