Quando envio um pacote de um dispositivo Bluetooth para o iPhone, o iPhone vibra.
O pacote é normalmente recebido, mas não ocorre vibração.
Qual é o problema?
Abaixo está a fonte real.
- (void)runVibration:(NSMutableArray <__kindof NSNumber *> *)params {
NSLog(@"******params %@", params);
int param = [[params objectAtIndex:0] intValue];
NSLog(@"****** Vibrate params :%d", param);
[[Common getInstance] dovibrate:(param/100)];
performSelectorOnMainThread:@selector(dovibrate2:) withObject:params waitUntilDone:YES];
}
-(void) dovibrate:(NSTimeInterval) sec
{
if(self.vibratortimer && [self.vibratortimer isValid])
{
[self.vibratortimer invalidate];
self.vibratortimer = nil;
}
self.g_time = [NSDate dateWithTimeIntervalSinceNow:sec];
self.vibratortimer =
[NSTimer scheduledTimerWithTimeInterval:0.1f target:self selector:@selector(stopVibration) userInfo:nil repeats:YES];
}
- (void) stopVibration {
NSDate *now = [NSDate date];
NSTimeInterval diff = [now timeIntervalSinceDate:self.g_time];
if (diff >= 0)
{
[self.vibratortimer invalidate];
self.vibratortimer = nil;
AudioServicesDisposeSystemSoundID (kSystemSoundID_Vibrate);
}
else
{
AudioServicesDisposeSystemSoundID (kSystemSoundID_Vibrate);
AudioServicesPlaySystemSound(kSystemSoundID_Vibrate);
}
}
Método de chamada: runVibration - > dovibrate - > stopVibration
Também não acontece quando A é aplicado.
A
dispatch_async(dispatch_get_main_queue(), ^{
AudioServicesDisposeSystemSoundID (kSystemSoundID_Vibrate);
AudioServicesPlaySystemSound(kSystemSoundID_Vibrate);
});
Tags bluetooth ios iphone objective-c