如何检测iPhone OS设备是否有接近传感器?
与接近传感有关的文档指出,如果在没有接近传感器(例如iPod touch,iPad)的设备上使用接近传感API,它们就会像接近传感器已经启动一样返回。
除了检查[[UIDevice currentDevice] .model]字符串并解析“iPhone”,“iPod touch”或“iPad”是否有一种确定接近传感器是否在给定设备上的方式?
来自UIDevice文档:
proximityMonitoringEnabled
一个布尔值,指示是否启用接近监测(YES)或不(NO)。
...
讨论
....
并非所有的iPhone OS设备都有接近传感器。 要确定近距离监测是否可用,请尝试启用它。 如果proximityState属性的值保持为NO,则接近度监控不可用。
克劳斯
Apple的文档指出:“并非所有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/
也许这个片段可能会有所帮助:
-(BOOL) hasProximitySensor {
UIDevice *dev = [UIDevice currentDevice];
BOOL oldValue = [dev isProximityMonitoringEnabled];
[dev setProximityMonitoringEnabled:!oldValue];
BOOL newValue = [dev isProximityMonitoringEnabled];
[dev setProximityMonitoringEnabled:oldValue];
return (oldValue != newValue);
}
链接地址: http://www.djcxy.com/p/50361.html
上一篇: How can I detect if an iPhone OS device has a proximity sensor?