我正在使用setProximitySensingEnabled并在我的UIApplication子类中实现了proximityStateChanged。看起来如果感应被切换,第一个“关闭”事件就会丢失。
我的UIApplication课程非常基础......
-(void)proximityStateChanged:(BOOL)state { NSLog(state ? @"ON" : @"OFF"); }
在我的应用程序委托中,我有一个启用/禁用接近传感器的UISwitch。
-(IBAction)toggleProxy:(id)sender { [UIApplication sharedApplication].proximitySensingEnabled = prox.on; }
“prox”是我的UISwitch。首次启动时测试工作正常。我点击开关将其打开然后将我的手放在传感器上一秒钟然后将其移开并获得:
2009-03-11 12:43:00.465 Proximity[324:20b] ON
2009-03-11 12:43:02.514 Proximity[324:20b] OFF
2009-03-11 12:43:04.046 Proximity[324:20b] ON
2009-03-11 12:43:05.621 Proximity[324:20b] OFF
然后我点击开关将其关闭然后再次点击将其打开。现在我明白了:
2009-03-11 12:43:12.005 Proximity[324:20b] ON
2009-03-11 12:43:14.789 Proximity[324:20b] ON
2009-03-11 12:43:16.467 Proximity[324:20b] OFF
2009-03-11 12:43:17.516 Proximity[324:20b] ON
2009-03-11 12:43:19.077 Proximity[324:20b] OFF
注意我在OFF之前得到两个ON。 OFF在某个地方丢失了。我无法使用谷歌的移动应用程序复制这种行为,所以我想知道他们是否在接近启用之间重置某些东西。它们没有始终打开接近传感器,因为如果覆盖传感器,屏幕不会变为空白。您必须向上倾斜手机并将其向后倾斜(以模拟它在您耳朵处的位置),然后覆盖传感器工作。
其他人在玩传感器吗?
在我的特定应用程序中,我正在录制语音消息,当您将手机从耳边移开时,我想暂停录制(当我关闭时)。我第一次将手机从耳边移开时,录制没有暂停。但是,如果我把它放到我的耳朵并再次移开它, 暂停。