繁体   English   中英

使iPhone在本地通知下震动

[英]Make iPhone vibrate on Local Notification

我目前正在开发具有VoIP功能的应用程序。 接到新电话时,我会发出自定义声音的通知。 如果手机处于震动状态,则默认情况下会震动一次。 但是,我想让手机在整个自定义声音(30秒)内振动。 有什么“内置”方式吗? 还是在收到VoIP Push时必须主动触发AppDelegate的振动? 如果从那里开始,我是否会遇到任何AppStore认证问题? (例如,Facebook Messenger和微信提供了此行为,因此必须有一种方法:))

在此先感谢拉斐尔

有两个看似相似的函数带有参数kSystemSoundID_Vibrate:

1) AudioServicesPlayAlertSound(kSystemSoundID_Vibrate);
2) AudioServicesPlaySystemSound(kSystemSoundID_Vibrate);

这两个功能都使iPhone震动。 但是,当您在不支持振动的设备上使用第一个功能时,它会发出蜂鸣声。 另一方面,第二个功能在不受支持的设备上不起作用。 因此,如果要连续振动设备,如常识所述,请使用功能2作为警报。首先,在构建阶段中将AudioToolbox框架AudioToolbox.framework添加到目标中。

然后,导入此头文件:

#import <AudioToolbox/AudioServices.h>

另外,如果您想每5秒振动一次(或其他任何时间),则可以执行此操作。

ViewController.h

NSTimer *timer //declare this globally (in header file)

ViewController.m

timer = [NSTimer scheduledTimerWithTimeInterval:YOURINTERVAL target:self selector:@selector(YOURSELECTOR) userInfo:nil repeats:YES];

-(void)YOURSELECTOR{
    AudioServicesPlaySystemSound(kSystemSoundID_Vibrate);
}

您可以通过调用[timer invalidate]来停止计时器(当用户接听电话时)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM