You must send Activity's context to thread and do:

context.getSystemService(...);

So works!.


El miércoles, 21 de octubre de 2009 06:27:30 UTC-5, cedcox escribió:
>
> Hello everybody, 
>
> I would like re-read a KML file with the GPS. As the inside-GPS 
> eclipse don't manage altitude (cf my last post) i decided to create a 
> thread that do it. 
>
> So, i have a service that Listen my provider GPS "simulation" and i 
> would like create the thread that set coordonate information for 
> "simulation" provider. 
>
> But in my thread with this line : 
> monLocationManager = (LocationManager) getSystemService 
> (Context.LOCATION_SERVICE); 
>
> Eclipse says that getSystemService is undefined 
>
> So, i found a solution that works but i think it's not very very 
> beautiful and i think i haven't to do that : 
> I declare a locationManager in my thread's class and in my service, i 
> affect the locationManager of my service to the location manager of my 
> thread. 
>
>
> here is my code (simplified with only code interesting) of the 
> service: 
>
> public class ServiceGPS extends Service { 
>
>         // variables declaration 
>         public LocationManager monLocationManager = null; 
>         simuThread monSimuThread; 
>         [ others variables.... ] 
>
>         public class MonBinder extends Binder 
>                 {ServiceGPS getService(){return ServiceGPS.this;}} 
>
>         @Override 
>         public IBinder onBind(Intent arg0) {return new MonBinder();} 
>
>         @Override 
>         public void onStart(Intent MonIntent, int startId) 
>                 { 
>                 monLocationManager = (LocationManager) getSystemService 
> (Context.LOCATION_SERVICE); 
>
>                 [ .... some code ... ] 
>
>                 monSimuThread = new simuThread(); 
>                 monSimuThread.monLocationManager = monLocationManager; // 
> <== 
> HERE !! 
>                 monSimuThread.start(); 
>
>                 monLocationListener = new LocationListener() 
>                         { 
>                         public void onLocationChanged(Location maLocation) 
>                                 { 
>                                 double maLatitude = 
> maLocation.getLatitude(); 
>                                 double maLongitude = 
> maLocation.getLongitude(); 
>                                 double monAltitude = 
> maLocation.getAltitude(); 
>
>                                 Intent MonIntent = new Intent 
> (EVENT_NOUVELCOORD); 
>                                 MonIntent.putExtra("latitude", 
> String.valueOf(maLatitude)); 
>                                 [... other putExtra ...] 
>
>                                 ServiceGPS.this.sendBroadcast(MonIntent); 
>
>                                 } // fin onLocationChanged 
>
>                                 [ .... some code ... ] 
>                         } // fin LocationListener 
>
>                         monLocationManager.requestLocationUpdates(provider,   
>                                      60000, 
>
> 500,monLocationListener); 
>
>                 super.onStart(MonIntent, startId); 
>                 } // fin onStart 
> } 
>
> ************************************************************************** 
>
> here is my code for the thread : 
>
> public class simuThread extends Thread { 
>
>         // Variables Declaration 
>         LocationManager monLocationManager = null; 
>         [ others variables.... ] 
>
>         public void run() 
>         { 
>         try 
>                 { 
>                 while (!arretThread) 
>                         { 
>                         Thread.sleep(1000); 
>                         Location maLocation = new Location("simulation"); 
>                         maLocation.setAltitude(1000); 
>                         maLocation.setLatitude(2.87566); 
>                         maLocation.setLongitude(48.456456); 
> monLocationManager.setTestProviderLocation("simulation", maLocation); 
>                         } 
>                 } 
>         catch (Exception e) 
>                 {[ .... some code ... ]} 
>
>         super.run(); 
>
>         } // fin run 
> } 
>
> Can somewone tell me how i can do that more beautifully ??? 
>
> Thx a lot 
>
> Cedric

-- 
-- 
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
--- 
You received this message because you are subscribed to the Google Groups 
"Android Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to