Re: [android-developers] Re: Android app crashes when invoking getSystemService(LOCATION_SERVICE)

2011-05-05 Thread Mark Murphy
requestLocationUpdates() is asynchronous. It may take seconds or more
for the location to be determined, depending on the location provider
being used and the user's circumstances (e.g., is the user getting a
GPS signal?). You cannot simply call getLastKnownLocation()
immediately after calling requestLocationUpdates() and expect to get
any value.

Your whole premise (press a button, get a location) will only work if either:

1. You have location updates started early (e.g., onResume()), so by
the time the user presses the button, you probably have a fix, or

2. Pressing the button triggers the request for the location, and it
simply does not have an immediate effect, until the fix arrives

On Thu, May 5, 2011 at 3:23 PM, Prayag Pathak prayag.d.pat...@gmail.com wrote:
 Hi Mark,

 Thanks for the answer. But still its not working. I included the code
 segment that updates the code. But still not working.
 Following is the code :

        LocationManager lm = (LocationManager)
 getSystemService(Context.LOCATION_SERVICE);
        LocationListener ll = new mylocationlistener();
        lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0,
 ll);
        Location l =
 lm.getLastKnownLocation(lm.getProvider(LOCATION_SERVICE).getName());
        Log.w(LocationTracker, The value of Location returned by
 getLastKnownLocation() is :  + l.toString());
        Log.d(Current Location, l.getLatitude() + );
        Log.d(Current Location,l.getLongitude() + );
        Toast.makeText(this, l.getLatitude() +  +
 l.getLongitude(),Toast.LENGTH_LONG).show();

 Regards,

 Prayag

 On May 5, 2:20 pm, Prayag Pathak prayag.d.pat...@gmail.com wrote:
 Hi guys,

 I am trying to get the latitude and longitude of the current location.
 Let me clarify, I dont want to implement a listener that will create
 an event when the location will be changed. I am trying to create an
 app that will record the current location on a button click event.
 Following is my code :

 hdLocMgr = (LocationManager)
 getSystemService(Context.LOCATION_SERVICE);
 Log.w(LocationTracker, The Location Manager is :
 +hdLocMgr.toString());
 hdLocProvider = hdLocMgr.getBestProvider(hdCrit, true);
 location = hdLocMgr.getLastKnownLocation(hdLocProvider);
 dlat = location.getLatitude();
 dlon = location.getLongitude();
 Log.w(LocationTracker, The value of Latitude is :
 +dlat.toString());

 The code gives a RunTimeException (caused by NullPointerException as
 stated in it).

 Kindly help me out in that.

 Regards,

 Prayag

 --
 You received this message because you are subscribed to the Google
 Groups Android Developers group.
 To post to this group, send email to android-developers@googlegroups.com
 To unsubscribe from this group, send email to
 android-developers+unsubscr...@googlegroups.com
 For more options, visit this group at
 http://groups.google.com/group/android-developers?hl=en




-- 
Mark Murphy (a Commons Guy)
http://commonsware.com | http://github.com/commonsguy
http://commonsware.com/blog | http://twitter.com/commonsguy

_Android Programming Tutorials_ Version 3.4 Available!

-- 
You received this message because you are subscribed to the Google
Groups Android Developers group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en


RE: [android-developers] Re: Android app crashes when invoking getSystemService(LOCATION_SERVICE)

2011-05-05 Thread Tommy
You are getting the null pointer b/c getLastKnownLocation has nothing to
give... In this case you would need to call up the GPS listener... When it
gets the current fix it will pop off its subroutine.. Inside there you can
get the lat/lon do what you need to do with your button click then kill the
GPS listener..

-Original Message-
From: android-developers@googlegroups.com
[mailto:android-developers@googlegroups.com] On Behalf Of Mark Murphy
Sent: Thursday, May 05, 2011 3:29 PM
To: android-developers@googlegroups.com
Subject: Re: [android-developers] Re: Android app crashes when invoking
getSystemService(LOCATION_SERVICE)

requestLocationUpdates() is asynchronous. It may take seconds or more for
the location to be determined, depending on the location provider being used
and the user's circumstances (e.g., is the user getting a GPS signal?). You
cannot simply call getLastKnownLocation() immediately after calling
requestLocationUpdates() and expect to get any value.

Your whole premise (press a button, get a location) will only work if
either:

1. You have location updates started early (e.g., onResume()), so by the
time the user presses the button, you probably have a fix, or

2. Pressing the button triggers the request for the location, and it simply
does not have an immediate effect, until the fix arrives

On Thu, May 5, 2011 at 3:23 PM, Prayag Pathak prayag.d.pat...@gmail.com
wrote:
 Hi Mark,

 Thanks for the answer. But still its not working. I included the code 
 segment that updates the code. But still not working.
 Following is the code :

        LocationManager lm = (LocationManager) 
 getSystemService(Context.LOCATION_SERVICE);
        LocationListener ll = new mylocationlistener();
        lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, 
 ll);
        Location l =
 lm.getLastKnownLocation(lm.getProvider(LOCATION_SERVICE).getName());
        Log.w(LocationTracker, The value of Location returned by
 getLastKnownLocation() is :  + l.toString());
        Log.d(Current Location, l.getLatitude() + );
        Log.d(Current Location,l.getLongitude() + );
        Toast.makeText(this, l.getLatitude() +  + 
 l.getLongitude(),Toast.LENGTH_LONG).show();

 Regards,

 Prayag

 On May 5, 2:20 pm, Prayag Pathak prayag.d.pat...@gmail.com wrote:
 Hi guys,

 I am trying to get the latitude and longitude of the current location.
 Let me clarify, I dont want to implement a listener that will create 
 an event when the location will be changed. I am trying to create an 
 app that will record the current location on a button click event.
 Following is my code :

 hdLocMgr = (LocationManager)
 getSystemService(Context.LOCATION_SERVICE);
 Log.w(LocationTracker, The Location Manager is :
 +hdLocMgr.toString());
 hdLocProvider = hdLocMgr.getBestProvider(hdCrit, true); location = 
 hdLocMgr.getLastKnownLocation(hdLocProvider);
 dlat = location.getLatitude();
 dlon = location.getLongitude();
 Log.w(LocationTracker, The value of Latitude is :
 +dlat.toString());

 The code gives a RunTimeException (caused by NullPointerException as 
 stated in it).

 Kindly help me out in that.

 Regards,

 Prayag

 --
 You received this message because you are subscribed to the Google 
 Groups Android Developers group.
 To post to this group, send email to 
 android-developers@googlegroups.com
 To unsubscribe from this group, send email to
 android-developers+unsubscr...@googlegroups.com
 For more options, visit this group at
 http://groups.google.com/group/android-developers?hl=en




--
Mark Murphy (a Commons Guy)
http://commonsware.com | http://github.com/commonsguy
http://commonsware.com/blog | http://twitter.com/commonsguy

_Android Programming Tutorials_ Version 3.4 Available!

--
You received this message because you are subscribed to the Google Groups
Android Developers group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

-- 
You received this message because you are subscribed to the Google
Groups Android Developers group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en