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;
}
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;
}
}
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);
}
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");
}
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;
}
}
Aggregations