Android, как узнать, если у меня есть доступное местоположение - PullRequest
0 голосов
/ 26 марта 2012

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

мой слушатель:

locMgr.addGpsStatusListener(new GpsStatus.Listener() 
    { 
        public void onGpsStatusChanged(int event) 
        { 
                switch(event) 
                { 
                        case GpsStatus.GPS_EVENT_STARTED: 
                            locationStatus.setText("Location is On");   
                                break ; 
                        case GpsStatus.GPS_EVENT_STOPPED: 
                             locationStatus.setText("Location is Off");  
                                break ; 
                } 
        }
    }) ; 

Ответы [ 2 ]

0 голосов
/ 21 сентября 2016

Если вы имеете в виду, что хотели бы узнать доступность конкретного поставщика, вы можете использовать:

LocationManager locationManager = (LocationManager) context.getSystemService(Context.LOCATION_SERVICE);
locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER); //or other provider.

И отслеживать его доступность с помощью LocationListener обратных вызовов:

    @Override
    public void onProviderEnabled(String provider) {

    }

    @Override
    public void onProviderDisabled(String provider) {

    }

Конечно, в манифесте вам потребуются соответствующие разрешения на местоположение.

0 голосов
/ 26 марта 2012

Напишите класс

public class MyLocationListener implements LocationListener {
        /**
         * This function handles location change event if location is found
         */
        public void onLocationChanged(Location loc) {...

Теперь, когда вы получите какое-либо местоположение GPS, оно попадет внутрь onLocationChanged() метода.

Не забудьте добавить следующие разрешенияв вашем манифесте -

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

Также убедитесь, что вы добавляете как GPS слушателей местоположения, так и сеть, например -

locationManager.requestLocationUpdates(
                LocationManager.NETWORK_PROVIDER, 0, 0, locListener);
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0,
                0, locListener);
...