与接近感测相关的文档规定,如果在没有接近感应器(即iPod触摸、iPad)的设备上使用接近感测API,则它们将返回,就像接近感应器已经启动一样。
除了检查[UIDevice currentDevice.model]字符串并解析"iPhone“、"iPod touch”或"iPad“之外,有没有更巧妙的方法来确定给定设备上是否有接近传感器?
发布于 2010-04-06 22:31:55
摘自UIDevice文档:
proximityMonitoringEnabled
一个布尔值,指示是否启用了邻近监视(是)或未启用(否)。
..。
讨论
……
并非所有的iPhone OS设备都有接近感应器。要确定邻近性监控是否可用,请尝试启用它。如果proximityState特性的值保持为NO,则邻近监视不可用。
克劳斯
发布于 2010-04-06 22:31:42
苹果的文档指出,“并不是所有的iPhone OS设备都有接近感应器。”要确定您的应用程序正在运行的设备是否支持邻近性监控,请将proximityMonitoringEnabled属性设置为YES,然后检查其值:
UIDevice *device = [UIDevice currentDevice];
device.proximityMonitoringEnabled = YES;
if (device.proximityMonitoringEnabled == YES)
// do something来源:http://www.mobileorchard.com/new-in-iphone-30-tutorial-series-part-4-proximity-detection/
发布于 2015-05-25 16:56:00
也许这段代码可能会有帮助:
-(BOOL) hasProximitySensor {
UIDevice *dev = [UIDevice currentDevice];
BOOL oldValue = [dev isProximityMonitoringEnabled];
[dev setProximityMonitoringEnabled:!oldValue];
BOOL newValue = [dev isProximityMonitoringEnabled];
[dev setProximityMonitoringEnabled:oldValue];
return (oldValue != newValue);
}https://stackoverflow.com/questions/2585554
复制相似问题