2013-08-23 117 views
1

我正在开发一个应用程序,我希望得到接近传感器,当用户移动接近传感器的手,并得到接近状态值为0当用户移动手的第二次获得值1我怎么做到这一点我知道如何启用接近,但我想在用户移动代理服务器时启用接近。所以我怎么做到这一点我试过这段代码。以启用接近度。接近感应传感器时,手移动传感器

UIDevice * device=[UIDevice currentDevice]; 
    device.proximityMonitoringEnabled=YES; 

    if (device.proximityMonitoringEnabled) 
    { 
     [[NSNotificationCenter defaultCenter] addObserver:self 
               selector:@selector(handleProximityChange:) 
                name:UIDeviceProximityStateDidChangeNotification 
             object:nil]; 
    } 
    else 
    { 
     NSLog(@"Device not capable to support Proximity sensor"); 
     // device not capable 
    } 

,赶上接近状态在这种方法...

-(void)handleProximityChange:(NSNotification *)notification 
{ 

    NSLog(@"Proximity event catch"); 

} 

我将在proximit做到这一点的代码作为每个用户HND过来,让锄头我可以做到这一点请大家帮我做到这一点。

回答

3
- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    // Do any additional setup after loading the view, typically from a nib. 
    count = 0; 
    condition = 0; 
    [self addProximitySensorControl]; 
} 

-(void)addProximitySensorControl { 

    UIDevice *device = [UIDevice currentDevice]; 
    device.proximityMonitoringEnabled = YES; 

    BOOL state = device.proximityState; 
    if(state) 
    { 
     NSLog(@"YES"); 
     _sensorSupport.text = @"YES"; 
    } 
    else 
    { 
     NSLog(@"NO"); 
    _sensorSupport.text = @"No"; 
    } 

    [[NSNotificationCenter defaultCenter] addObserver:self 
              selector:@selector(proximityChanged:) 
               name:@"UIDeviceProximityStateDidChangeNotification" 
               object:nil]; 
} 
-(void)proximityChanged:(NSString*)str 
{ 
    NSLog(@"i am in proximityChanged"); 
    condition++; 
    if (condition % 2 == 0) { 
     count++; 
    } 
    _counter.text = [NSString stringWithFormat:@"%d",count]; 
} 
+0

感谢您的回答... – Jitendra

+0

当第一次移动邻近时,接近值接近。我neet设置计数器1. – Jitendra

+0

@Ashwinkumar虽然只有代码的答案可能会回答这个问题,但至少有一个小小的介绍,你已经改变了什么,以及为什么,通常是有用的。 – Sumurai8