2011-09-05 6 views
3

내 응용 프로그램에서 몇 초 동안 진동하여 사용자에게 어떤 일이 발생했음을 알릴 수 있기를 원합니다.iPhone - 진동 5 회?

나는 다음과 같은 코드를 사용하고 있습니다 :

AudioServicesPlaySystemSound(kSystemSoundID_Vibrate); 

을 그리고 한 번 진동합니다 같이이 작동합니다.

그러나 나는 계속해서 5 번 진동 할 수 있기를 원한다. 나는 한 번 진동 할 수 있기를 원한다. 멈추고, 다시 진동하고, 멈추고, 멈추고, 애플 스토어를 통해 가능하고 수용 가능하다. ?

+1

당신이 아이폰 OS 개발자 프로그램에 등록하는 경우, 당신은 몇 가지를보고 할 수 있습니다 향후 OS 버전에서 사용할 수있는 베타 버전의 새로운 API 또는 접근성에 관한 WWDC 2011 비디오를 살펴보십시오. – hotpaw2

답변

9

현재 휴대 전화를 진동시킬 수있는 유일한 방법입니다. 하지만 당신은 그 기능을 5 번이나 부를 수 있습니다!

+0

그리고 사과가 여러 번 연속으로 전화를 걸면 문제가 발생하지 않습니까? –

+0

마사지 앱에서와 같이 전화를 지속적으로 진동시키는 방법을 알고 계십니까? 감사합니다 –

+6

'while (true) {AudioServicesPlaySystemSound (kSystemSoundID_Vibrate); }; ' ;) –

9

다음과 같이 할 수 있습니다.

정수를 만듭니다. 1 초 타이머를 만듭니다. 매 1 초마다 함수를 실행하고 정수를 1 씩 증가시키면서 진동 시키십시오. 정수가 5가되면 타이머가 종료됩니다.

이렇게하면 진동 사이에 약간의 공간을 두어 원하는만큼 길게 유지할 수 있습니다. 당신의 .H 파일에

당신의하는 .m 파일에
int vibrateCount; 
NSTimer * vibrateTimer; 

@property(nonatomic,assign)int vibrateCount; 
@property (nonatomic, retain)NSTimer * vibrateTimer; 

@synthesize vibrateCount,vibrateTimer; 

//in viewDidLoad 
vibrateCount = 0; 

//put this where ever you want to start your vibrating 
vibrateTimer = [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(vibratePhone) userInfo:nil repeats:YES]; 


-(void)vibratePhone { 
vibrateCount = vibrateCount +1; 

if(vibrateCount <= 5) { 
AudioServicesPlaySystemSound(kSystemSoundID_Vibrate); 
} 
else { 

     //vibrated 5 times already kill timer and stop vibrating 
     [vibrateTimer invalidate]; 

    } 
}