你是如何让iPhone在任意时间内振动的?

时间:2008-11-05 16:37:33

标签: iphone vibrate

在iPhone 2.x固件中,您是否可以让iPhone在系统定义以外的时间内振动:

AudioServicesPlaySystemSound(kSystemSoundID_Vibrate);

在越狱手机中,您曾经可以使用MeCCA.framework来执行此操作:

http://pastie.org/94481

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

但我的2.x iPhone上不存在MeCCA.framework。

4 个答案:

答案 0 :(得分:13)

是的,这是过去引起AppStore拒绝的问题,可能会再次......这意味着它仍然可以做到。

回答我自己的问题,这是怎么做的:

在Build Phases中添加框架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上的越狱手机。另见my jailbreaking experience

还有其他好的参考资料吗?

答案 1 :(得分:4)

使用SDK无法做到这一点,抱歉。

答案 2 :(得分:4)

使用SDK不仅无法做到这一点,而且它也是Unofficial App Store Rejection Criteria中的第一项。

答案 3 :(得分:0)

iOS 5已实施自定义振动模式。因此在某些情况下可变振动是可以接受的唯一不知道的是什么库处理它(非常肯定不是CoreTelephony)以及它是否对开发者开放。