2008-11-05 23 views
14

Trong firmware 2.x iPhone, bạn có thể làm rung iPhone cho thời lượng khác so với hệ thống xác định:Làm thế nào để bạn làm cho iPhone rung động với thời lượng tùy ý?

AudioServicesPlaySystemSound(kSystemSoundID_Vibrate); 

Trong điện thoại jailbroken, bạn sử dụng để có thể sử dụng MeCCA.framework để làm điều này :

http://pastie.org/94481

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

Nhưng MeCCA.framework không tồn tại trên 2.x của tôi iPhone.

Trả lời

13

Vâng, đây là điều đã gây ra sự từ chối AppStore trong quá khứ và có thể sẽ lại ... có nghĩa là vẫn có thể thực hiện được.

Trả lời câu hỏi của riêng tôi, dưới đây là cách thực hiện:

Thêm khung CoreTelephony trong giai đoạn xây dựng.

khai báo:

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); 

bắt đầu rung:

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

dừng rung:

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

Mã này là từ HapticKeyboard, một ứng dụng có thể tải xuống để buzz điện thoại khi bạn nhập. Nó có sẵn cho các điện thoại jailbroken trên Cydia. Xem thêm my jailbreaking experience)

Bất kỳ tài liệu tham khảo tốt nào khác?

+0

Điều này sẽ khiến ứng dụng của bạn bị từ chối - vì ứng dụng này sử dụng các phương pháp riêng tư. – pop850

4

Không có cách nào để thực hiện việc này bằng SDK, xin lỗi.

0

iOS 5 đã triển khai chế độ Rung tùy chỉnh. Vì vậy, trong một số trường hợp, độ rung dao động có thể chấp nhận được. Điều duy nhất là không biết những gì thư viện đề với điều đó (chắc chắn không phải CoreTelephony) và nếu nó được mở cho các nhà phát triển. Tuy nhiên,

+0

Kiểm tra câu trả lời này ra http://stackoverflow.com/a/13047464/129202 – Jonny

Các vấn đề liên quan