Получение первой GPS-координаты (перед перемещением) в Android - PullRequest
0 голосов
/ 28 января 2012

Я создаю приложение, для которого требуется местоположение GPS (или какое-то местоположение).

Однако после настройки прослушивателя и всего, я никогда не получаю первое местоположение GPS, я имею в виду местоположение при открытиипрограмма (и просто бездействующая).

Я могу получить последнее известное местоположение, но так как GPS выключен, когда программа не запущена (или так кажется), тогда я не знаю, если этоправильное местоположение

Когда я открываю карты Google, требуется всего несколько секунд, чтобы перейти к фактическому местоположению, он выдает сообщение об "ожидании местоположения", поэтому я не знаю, что я делаюнеправильно (или если это нормально) .. Это мой код GPS:

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

    LocationManager loc = null;
    LocationListener listener;


    loc = (LocationManager) this.getSystemService(Context.LOCATION_SERVICE) ;

    Context context = getApplicationContext();
    Location last = loc.getLastKnownLocation(LocationManager.GPS_PROVIDER) ;

    Toast toast = Toast.makeText(context, "GPS:" + last  , Toast.LENGTH_LONG );
    toast.setGravity(Gravity.CENTER_VERTICAL|Gravity.CENTER, 0, 0);
    toast.show();

    listener = new LocationListener() {
        @Override
        public void onStatusChanged(String provider, int status, Bundle extras) {
            // TODO Auto-generated method stub
            Context context = getApplicationContext();
            Toast toast = Toast.makeText(context, "Status changed", Toast.LENGTH_LONG );
            toast.setGravity(Gravity.CENTER_VERTICAL|Gravity.CENTER, 0, 0);
            toast.show();


     }

        @Override
        public void onProviderEnabled(String provider) {
            // TODO Auto-generated method stub
            Context context = getApplicationContext();
            Toast toast = Toast.makeText(context, "GPS enabled", Toast.LENGTH_LONG );
            toast.setGravity(Gravity.CENTER_VERTICAL|Gravity.CENTER, 0, 0);
            toast.show();
        }

        @Override
        public void onProviderDisabled(String provider) {
            // TODO Auto-generated method stub
            Context context = getApplicationContext();
            Toast toast = Toast.makeText(context, "GPS disabled", Toast.LENGTH_LONG );
            toast.setGravity(Gravity.CENTER_VERTICAL|Gravity.CENTER, 0, 0);
            toast.show();
        }

        @Override
        public void onLocationChanged(Location location) {
            // TODO Auto-generated method stub
            if (location == null) return ; 
            Context context = getApplicationContext();
            Toast toast = Toast.makeText(context, "coords:" + location, Toast.LENGTH_LONG );
            toast.setGravity(Gravity.CENTER_VERTICAL|Gravity.CENTER, 0, 0);
            toast.show();
        }

    };

    Criteria criteria = new Criteria();
    criteria.setAccuracy(Criteria.ACCURACY_FINE);
    criteria.setPowerRequirement(Criteria.NO_REQUIREMENT);
    String bestProvider = loc.getBestProvider(criteria, true); 

    loc.requestLocationUpdates(bestProvider, 1000, 0, listener) ;

Так что мой вопрос, есть ли какой-то способ вызвать что-то и получить текущие координаты GPS, или делает последнее известное местоположениесодержит точные координаты, если GPS включен (но не работает - я имею в виду мигание в верхней части)?А как насчет того, когда я использую getbestprovider, тогда я не знаю, был ли последний использованный GPS или WIFI или что-то в этом роде.

1 Ответ

1 голос
/ 28 января 2012

Пожалуйста, посмотрите на: Расположение в Android

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...