I have to collect accelerometer data from my Android phone, so I have made a little program to do that.
After some tests, I have found that my Nexus S accelerometer's rate is always 50 values per second when the phone is active, and 6 values per second when it is asleep (with a PARTIAL_WAKE_LOCK
), whatever the rate I ask for (NORMAL
, UI
, GAME
or FASTEST
).
So I decided to install an application found on the Internet which tests the rate of the accelerometer : http://samoht.fr/tuto/accelerometers-frequency-on-android-with-code
But I got the same "error" : whatever the rate I ask for, it is always 50 values per second when the phone is active.
I don't understand why my phone behaves this way. Is it a problem :
EDIT : I have tested the program on another Nexus S (Android 4), and I have the same problem. So it seems to eliminate one of the possibilities listed above: it is not related only to my phone.
I have performed some tests on different smartphones. Here are the results:
Samsung Galaxy Teos
-------------------
* When awake
Normal: 4.17 Hz
UI: 8.43 hz
Game: 16.93 Hz
Fastest: 109.42 Hz
* When asleep
The phone sends null values (0), whatever the mode I chose
Samsung Nexus S
---------------
* When awake
Normal: 49.51 Hz
UI: 49.51 hz
Game: 49.51 Hz
Fastest: 49.51 Hz
* When asleep
6.06 Hz, whatever the mode I chose
LG Nexus 5
----------
* When awake
Normal: 15.39 Hz
UI: 15.4 Hz
Game: 50.05 Hz
Fastest: 196.74 Hz
* When asleep
Normal: 4.96 Hz
UI: 15.41 Hz
Game: 50.12 Hz
Fastest: 198.53 Hz
LG Nexus 4
----------
* When awake
Normal: 15.75 Hz
UI: 15.74 Hz
Game: 48.86 Hz
Fastest: 195.85 Hz
* When asleep
Normal: 5.5 Hz
UI: 15.74 Hz
Game: 49.16 Hz
Fastest: 196.75 Hz
Samsung Galaxy Nexus
--------------------
* When awake
Fastest: 125 Hz
* When asleep
It sends data
Samsung Galaxy Note 2
---------------------
* When awake
Fastest: 100 Hz
* When asleep
The phone does not send anything
Samsung Galaxy S3 and S3 Mini
-----------------------------
* When awake
Fastest: 100 Hz
* When asleep
Fastest: 100 Hz
HTC Wildfire
------------
* When awake
Normal: 4 Hz
UI: 12 hz
Game: 22.2 Hz
Fastest: 38.40 Hz
* When asleep
The phone does not send anything, whatever the mode I chose
HTC Desire
----------
* When awake
Normal: 4.36 Hz
UI: 11.9 hz
Game: 23.3 Hz
Fastest: 47.27 Hz
* When asleep
The phone does not send anything, whatever the mode I chose
Note that the tests have been performed using a partial wake lock. Without it, the Nexus S provides no data at all when it is asleep.
There is also a useful list of smartphones which accelerometers send (or not) compatible data when asleep: http://www.saltwebsites.com/2012/android-accelerometers-screen-off