Hi, Some devices lack the requisite magnetometer so Orientation / compass does not work at all, eg: Nikon Coolpix S800c & S810c.
One way to smooth the jitter is to compute an average value from a small array of recently stored recent values. Regards On Thursday, July 10, 2014 3:53:45 AM UTC+10, Nathan wrote: > > > > On Monday, March 17, 2014 4:40:21 PM UTC-7, Nathan wrote: >> >> Last time I worked on a compass reading (which was years ago), I did >> something like this. >> >> A: >> http://www.javacodegeeks.com/2013/09/android-compass-code-example.html >> >> Of course, this example has a locked portrait orientation. >> >> So, I call something like this to get it in sync. >> >> http://developer.android.com/reference/android/view/Display.html#getRotation() >> >> Now, I realize that some of the calls in example A are deprecated. Many >> devices with which I am familiar, though, it actually does work. >> >> That's why, if I were to do a new implementation today, I might consider >> something like implementation B. >> >> B: >> http://sunil-android.blogspot.com/2013/02/create-our-android-compass.html >> >> I have no good way of testing either method on all of today's gazillion >> Android devices, so I am going to have to use a best practice, and try to >> blame the user's device when they don't work. >> >> So my questions are: >> 1. Does implementation B already take into account landscape/portrait >> orientation of the device, or should I continue to use Display.getRotation? >> 2. Are there known devices for which A fails and B works or vice versa? >> 3. Are there devices with usable sensors for which neither A or B works? >> 4. Are there any known drawbacks of implementation B? >> >> Nathan >> >> > To follow up with my question from a several months ago. > > I can confirm that the deprectated Orientation sensor method (method A > above) is broken in some devices. Not just wrong values - no values > apparently. > > Two users at once told me they were getting no compass readings. When two > users at once do that, I can expect the problem will soon be widespread. > Xperia M2, and Samsung S4 mini. > > A log file from one showed this: > 07-08 21:39:35.103 E/SensorManager(15370): sensor or listener is null > > I had both implementations in the code, but never really activated method > B because of no real testing. > > I sent custom apk to one of the users, and method B worked. Both method A > and method B work on the Galaxy note 3, which I have. > > Method B is much more jittery, and I expect that is the case in all > devices. Don't know how to resolve that yet, and haven't seen gimbal lock > yet to comment. > > Nathan > > > -- 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/d/optout.

