主要调用AudioServicesPlaySystemSoundWithVibration这个private api,传入一个含有时间和强度的dictionary即可。
注意要引入AudioToolbox.framework。在iOS6,iOS7上测试通过。
private api有风险,注意不要在上架app中使用。
1 NSMutableDictionary* dict = [NSMutableDictionary dictionary]; 2 NSMutableArray* arr = [NSMutableArray array ]; 3 4 [arr addObject:[NSNumber numberWithBool:YES]]; //vibrate for 2000ms 5 [arr addObject:[NSNumber numberWithInt:2000]]; 6 7 8 [dict setObject:arr forKey:@"VibePattern"]; 9 [dict setObject:[NSNumber numberWithFloat:0.3] forKey:@"Intensity"]; 10 11 AudioServicesPlaySystemSoundWithVibration(4095,nil,_buff);
写了一个封装demo
.h
1 // 2 // YANGZShaking.h 3 // shaking 4 // 5 // Created by mmm on 14-1-11. 6 // Copyright (c) 2014年 yangz. All rights reserved. 7 // 8 9 #import <Foundation/Foundation.h> 10 11 @interface YANGZVibePattern : NSObject 12 + (YANGZVibePattern *)PatternWithIntensity:(float)intensity time:(NSUInteger)time isVibe:(BOOL)isVibe; 13 @property (nonatomic) bool isV; 14 @property (nonatomic)