android开发 传感器采集数据断断续续(锁屏后不能继续正常采集数据)以小米手机为例

android开发 传感器采集数据断断续续(锁屏后不能继续正常采集数据)以小米手机为例

由于亲身经历(曾做项目需要采传感器数据,)绕了很多弯路,苦恼好久,想把自己的当时的解决办法分享一下,我想,可能需要注意以下几点:

  1. 屏幕关闭通常会导致传感器监听器被关闭,有的解决方法是设置屏幕为常亮状态.这种方法不推荐。缺点耗电,有些手机会出现不明问题.

  2. 可以借鉴其他博主写的WakeLock 保持后台唤醒状态方法,android保持服务不休眠(持续运行)以及唤醒屏幕的方法等等进行尝试

     /**
      获取电源锁,保持该服务在屏幕熄灭时仍然获取CPU时,保持运行
     */
    private void acquireWakeLock() {
        if (null == wakeLock) {
            PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
            wakeLock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK
                    | PowerManager.ON_AFTER_RELEASE, getClass()
                    .getCanonicalName());
            if (null != wakeLock) {
               // Log.i(TAG, "call acquireWakeLock");
                wakeLock.acquire();
            }
        }
    }
    // 释放设备电源锁
    private void releaseWakeLock() {
        if (null != wakeLock && wakeLock.isHeld()) {
            //Log.i(TAG, "call releaseWakeLock");
            wakeLock.release();
            wakeLock = null;
        }
    }
    
  3. 我最想说的是,如果用了上面一些方法还不能继续正常连续采集数据。你可以试试设置一下你的手机(注意:各种型号的手机设置不尽相同,需自行百度)。在这里,我就以小米手机3为例。在尝试了上面方法后人不能连续采数据,你可以进行以下设置:

    • 打开安全中心,进入电量,右上角设置中设置锁屏断开数据和锁屏清理数据为从不

    • 打开安全中心,还是进入电量,在应用智能省电中点击你的传感器采集app出现后台配置中选择无限制(不采取任何限制措施)

    最后,如果还是不行的话,注意锁屏的话要在触屏方式锁屏,别按实体键锁屏。

你可能感兴趣的:(android开发 传感器采集数据断断续续(锁屏后不能继续正常采集数据)以小米手机为例)