1

我的应用程序使用具有以下代码的接近传感器:

public class WakeLockHelper {
  static final String WAKE_LOCK_STR = "My.WakeLockHelper";
  static final int PROXIMITY_SCREEN_OFF_WAKE_LOCK = 32;

  private static WakeLock mScreenLock = null;

  private static WakeLock doWakeLock( final WakeLock inputWl, int flags, boolean lock ) {
    try {
      WakeLock wl = inputWl;
      if ( lock ) {
        if ( wl == null ) {
          PowerManager pm = (PowerManager) SJPhone.getContext().getSystemService( Context.POWER_SERVICE );
          wl = pm.newWakeLock( flags, WAKE_LOCK_STR );
          wl.setReferenceCounted( false );
          wl.acquire();
        }        
      }
      else {
        if ( wl != null ) {
          wl.release();
          if ( !wl.isHeld() ) {
            wl = null;
          }
        }
      }
      return wl;
    }
    catch ( Exception e ) {
      Log.e( e );
    }
    return null;
  }

  public static synchronized void screenLock( boolean lock ) {
    mScreenLock = doWakeLock( mScreenLock, PROXIMITY_SCREEN_OFF_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP, lock );
  }
}

一切正常,但仅在一台设备上,Lenovo Tablet K1 我在 logcat 中收到很多错误,如下所示:

04-17 15:11:34.450 E/Sensors (  162): proximity file handle not opened
04-17 15:11:34.450 E/Sensors (  162): proximity file handle not opened

有谁知道这是什么以及如何避免?

4

2 回答 2

1

只需快速检查以确认。您的应用程序的“LOGTAG”是“传感器”吗?
如果不是,那么有问题的日志来自传感器 HAL。

04-17 15:11:34.450 E/Sensors (  162): proximity file handle not opened

上面的日志似乎是来自传感器 HAL 的 LOGE(),
(通常开发人员用“传感器”LOGTAG 标记。)

只要您获得正确的接近事件,上述日志就可以安全地忽略。
开发人员很可能忘记从传感器 HAL 中清除调试日志。

于 2012-07-27T08:52:17.410 回答
1

要删除这个烦人的日志 - 取消选中设置中明亮屏幕中的自动复选框。

于 2014-12-10T13:49:53.810 回答