Макет данных о местоположении в Android

#java #android

#java #Android

Вопрос:

Я просто хочу получать данные о местоположении в моей активности, которые я отправляю из элемента управления эмулятором. Ниже приведен код, который я использую в своей основной деятельности:

 public class LocationAlert extends Activity {

TextView txtMessage;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    txtMessage = (TextView)findViewById(R.id.txtMsg);

    LocationManager lm = (LocationManager)getSystemService(LOCATION_SERVICE);

    lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 2000, 0, mLocListener);


    if (lm.getLastKnownLocation(LocationManager.GPS_PROVIDER) != null){
        txtMessage.setText(String.valueOf(lm.getLastKnownLocation(LocationManager.GPS_PROVIDER).getLatitude()));
    }

}

LocationListener mLocListener = new LocationListener() {

    @Override
    public void onStatusChanged(String provider, int status, Bundle extras) {
        // TODO Auto-generated method stub

    }

    @Override
    public void onProviderEnabled(String provider) {
        // TODO Auto-generated method stub

    }

    @Override
    public void onProviderDisabled(String provider) {
        // TODO Auto-generated method stub

    }

    @Override
    public void onLocationChanged(Location location) {

        if (location != null){
            txtMessage.setText("Latitude: "   String.valueOf(location.getLatitude())   ", Longitude: "   String.valueOf(location.getLongitude()));
        }

    }
};
  

}

но я не получаю никаких данных, и все процессы, запущенные в эмуляторе, закрываются один за другим, что я вижу на вкладке Устройства. Что не так с приведенным выше кодом?

Ответ №1:

Возможно, вам не хватает некоторых разрешений Android в файле манифеста. добавьте это в свой манифест

 <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"></uses-permission>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission>
<uses-permission android:name="android.permission.INTERNET"></uses-permission>