安卓接近传感器[唯一问题-传感器无法检测到手机附近的物体]



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

所以我像往常一样注册传感器和一切。我想指出的一件事是,我告诉PowerManager对象注册为Proximity_Screen_Off_Wake_Lock。这意味着,每次检测到附近有东西时,屏幕都会自动关闭。

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

基本上,当设备在桌子上,我把手指移到传感器上时,屏幕就会按预期关闭。

当我的活动启动时,问题就开始了,我已经把手指放在传感器上了(或者在口袋里——这是一样的)。所以传感器并没有检测到手机附近的任何东西。如果我把手指移开一点,屏幕就会再次打开。

我能做些什么吗,这样我就能得到我想要的行为——也就是说,当手机已经在口袋里的时候,把屏幕关掉?

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

也就是说,如果调用了onSensorChanged的near事件,那么n则只调用了far事件。

boolean isNearCalled=false;

传感器更改时无效(){

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

}

最新更新