Менеджер местоположения Android?

Все, что я пытаюсь сделать, это вернуть значения долготы/широты из последнего известного местоположения, и если это значение равно нулю, то получить новые координаты.

Я очень новичок в этом, вот что у меня есть:

import android.app.Activity;
import android.content.Context;
import android.location.Location;
import android.location.LocationManager;
import android.os.Bundle;
import android.widget.TextView;

public class GPS extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);


        LocationManager lm = (LocationManager)getSystemService(Context.LOCATION_SERVICE); 
        Location location = lm.getLastKnownLocation(LocationManager.GPS_PROVIDER);
        double longitude = location.getLongitude();
        double latitude = location.getLatitude();


        TextView output;

        output = (TextView) findViewById(R.id.output);


        output.append("\n\nLocations (starting with last known):");
        Location location = locationManager.getLastKnownLocation(bestProvider);
        printLocation(location);



    }
}

person Nick    schedule 02.06.2011    source источник
comment
Какие ошибки вы получаете или что выдает ваш EditText?   -  person Lukas Knuth    schedule 02.06.2011
comment
он просто принудительно закрывается, я даже не могу его запустить.   -  person Nick    schedule 02.06.2011
comment
В этом случае вы должны опубликовать вывод LogCat.   -  person Lukas Knuth    schedule 02.06.2011


Ответы (2)


И не забудьте добавить разрешения ACCESS_COARSE_LOCATION или ACCESS_FINE_LOCATION в ваш AndoidManifest.xml.

person evilone    schedule 02.06.2011
comment
У меня было Fine_location, но я добавил грубую_локацию - все равно принудительно закрывается. Спасибо за предложение, я уверен, что это была одна из многих ошибок. - person Nick; 02.06.2011
comment
если вы запрашиваете ACCESS_FINE_LOCATION (и предоставлено), вам не нужно ACCESS_COARSE_LOCATION, оно предоставляется автоматически. - person slinden77; 22.08.2012

Проверьте местоположение, и если они равны нулю, вам нужно использовать функцию locationManager.requestLocationUpdates(...).

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

Я уже ответил здесь

person includeMe    schedule 02.06.2011