我根据用户的巨大请求更新我的应用程序。我的应用程序在事情发生后打开屏幕,现在我正在整合"口袋模式"功能。所以基本上如果用户在他/她的口袋里有电话或设备,我想通过接近传感器检测到这一点,并根据此行动。但是我遇到了很多麻烦..
所以我像往常一样注册传感器和一切。我想指出的一件事是我告诉PowerManager对象注册为Proximity_Screen_Off_Wake_Lock。这意味着每当检测到某些物体时屏幕自动关闭。
powerManager.newWakeLock(PowerManager.PROXIMITY_SCREEN_OFF_WAKE_LOCK, "ProximityScreenOff");
基本上当设备在桌面上并且我将手指移动到传感器时,屏幕会按预期关闭。
当我的活动启动并且我已经将手指放在传感器上时(或者在口袋里 - 它是相同的),问题就开始了。因此,传感器无法检测到已接近手机的任何信息。如果我稍稍移开手指,屏幕将再次打开。
有什么我可以做的,所以我会得到我想要的行为 - 也就是说,当手机已经放在口袋里时关闭屏幕?
答案 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;
}
}