Search in sources :

Example 6 with LocationListener

use of android.location.LocationListener in project platform_frameworks_base by android.

the class LocationBasedCountryDetector method detectCountry.

/**
     * Start detecting the country.
     * <p>
     * Queries the location from all location providers, then starts a thread to query the
     * country from GeoCoder.
     */
@Override
public synchronized Country detectCountry() {
    if (mLocationListeners != null) {
        throw new IllegalStateException();
    }
    // Request the location from all enabled providers.
    List<String> enabledProviders = getEnabledProviders();
    int totalProviders = enabledProviders.size();
    if (totalProviders > 0) {
        mLocationListeners = new ArrayList<LocationListener>(totalProviders);
        for (int i = 0; i < totalProviders; i++) {
            String provider = enabledProviders.get(i);
            if (isAcceptableProvider(provider)) {
                LocationListener listener = new LocationListener() {

                    @Override
                    public void onLocationChanged(Location location) {
                        if (location != null) {
                            LocationBasedCountryDetector.this.stop();
                            queryCountryCode(location);
                        }
                    }

                    @Override
                    public void onProviderDisabled(String provider) {
                    }

                    @Override
                    public void onProviderEnabled(String provider) {
                    }

                    @Override
                    public void onStatusChanged(String provider, int status, Bundle extras) {
                    }
                };
                mLocationListeners.add(listener);
                registerListener(provider, listener);
            }
        }
        mTimer = new Timer();
        mTimer.schedule(new TimerTask() {

            @Override
            public void run() {
                mTimer = null;
                LocationBasedCountryDetector.this.stop();
                // Looks like no provider could provide the location, let's try the last
                // known location.
                queryCountryCode(getLastKnownLocation());
            }
        }, getQueryLocationTimeout());
    } else {
        // There is no provider enabled.
        queryCountryCode(getLastKnownLocation());
    }
    return mDetectedCountry;
}
Also used : Timer(java.util.Timer) TimerTask(java.util.TimerTask) Bundle(android.os.Bundle) LocationListener(android.location.LocationListener) Location(android.location.Location)

Example 7 with LocationListener

use of android.location.LocationListener in project platform_frameworks_base by android.

the class LocationBasedCountryDetector method stop.

/**
     * Stop the current query without notifying the listener.
     */
@Override
public synchronized void stop() {
    if (mLocationListeners != null) {
        for (LocationListener listener : mLocationListeners) {
            unregisterListener(listener);
        }
        mLocationListeners = null;
    }
    if (mTimer != null) {
        mTimer.cancel();
        mTimer = null;
    }
}
Also used : LocationListener(android.location.LocationListener)

Example 8 with LocationListener

use of android.location.LocationListener in project Android-FusedLocation by levelup.

the class FusedCriteriaTest method testDefaultCriteria.

public void testDefaultCriteria() throws InterruptedException {
    final CountDownLatch signal = new CountDownLatch(1);
    Criteria criteria = new Criteria();
    locationManager.requestLocationUpdates(MIN_TIME_IN_MS, MIN_DISTANCE_IN_M, criteria, new LocationListener() {

        @Override
        public void onStatusChanged(String provider, int status, Bundle extras) {
        }

        @Override
        public void onProviderEnabled(String provider) {
        }

        @Override
        public void onProviderDisabled(String provider) {
        }

        @Override
        public void onLocationChanged(Location location) {
            assertNotNull(location);
            signal.countDown();
        }
    }, null);
    signal.await(MIN_TIME_IN_MS, TimeUnit.MILLISECONDS);
}
Also used : Bundle(android.os.Bundle) LocationListener(android.location.LocationListener) Criteria(android.location.Criteria) CountDownLatch(java.util.concurrent.CountDownLatch) Location(android.location.Location)

Example 9 with LocationListener

use of android.location.LocationListener in project android_frameworks_base by DirtyUnicorns.

the class ExternalSharedPermsDiffKeyTest method testRunBluetoothAndFineLocation.

/** The use of location manager and bluetooth below are simply to simulate an app that
     *  tries to use them, so we can verify whether permissions are granted and accessible.
     * */
public void testRunBluetoothAndFineLocation() {
    LocationManager locationManager = (LocationManager) getInstrumentation().getContext().getSystemService(Context.LOCATION_SERVICE);
    locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, new LocationListener() {

        public void onLocationChanged(Location location) {
        }

        public void onProviderDisabled(String provider) {
        }

        public void onProviderEnabled(String provider) {
        }

        public void onStatusChanged(String provider, int status, Bundle extras) {
        }
    });
    BluetoothAdapter mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
    if ((mBluetoothAdapter != null) && (!mBluetoothAdapter.isEnabled())) {
        mBluetoothAdapter.getName();
    }
    fail("this app was signed by a different cert and should crash/fail to run by now");
}
Also used : LocationManager(android.location.LocationManager) Bundle(android.os.Bundle) LocationListener(android.location.LocationListener) BluetoothAdapter(android.bluetooth.BluetoothAdapter) Location(android.location.Location)

Example 10 with LocationListener

use of android.location.LocationListener in project android_frameworks_base by DirtyUnicorns.

the class LocationBasedCountryDetector method stop.

/**
     * Stop the current query without notifying the listener.
     */
@Override
public synchronized void stop() {
    if (mLocationListeners != null) {
        for (LocationListener listener : mLocationListeners) {
            unregisterListener(listener);
        }
        mLocationListeners = null;
    }
    if (mTimer != null) {
        mTimer.cancel();
        mTimer = null;
    }
}
Also used : LocationListener(android.location.LocationListener)

Aggregations

LocationListener (android.location.LocationListener)41 Location (android.location.Location)34 Bundle (android.os.Bundle)34 LocationManager (android.location.LocationManager)22 BluetoothAdapter (android.bluetooth.BluetoothAdapter)12 Timer (java.util.Timer)6 TimerTask (java.util.TimerTask)6 Criteria (android.location.Criteria)5 IOException (java.io.IOException)3 Intent (android.content.Intent)2 Point (com.esri.core.geometry.Point)2 FacebookException (com.facebook.FacebookException)2 ArrayList (java.util.ArrayList)2 SuppressLint (android.annotation.SuppressLint)1 PendingIntent (android.app.PendingIntent)1 CanceledException (android.app.PendingIntent.CanceledException)1 PackageManager (android.content.pm.PackageManager)1 ResolveInfo (android.content.pm.ResolveInfo)1 GpsSatellite (android.location.GpsSatellite)1 GpsStatus (android.location.GpsStatus)1