Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
iPhone接近传感器_Iphone_Api_Sensors_Proximity - Fatal编程技术网

iPhone接近传感器

iPhone接近传感器,iphone,api,sensors,proximity,Iphone,Api,Sensors,Proximity,iPhone SDK能否利用iPhone的接近传感器?如果是这样,为什么没有人利用它们?我可以想象一些像样的用途 例如,在赛车游戏中,您可以将手指放在接近传感器上,而不是用拇指占据屏幕的不动产。当然,如果这是你唯一的选择,那么iPodtouch用户将无法使用该应用程序 接近传感器是否会告诉你离得有多近,或者只是有东西在它前面?没有公开的API 这些接近传感器基本上是导体矩阵。垂直的“电线”是一片薄绝缘体一侧的轨道,水平的在另一侧。交叉点起电容器的作用。你们的手指带有静电电荷,所以每个结的电容会随

iPhone SDK能否利用iPhone的接近传感器?如果是这样,为什么没有人利用它们?我可以想象一些像样的用途

例如,在赛车游戏中,您可以将手指放在接近传感器上,而不是用拇指占据屏幕的不动产。当然,如果这是你唯一的选择,那么iPodtouch用户将无法使用该应用程序


接近传感器是否会告诉你离得有多近,或者只是有东西在它前面?

没有公开的API

这些接近传感器基本上是导体矩阵。垂直的“电线”是一片薄绝缘体一侧的轨道,水平的在另一侧。交叉点起电容器的作用。你们的手指带有静电电荷,所以每个结的电容会随着距离的变化而变化。场效应晶体管放大信号,偏置设置阈值。实际上,电路比这更复杂,因为它必须检测相对变化并抑制噪声


但无论如何,传感器网格告诉你的是,已经感应到了场效应,场效应是物体的特征,大约指尖大小,位于显示器表面。电容性干扰的质心(可能由硬件计算),坐标(可能)报告为端口上的数字,最有可能通过中断引起设备操作系统的注意。在像iPhone这样性感的东西中,可能会有一个缓冲区,缓冲最后十几个位置,这样它就可以计算出方向和速度。可能这些也由硬件计算,并在同一端口上以数字显示。

假设你指的是当你将屏幕放在耳朵上时关闭屏幕的传感器,我很确定它只是耳朵扬声器内的红外传感器。如果你启动手机应用程序(你不必打电话)并拿着东西在耳朵扬声器上投下阴影,你可以关闭显示器

当您提出此问题时,无法通过公共API访问它。现在,您可以通过UIDevice的
proximityState
属性访问传感器的状态。然而,它对游戏来说并没有多大用处,因为它只是一个开/关的东西,而不是一个近/远的度量。另外,它仅在iPhone上可用,而在iPod touch上不可用。

有一个用于此的公共API-[UIApplication setProximitySensingEnabled:(BOOL)]将打开该功能。顺便说一句,它似乎没有使用光传感器,因为近距离感应将在黑暗的房间中进行调整


但是,当您将手机举到脸上时,API调用基本上会使屏幕空白。遗憾的是,这对互动毫无用处。

@Dipak Patel和编码器

您可以在以下位置下载工作代码:

它有一个ProximityState的工作实现,改变了UIApplication中未记录的方法


希望这能有所帮助。

接近传感器通过测量红外反射率工作。如果你把iPhone举到网络摄像头前,你可以看到一个小的脉冲红外LED

在iPhone 3.0中,官方支持接近传感器。查看文档中的“设备近邻监控已启用”。

显然,如果状态栏处于横向,则近邻传感器将永远不会打开。 i、 e.如果你打电话:

[UIApplication sharedApplication].statusBarOrientation = UIInterfaceOrientationLandscapeLeft;
您将不再获得通知上的邻近提示

这肯定发生在OS3.0上,我不能在2.X设备上测试它,因为我没有一个带有接近传感器的设备


这似乎是一个错误。

在接近传感器和环境光传感器之间存在很多混淆。iPhone兼具这两个功能。触摸屏没有接近传感器,这使得它对于用户输入来说是一个糟糕的选择。无论如何,这将是一个坏主意,因为苹果没有义务在未来的设备中把它放在同一个地方;你不应该知道或关心它在哪里


接近传感器的工作原理是脉冲红外LED并测量反射率。您可以使用iSight相机看到这一点(大多数数码相机对红外很敏感)。只需启动Photo Booth,启动电话(或播放语音邮件)并将其指向iSight相机即可。注意听筒旁边的闪光灯;用手指盖住它,屏幕就会变黑


此时,环境光照传感器的API显然是私有的。

要关闭屏幕,可以想象使用多个传感器来确定是否应关闭屏幕。Cryptognome描述的红外近距离传感器与Peter Wone描述的触摸屏传感器相结合,可以确定iphone是否靠近你的脸(或其他带有轻微电荷的东西),或者它是否只是非常接近animate中的某个东西。

如果你不是针对AppStore,您可以在这里阅读我关于访问这些内容的文章:

接近传感器:


环境光照传感器:

仅需更新即可

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];

显然,如果状态栏处于横向,接近传感器将永远不会打开。 i、 e.如果你打电话: [UIApplication sharedApplication].StatusBaroOrientation=UIInterfaceOrientation和ScapeLeft; 您将不再获得通知上的“接近度”。 这肯定发生在OS3.0上,我不能在2.X设备上测试它,因为我没有一个带有接近传感器的设备。 这好像是一个错误。 于2009年7月22日5:49回答 凯文兰伯特



我也遇到过这个问题。我花了很长时间才找出接近传感器不工作的真正原因。当方向为UIInterfaceOrientation和SCAPELEFT或UIInterfaceOrientation和SCAPERIGHT时,接近传感器不工作;在纵向模式下,它工作得很好。我的iPhone是iPhone 4S(iOS SDK 5.0)。

听起来你在描述触摸屏,而不是接近传感器(当你拿着手机时,它会关闭屏幕)