bob wrote: > Here is the *correct* (until proven otherwise) version of a compass for a > device lying flat on a table: > > As long as you have the device lying flat, i.e., with no roll, then the Meier version is fine, if computationally expensive per the documentation.
> package com.magnet_test; > > Do you own the domain "magnet_test.com"? You should (roughly) conform to the Java Coding Conventions. import android.hardware.Sensor; > import android.hardware.SensorEvent; > import android.hardware.SensorEventListener; > > public class Magnet_Listener implements SensorEventListener { > The Java Coding Conventions call for underscores only in constant variable names. Otherwise, use camel case. > > private float[] magneticFieldValues; > > @Override > public void onAccuracyChanged(Sensor sensor, int accuracy) { > > } > > @Override > public void onSensorChanged(SensorEvent sensorEvent) { > if (sensorEvent.sensor.getType() == Sensor.TYPE_MAGNETIC_FIELD) > magneticFieldValues = sensorEvent.values; > float x = magneticFieldValues[0]; > float y = magneticFieldValues[1]; > float angle = (float) Math.atan2(y, x); > float angle_in_degrees = (float) Math.toDegrees(angle) + 180; > System.out.println("angle = " + angle_in_degrees); > > } > } > > > *Inspired by code from Reto Meier.* > > > On Thursday, September 27, 2012 10:33:31 AM UTC-5, bob wrote: >> >> So, I'm trying to learn how to make an android compass. >> >> Naturally, I used a site called google and typed the following in: >> >> "making an android compass" >> >> I found myself at this URL: >> >> >> http://android-er.blogspot.com/2010/08/simple-compass-sensormanager-and.html >> >> After looking thru it, I'm thinking it's incorrect. >> >> There is this suspiciously simple method: >> >> public void onSensorChanged(SensorEvent event) { >> // TODO Auto-generated method stub >> myCompassView.updateDirection((float)event.values[0]); >> } >> >> >> >> Basically, it seems like they are using the x component of the force >> vector as if it were an angle. Can someone else look at this and let me >> know what you think? >> >> -- 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