2008-11-05 28 views
14

iPhone 2.x belleniminde, iPhone'u sistem tanımlı olandan başka bir süre için titreştirebilirsiniz:İPhone'u keyfi süreler boyunca nasıl titreştiriyorsunuz?

AudioServicesPlaySystemSound(kSystemSoundID_Vibrate); 

Jailbroken telefonlarda, bunu yapmak için MeCCA.framework kullanabilmekteydiniz:

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

Ancak MeCCA.framework benim 2.x iPhone'umda mevcut değil.

cevap

13

Evet, bu, geçmişte AppStore reddetmelerine neden olan ve büyük olasılıkla yine ... olacak bir şeydir.

Kendi sorumu yanıtlayan burada bunu nasıl açıklanmıştır: Yapı Aşamada

Ekleme çerçeve CoreTelephony.

beyan:

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; 

initialize:

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

başlangıç ​​titreşim:

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

durdurma titreşim:

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

Bu kod, telefonunuzu yazdığınız sırada vızıldayan indirilebilir bir uygulama olan HapticKeyboard'dan alınmıştır. Cydia'daki jailbroken telefonları için kullanılabilir. Ayrıca bkz. my jailbreaking experience)

Diğer iyi referanslar?

+0

Bu, uygulamanızın reddedilmesine neden olur - çünkü özel yöntemler kullanır. – pop850

4

Bunu SDK'yı kullanarak yapmanın bir yolu yok, üzgünüm.

0

iOS 5, Özel Titreşim modunu uygulamıştır. Yani bazı durumlarda değişken titreşim kabul edilebilir. Tek şey, kütüphanenin bununla uğraştığı (oldukça emin CoreTelephony) ve eğer geliştiriciler için açıksa bilinmemektedir.

+0

Bu cevabı kontrol edin: http://stackoverflow.com/a/13047464/129202 – Jonny

İlgili konular