java - Sensors sampling rate is always too high -
i'm writing android logging application runs background service , logs sensor data. here's example of code start logging gravity sensor:
public void startlogging(int intervalinmilliseconds) { mysensormanager.registerlistener(this, mygravitysensor, intervalinmilliseconds * 1000); //millisec * 1000 = microsec } however, have problem: sample rate set ignored , actual 1 much, faster. example: if set slow sample rate of 10000000 microseconds (aka: 10000 milliseconds, or 10 seconds) receive updates dozen times every second, more hundred times faster requested!
i read in documentation interval not meant strictly precise, here we're talking difference of @ least 2 orders of magnitude, absurd!
i know can compare timestamps , log, say, 1 event every 100, problem i'm trying minimize power consumption, , imagine waking cpu once every 10 seconds have quite different impact on battery waking ten times every second.
i'm aware can pass fourth parameter sets how time sensor events can stay in queue before being delivered, doesn't seem have noticeable effect either.
where going wrong?
according other answers it's not possible: android - user-defined delay used in registerlistener(). not working, why?
if can't make work samplerate parameter, try using predefined samplerate parameters , see if make difference.
if samplerate still high use counter value , call event every x samples.
Comments
Post a Comment