我正在使用 setProximitySensingEnabled 并在我的 UIApplication 子类中实现了proximityStateChanged。看起来如果感应被切换,则第一个“关闭”事件正在丢失。
我的 UIApplication 类非常基本......
-(void)proximityStateChanged:(BOOL)state { NSLog(state ? @"ON" : @"OFF"); }
在我的应用程序委托中,我有一个 UISwitch 可以启用/禁用接近传感器。
-(IBAction)toggleProxy:(id)sender { [UIApplication sharedApplication].proximitySensingEnabled = prox.on; }
“代理”是我的 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 在某处丢失。我无法使用谷歌的移动应用程序复制这种行为,所以我想知道他们是否在接近启用之间重置了一些东西。他们没有一直打开接近传感器,因为如果你盖住传感器,屏幕就不会变黑。您必须将手机向上倾斜并向后倾斜(以模拟它在您耳边的位置),然后覆盖传感器工作。
还有人在玩传感器吗?
在我的特定应用程序中,我正在录制语音消息,当您将手机从耳边移开时,我想暂停录制(当我关闭时)。第一次将手机从耳边移开时,录音没有暂停。但是,如果我把它放在耳边并再次将它移开,它就会暂停。