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 );
  }
}

すべて正常に動作しますが、1 つのデバイス、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

この迷惑なログを削除するには、設定で明るい画面の [自動] チェック ボックスをオフにします。

于 2014-12-10T13:49:53.810 に答える
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 に答える