2012-04-18 50 views
1

我的應用程序使用接近傳感器與下面的代碼:約接近傳感器logcat的很多錯誤信息

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

一切工作正常,但只能在一臺設備,聯想平板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 

有誰知道這是什麼以及如何避免它?

回答

1

只是一個快速檢查,以確認。您的應用程序「傳感器」的「LOGTAG」是什麼?
如果沒有,那麼在日誌中的問題是從傳感器HAL。

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

以上日誌似乎是一個LOGE()從傳感器-HAL,
(通常開發商的「傳感器」 LOGTAG標籤。)

只要你得到正確的接近事件,上面的日誌是安全的,可以忽略。
開發商最有可能忘記從傳感器-HAL清理調試日誌。

+1

是,「傳感器」沒有登錄我的應用程序的標籤,這些消息對設備的一些3 - 第三方組件生產。當這些信息的數量很大(24小時壓力測試大約10^4)時,這只是可疑的。我只是希望那些健忘的開發者可能會閱讀這篇文章=) – 2012-07-31 12:16:31

1

要刪除這惱人的日誌 - 取消自動複選框,在設置屏幕亮。