Android接近传感器[独特问题 - 传感器未检测到电话附近的物体]

时间:2016-01-07 18:57:40

标签: android proximity

我根据用户的巨大请求更新我的应用程序。我的应用程序在事情发生后打开屏幕,现在我正在整合"口袋模式"功能。所以基本上如果用户在他/她的口袋里有电话或设备,我想通过接近传感器检测到这一点,并根据此行动。但是我遇到了很多麻烦..

所以我像往常一样注册传感器和一切。我想指出的一件事是我告诉PowerManager对象注册为Proximity_Screen_Off_Wake_Lock。这意味着每当检测到某些物体时屏幕自动关闭。

powerManager.newWakeLock(PowerManager.PROXIMITY_SCREEN_OFF_WAKE_LOCK, "ProximityScreenOff");

基本上当设备在桌面上并且我将手指移动到传感器时,屏幕会按预期关闭。

当我的活动启动并且我已经将手指放在传感器上时(或者在口袋里 - 它是相同的),问题就开始了。因此,传感器无法检测到已接近手机的任何信息。如果我稍稍移开手指,屏幕将再次打开。

有什么我可以做的,所以我会得到我想要的行为 - 也就是说,当手机已经放在口袋里时关闭屏幕?

1 个答案:

答案 0 :(得分:0)

您可以使用布尔变量来管理它。

即如果onSensorChanged附近事件被调用,则n然后只调用far事件。

boolean isNearCalled = false;

void onSensorChanged(){

       if(near sensitivity) { 
                 isNearCalled=true;
      } else if(Distance sensitivity && isNearCalled) {
                // Do stuff for far like screen off
                isNearCalled= false;
     } 

}