14

在 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

4 回答 4

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 上的越狱手机。另见我的越狱经历

还有其他好的参考吗?

于 2008-11-11T17:45:26.450 回答
4

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

于 2008-11-05T22:35:51.157 回答
4

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

于 2008-11-05T22:44:29.767 回答
0

iOS 5 实现了自定义振动模式。所以在某些情况下可变振动是可以接受的。唯一的事情是不知道什么库处理这个(很肯定不是CoreTelephony)以及它是否对开发人员开放。

于 2012-01-20T04:06:31.427 回答