Vibrate doesn't work when screen of iPhone is turned off in delegate function of EstimoteSDK

#import <AudioToolbox/AudioToolbox.h> /* for vibrate */
#import "ESTBeaconManager.h"

-(void)beaconManager:(ESTBeaconManager *)manager didDetermineState:(CLRegionState)state forRegion:(ESTBeaconRegion *)region
{
AudioServicesPlayAlertSound(kSystemSoundID_Vibrate);
NSLog(@"This code does run!");
}

I'm using EstimoteSDK 2.4.0. The above delegate gets triggered when an iBeacon is near.

In the above code snippet, the NSLog gets print when the Phone's screen is on and when it's off.

However, the iPhone only vibrates when the iPhone's screen is on and not off.... This is really weird. Does anyone has an answer to this strange behaviour?
Many thanks guys!

Hey Jim,

My assumption is, there might be some restrictions when it comes to playing sound in the background? Here's a thread I stumbled upon on Stack Overflow:

http://stackoverflow.com/questions/21173798/ios-background-service-vibrate-phone

One idea to work around that: use a local push notification, I think these can trigger vibration just fine.

thanks Piotr, will try out this solution tomorrow and get back to you :).