如何检测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?

下一篇: Determining iPhone Model