Ok that would make more sense I guess I'll try to keep a previous bearing. O I forgot to add that into the snippet but yea it is there.
Thanks On Tuesday, September 18, 2012 3:08:00 AM UTC-4, gjs wrote: > > Hi, > > GPS bearing will only become accurate when the device is moving not when > it is stationary. > > Also it looks like you have not registered your orientation sensor > listener with the Sensor Manager, see onPause() & on Resume() in > http://developer.android.com/guide/topics/sensors/sensors_position.html > > Regards > > On Tuesday, September 18, 2012 4:30:08 PM UTC+10, Hung wrote: >> >> Hi guys, I am trying to get some good consistent data on one's >> bearings(direction you are facing) either using the LocationListener class >> or the SensorEventListener class. So far I've hit a road block because with >> the LocationListener I dont get consistent data; bearing is almost always >> 0. With the sensor listener, the azimuth data is basically 180 ALL THE >> TIME. I've been searching and still am for solutions to this but no luck so >> far. The end goal is to draw a compass on a map in which you can pan around >> and still get back to your location and see the compass; The compass is >> marking your location. >> >> Are there any other options out there or is there a work around for this >> that would be better? >> >> Thanks in advance and here are snippets of some standard code i am using; >> I'm just displaying the data obtained. >> >> >> Code for LocationListener: >> >> .... >> manager = (LocationManager) this.getSystemService( Context.LOCATION_SERVICE >> ); >> listener = new LocationListener(){ >> >> @Override >> public void onLocationChanged(Location location) { >> txt.setText( "Accuracy : " + location.getAccuracy() + "\n" + >> "Altitude : " + location.getAltitude() + "\n" + >> "Bearing : " + location.getBearing() + "\n" + >> "Latitude : " + location.getLatitude() + "\n" + >> "Longitude : " + location.getLongitude() + "\n" + >> "Provider : " + location.getProvider() + "\n" + >> "Speed : " + location.getSpeed() + "\n" + >> "Time : " + location.getTime() ); >> } >> .... >> >> Code for SensorEventListener: >> >> .... >> manager = (SensorManager) getSystemService(Context.SENSOR_SERVICE); >> orientation = manager.getDefaultSensor(Sensor.TYPE_ORIENTATION); >> >> final TextView txt = (TextView) this.findViewById(R.id.txt); >> >> listener = new SensorEventListener(){ >> >> @Override >> public void onAccuracyChanged(Sensor arg0, int arg1) >> { >> >> } >> >> @Override >> public void onSensorChanged(SensorEvent event) >> { >> txt.setText( "Azimuth : " + event.values[0] + "\n" + >> "Pitch : " + event.values[1] + "\n" + >> "Roll : " + event.values[2] + "\n" + >> "Accuracy : " + event.accuracy ); >> } >> >> }; >> .... >> >> -- 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

