Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/180.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 屏幕关闭时的安卓型步进检测器_Android - Fatal编程技术网

Android 屏幕关闭时的安卓型步进检测器

Android 屏幕关闭时的安卓型步进检测器,android,Android,您好,我正在开发一个计步器应用程序,它使用Android KitKat的TYPE_STEP_检测器传感器类型,在我关闭屏幕或锁定手机之前,一切似乎都正常工作,我发现当屏幕关闭时它不会触发事件 我知道TYPE_STEP_计数器变体,但我不太喜欢每天一开始就记录开始计数。我更希望在检测到一个步骤时触发事件,然后在一天的步骤计数中添加“1” 是否有人在后台运行的服务中成功使用了TYPE_STEP_检测器,即使屏幕已关闭 sensorEventListener中的代码是: if (source.equa

您好,我正在开发一个计步器应用程序,它使用Android KitKat的TYPE_STEP_检测器传感器类型,在我关闭屏幕或锁定手机之前,一切似乎都正常工作,我发现当屏幕关闭时它不会触发事件

我知道TYPE_STEP_计数器变体,但我不太喜欢每天一开始就记录开始计数。我更希望在检测到一个步骤时触发事件,然后在一天的步骤计数中添加“1”

是否有人在后台运行的服务中成功使用了TYPE_STEP_检测器,即使屏幕已关闭

sensorEventListener中的代码是:

if (source.equals(countSensor)) { // data came from step detector 
    // stepcount from step counter event.values[0]; 
    curStepCount = (int) event.values[0]; 
    stepcount += curStepCount;

在重新打开屏幕后,我的计数只增加了一步

问题在于功耗。如果手机在每次执行步骤时都会唤醒应用程序处理器,则会消耗更多电量,并可能导致电池寿命缩短。对于您的手机,制造商已决定不支持传感器的“唤醒”版本,该传感器可在检测到台阶时打开手机

为了节省电源,最好在某种运动协处理器中进行计数,通常是使用很少电源的ARM Cortex M4处理器。这是在第二次会议上提出的。如果您访问传感器,这将提供您所需要的

最后,Android规范允许某人建立一个“唤醒”传感器,即打开应用程序处理器向你的应用程序发送信号并允许你计数的传感器。在这种特殊情况下,您不应该这样做,因为这对电池寿命有很大影响

请参见第449行之后的内容,注意它允许“唤醒和非唤醒”版本:


你找到解决办法了吗?
/*
 * SENSOR_TYPE_STEP_DETECTOR
 * reporting-mode: special
 *
 * A sensor of this type triggers an event each time a step is taken
 * by the user. The only allowed value to return is 1.0 and an event
 * is generated for each step.
 *
 * Both wake-up and non wake-up versions are useful.
 */

#define SENSOR_TYPE_STEP_DETECTOR                   (18)
#define SENSOR_STRING_TYPE_STEP_DETECTOR            "android.sensor.step_detector"