iPhone的SDK可以利用iPhone的接近传感器的? 如果是这样,为什么没有采取利用它们的人? 我可以想象几个像样的用途。
例如,在赛车游戏中,你可以把在接近传感器你的手指去占用了屏幕房地产用拇指来代替。 当然,虽然,如果这是你唯一的选择,那么iPod touch用户将无法使用该应用程序。
是否接近传感器告诉你是多么密切,或只是东西在它的前面?
iPhone的SDK可以利用iPhone的接近传感器的? 如果是这样,为什么没有采取利用它们的人? 我可以想象几个像样的用途。
例如,在赛车游戏中,你可以把在接近传感器你的手指去占用了屏幕房地产用拇指来代替。 当然,虽然,如果这是你唯一的选择,那么iPod touch用户将无法使用该应用程序。
是否接近传感器告诉你是多么密切,或只是东西在它的前面?
假设你的意思是关闭当你把它放在耳边,屏幕上的传感器,我敢肯定,这只是听筒内的红外传感器。 如果启动手机应用程序(不必是拨打电话),并持有一些过耳扬声器蒙上了一层阴影,可以使显示器关闭。
当你问这个问题时,不是通过公共API访问。 现在,您可以通过的UIDevice的访问传感器的状态proximityState
财产。 但是,它不会对游戏有益的,因为它只是一个开/关的事情,而不是远/近措施。 另外,它只是在iPhone上,而不是iPod touch上使用。
有这个公共API。 - [UIApplication的setProximitySensingEnabled:(BOOL)]将开启特征。 顺便说一句,它似乎不使用光传感器,因为接近感测将在黑暗的房间调整出来。
然而,当你拿着手机到你的脸API调用基本清空屏幕。 互动没有用的,可悲的。
显然,如果状态栏在横向接近传感器将永远不会打开。 也就是说,如果您拨打:
[UIApplication sharedApplication].statusBarOrientation = UIInterfaceOrientationLandscapeLeft;
您将不再得到接近:ON通知。
这对OS 3.0绝对发生,我无法测试它2.x版本的设备上,因为我没有用一个接近传感器。
这似乎是一个错误。
接近传感器通过测量IR反射率起作用。 如果你持有的iPhone到一个摄像头,你可以看到一个小,脉冲红外灯。
有很多的接近传感器和环境光传感器之间的混乱。 iPhone有两种。 触摸没有一个接近传感器,使其成为用户输入一个糟糕的选择。 这将是一个坏主意,反正因为苹果没有义务来定位它在未来的设备在同一个地方; 你不应该知道或关心它在哪里。
该接近传感器的工作原理是脉冲红外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];
作为benzado指出,你可以使用:
// Returns a BOOL, YES if device is proximate
[device proximityState];
目前对此并没有公开的API。
在iPhone 3.0没有为接近传感器官方支持。 看一看UIDevice proximityMonitoringEnabled
的文档。
如果你的目标不是AppStore的,你可以在这里阅读我的文章上得到访问这些:
接近传感器: http://iphonedevwiki.net/index.php/AppleProxShim
环境光传感器: http://iphonedevwiki.net/index.php/AppleISL29003
显然,如果状态栏在横向接近传感器将永远不会打开。 也就是说,如果您拨打:[UIApplication的sharedApplication] .statusBarOrientation = UIInterfaceOrientationLandscapeLeft; 您将不再得到接近:ON通知。 这对OS 3.0绝对发生,我无法测试它2.x版本的设备上,因为我没有用一个接近传感器。 这似乎是一个错误。 回答7月22日09时5:49凯文·兰伯特
我encoutered这个问题了。 我花了很长时间才弄明白为什么接近传感器不工作的真正原因。 当取向是UIInterfaceOrientationLandscapeLeft或UIInterfaceOrientationLandscapeRight,接近传感器不工作; 而在人像模式效果很好。 我的iPhone是iPhone 4S(iOS版SDK 5.0)。
这些接近传感器基本上导体的矩阵。 垂直“线”是绝缘体上的薄片的一侧的轨道中,水平的有在另一侧上。 交点作为电容器。 手指承载静电电荷,所以每个结的电容随着接近而改变。 的FET放大信号和偏压设置一个阈值。 在实践中,电路是比这更复杂,因为它必须检测的相对变化和抑制噪声。
但无论如何,什么传感器网格告诉你的是,场效应已经感测到,并且场效应是关于一个指尖大小对象和搁置在显示器的表面上的特征。 电容扰动的重心计算(可能是由硬件)和坐标(大概)报告为端口号很可能是由中断带来的设备操作系统的重视。 在性感的东西作为一个iPhone有可能是过去十的缓冲区左右的位置,因此可以制定出方向和速度。 也许这些也是由硬件计算并作为同一端口号。
@Dipak帕特尔&@Coderer
您可以下载运行代码http://spazout.com/google_cheats_independent_iphone_developers_screwed
它有proximityStateChanged的工作实施UIApplication的一个无证方法。
希望这可以帮助。
要关闭屏幕这是可以想象的,不止一个传感器被用于计算出,如果屏幕应关闭与否。 通过Cryptognome与由彼得Wone所述的触摸屏传感器所描述的红外接近传感器可以工作了,如果iphone正在举行贴着你的脸(或有轻微的电荷别的东西),或者如果它只是非常接近的东西-animate。