Bre*_*erg 32
还有就是这个公共API. - [UIApplication setProximitySensingEnabled:(BOOL)]将打开该功能.顺便说一句,它似乎没有使用光传感器,因为接近感应会在黑暗的房间里调整.
但是,当您将手机拿到脸上时,API调用基本上会使屏幕空白.遗憾的是,对交互没用.
ben*_*ado 17
假设你的意思是当你把它拿到耳朵时关闭屏幕的传感器,我很确定这只是耳机内的红外传感器.如果你启动手机应用程序(你不必打电话)并拿着东西在耳机上投下阴影,你可以关闭显示器.
当您提出此问题时,无法通过公共API访问.您现在可以通过UIDevice的proximityState属性访问传感器的状态.然而,它对游戏来说并不是那么有用,因为它只是一个开/关的东西,而不是近/远的衡量标准.此外,它仅适用于iPhone而非iPod touch.
小智 8
显然,如果状态栏处于横向,接近传感器将永远不会打开.即,如果你打电话:
[UIApplication sharedApplication].statusBarOrientation = UIInterfaceOrientationLandscapeLeft;
Run Code Online (Sandbox Code Playgroud)
您将不再接近:ON通知.
这肯定发生在OS 3.0上,我无法在2.X设备上进行测试,因为我没有配备接近传感器.
这似乎是一个错误.
接近传感器和环境光传感器之间存在很多混淆.iPhone同时拥有.Touch没有接近传感器,因此用户输入的选择较差.无论如何,这将是一个坏主意,因为Apple没有义务在未来的设备中将它放在同一个地方; 你不应该知道或关心它在哪里.
接近传感器通过脉冲红外LED并测量反射量来工作.你可以使用你的iSight摄像头看到这一点(大多数数码相机都对IR敏感.)只需启动Photo Booth,在手机上发起呼叫(或播放语音邮件)并将其指向iSight摄像头.注意耳机旁边的闪光灯; 用手指盖住它,屏幕会变黑.
此时环境光传感器的API显然是私密的.
只是要更新,这是可能的.
device = [UIDevice currentDevice];
// Turn on proximity monitoring
[device setProximityMonitoringEnabled:YES];
// To determine if proximity monitoring is available, attempt to enable it.
// If the value of the proximityMonitoringEnabled property remains NO, proximity
// monitoring is not available.
// Detect whether device supports proximity monitoring
proxySupported = [device isProximityMonitoringEnabled];
// Register for proximity notifications
[notificationCenter addObserver:self selector:@selector(proximityChanged:) name:UIDeviceProximityStateDidChangeNotification object:device];
Run Code Online (Sandbox Code Playgroud)
正如benzado指出的那样,您可以使用:
// Returns a BOOL, YES if device is proximate
[device proximityState];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
51022 次 |
| 最近记录: |