onLocationChanged does not get called??

by hc » Sat, 07 Mar 2009 13:25:26 GMT

Sponsored Links

I have been struggling to get onLocationChanged called, but I'm not
sure it does not.
Here're my code

                criteria = new Criteria();

                String locationContext = Context.LOCATION_SERVICE;
                locationManager = (LocationManager)context.getSystemService

                String provider = locationManager.getBestProvider(criteria, 

                Location location = 
                locationManager.requestLocationUpdates(provider,0 ,

and ..... in the methods below, only onStatusChanged is being called,
and not onLocationChanged

     private final LocationListener locationListener = new
        public void onLocationChanged(Location location)
                Log.d("onLocationChanged","update now");

        public void onProviderDisabled(String provider)

        public void onProviderEnabled(String provider){
        public void onStatusChanged(String provider, int status, Bundle
                Log.d("Provider status changed", provider.toString());

here are permissions from my manifest

android:name="android.permission.ACCESS_WIFI_STATE" />
android:name="android.permission.ACCESS_COARSE_LOCATION" />
android:name="android.permission.ACCESS_FINE_LOCATION" />
android:name="android.permission.ACCESS_MOCK_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_GPS" />
    <uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.CAMERA" />

and I missing something ?
I have tried to add this line below requestLocationUpdate

Location location = locationManager.getLastKnownLocation(provider);
because I thought this might get me the last location just requested
from the requestLocationUpdate in the line before it, but it does not
help to retrieve the current location. It still retrieves the previous

onLocationChanged does not get called??

by hc » Sat, 07 Mar 2009 14:09:37 GMT

 an someone correct me if I'm wrong,

I checked the status in onStatusChanged. It shows
Makes sense since I'm indoor. But if I'm indoor, I want it to change
the provider to network.

So here's how I'm doing it.
1) When I try to location myself, I will use GPS as my provider.
2) if GPS signal is available, onLocationChanged will be called, and
that's done!
3) if onLocationChanged is not called, but onStatusChanged is called,
I check the status or my provider
4) if status of my GPS provider showed in onStatusChanged is
TEMPORARILY_UNAVAILABLE, then I'll change my provider to network
5) to change my provider from GPS to NETWORK, I add the following line
inside onStatusChanged

location.requestLocationUpdates(LocationManager.NETWORK_PROVIDER,0 ,

This seems to be working for me now.. finally.
But I'm wondering if this is the best way to do it. Feels a bit hacky

On Mar 7, 1:25pm, hc <> wrote:

Sponsored Links

Other Threads

1. Questions about data persistence

Good community, I am developing an application data load information,
such an agenda, and I get the question of how to persist data?
to join the application, as besides the data also
persist the settings that are joining as preferences between
other things and information that is generated will persist in the
someone can tell me roughly where it's the simplest


2. How to draw lines through onTouchEvent

Hi, i need to create app in which will user draw simple lines through
It had to be possible to save drawed image as bitmap.
At Graphics | Android Developers I read there are 2 ways to do it. But
as i wrote with SurfaceView it is impossible to save it as bitmap.
But I don't know how to do that with other View objects.
In my onTouchEvent I use Path object to store coordinates.

Please could you tell me how to do it?


3. On distribution of APP

4. Sony Ericsson Developer World on Android Developers

5. How to retrieve sms number

6. open sourcing an app

7. AudioTrack - Clicking Sounds