Frederik,Did you ever find a way around this? I am experiencing the same problem.
Wayne On Mon, Sep 28, 2009 at 6:53 AM, Frederik Pfisterer <[email protected]>wrote: > > Seems i'm talking with myself :-) > Seems like it's a bug though, filed: > http://code.google.com/p/android/issues/detail?id=4036 > > On 28 Sep., 12:38, Frederik Pfisterer <[email protected]> wrote: > > Here is the code using a mock location provider. Basically my question > > is, why is the mock provider not returning the previously set mock > > location correctly. See last comment in code: > > > > private GeoPoint getUserLocation() { > > > > LocationManager locationManager = > (LocationManager)getSystemService > > (Context.LOCATION_SERVICE); > > > > if (!PRODUCTION_ENVIRONMENT){ > > > > //Get some mock location data in the game > > > locationManager.addTestProvider(MOCK_PROVIDER_NAME, true, false, > > true, false, false, false, false, Criteria.POWER_LOW, > > Criteria.ACCURACY_COARSE); > > Location location = new > Location(MOCK_PROVIDER_NAME); > > location.setLatitude(32.64480); > > location.setLongitude(-16.90967); > > location.setTime(new Date().getTime()); > > > locationManager.setTestProviderLocation(MOCK_PROVIDER_NAME, > > location); > > > locationManager.setTestProviderEnabled(MOCK_PROVIDER_NAME, true); > > > > } > > > > //i just want an approximate location so no high > expectations here > > Criteria criteria = new Criteria(); > > criteria.setAccuracy(Criteria.ACCURACY_COARSE); > > criteria.setPowerRequirement(Criteria.NO_REQUIREMENT); > > > > //this correctly retrieves the mock location provider > > String provider = > locationManager.getBestProvider(criteria, true); > > if (provider != null) { > > //this is where the mock provider returns null ... why? > > Location location = > locationManager.getLastKnownLocation(provider); > > return new > GeoPoint((int)(location.getLatitude()*E6_LATLONG), (int) > > (location.getLongitude()*E6_LATLONG)); > > }else return null; > > } > > > > Might this be a bug in the API? > > > > On 27 Sep., 16:43, Frederik Pfisterer <[email protected]> wrote: > > > > > I am working on an application that requires an approximate position > > > of the user, so basically i am fine with any relatively recent > > > location data i can get. However I can't seem to get things right > > > using mock location data and would therefore appreciate your help. > > > The method i'm having tries to set mock location data for the gps > > > provider and tries to later retrievie it BUT: > > > locationManager.setTestProviderEnabled("gps", true); seems to fail > > > because i do not get any active location provider from the location > > > manager. > > > When I tried using a mock location provider with addTestProvider and > > > give it my mock location, the LocationManager returns me this mock > > > provider with getProviders(true) but then getLastKnownLocation returns > > > null instead of the provided mock location. > > > > > Here is my code (see comments as well): > > > > > private GeoPoint getUserLocation() { > > > > > LocationManager locationManager = > (LocationManager)getSystemService > > > (Context.LOCATION_SERVICE); > > > > > if (!PRODUCTION_ENVIRONMENT){ > > > //Get some mock location data in the game > > > Location location = new Location("gps"); > > > location.setLatitude(32.64480); > > > location.setLongitude(-16.90967); > > > location.setTime(new Date().getTime()); > > > locationManager.setTestProviderLocation("gps", > location); > > > locationManager.setTestProviderEnabled("gps", > true); > > > > > //retrieve the list of active providers for > debugging purposes, the > > > activated mock gps provider is not returned here > > > List<String> locationProviders = > locationManager.getProviders > > > (true); > > > > locationManager.setTestProviderEnabled("network", true); > > > > > } > > > > > //i just want an approximate location so no high > expectations here > > > Criteria criteria = new Criteria(); > > > criteria.setAccuracy(Criteria.ACCURACY_COARSE); > > > criteria.setPowerRequirement(Criteria.NO_REQUIREMENT); > > > > > //this correctly retrieves a mock location provider but > not the mock > > > enabled gps > > > String provider = > locationManager.getBestProvider(criteria,true); > > > if (provider != null) { > > > //this is where the mock provider returns null > > > Location location = > locationManager.getLastKnownLocation(provider); > > > return new > GeoPoint((int)(location.getLatitude()*E6_LATLONG), (int) > > > (location.getLongitude()*E6_LATLONG)); > > > }else return null; > > > } > > > > > } > > > > > Thanks for any hints or requests for clarification! > > > -- Writing code is one of few things that teaches me I don't know everything. http://www.fuligin.com --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/android-developers?hl=en -~----------~----~----~----~------~----~------~--~---

