2008-11-05 3 views
14

iPhone 2.x 펌웨어에서 시스템 정의 이외의 기간 동안 iPhone을 진동시킬 수 있습니까?iPhone을 임의의 시간 동안 어떻게 진동 시키나요?

AudioServicesPlaySystemSound(kSystemSoundID_Vibrate); 

jailbreak 된 전화에서는 이전에 MeCCA.framework를 사용하여 다음 작업을 수행 할 수있었습니다.

http://pastie.org/94481

MeCCA_Vibrator *v = new MeCCA_Vibrator; 
v->activate(1); 
sleep(5); 
v->deactivate(); 

그러나 MeCCA.framework는 내 2.x iPhone에 없습니다.

답변

13

예, 이것은 과거 AppStore 거부를 야기한 것으로, 아마도 다시 ... 즉, 여전히 가능합니다.

내 자신의 질문에 대답, 그 방법은 다음과 같습니다 빌드 단계에서

추가 프레임 워크 CoreTelephony.

선언

extern void * _CTServerConnectionCreate(CFAllocatorRef, int (*)(void *, CFStringRef, CFDictionaryRef, void *), int *); 
extern int _CTServerConnectionSetVibratorState(int *, void *, int, int, float, float, float); 

static void* connection = nil; 
static int x = 0; 

초기화 :

connection = _CTServerConnectionCreate(kCFAllocatorDefault, &vibratecallback, &x); 

시작 진동 :

_CTServerConnectionSetVibratorState(&x, connection, 3, intensity, 0, 0, 0); 

정지 진동 :

_CTServerConnectionSetVibratorState(&x, connection, 0, 0, 0, 0, 0); 

이 코드는 입력 할 때 전화기를 윙윙 거리는 다운로드 가능한 응용 프로그램 인 HapticKeyboard에 있습니다. Cydia의 jailbroken 전화에서 사용할 수 있습니다. 도 참조 my jailbreaking experience)

다른 좋은 참조?

+0

개인적인 방법을 사용하기 때문에 앱을 거부하게됩니다. – pop850

4

SDK를 사용하여이를 수행 할 방법이 없습니다. 죄송합니다.

0

iOS 5는 맞춤 진동 모드를 구현했습니다. 따라서 어떤 경우에는 가변 진동이 허용됩니다. 유일한 것은 라이브러리가 그걸 다루는 지 (CoreTelephony가 아닌지), 그리고 그것이 개발자에게 열려 있는지 여부입니다.

+0

이 답변 확인 http://stackoverflow.com/a/13047464/129202 – Jonny