我目前正在开发具有VoIP功能的应用程序。当有新的通话时,我会发出一个带有自定义声音的通知。 如果手机处于振动状态,则默认情况下会振动一次。但是我想让手机在整个自定义声音(30秒)内振动。 有没有"内置"办法?或者,当我收到VoIP推送时,我是否必须主动触发AppDelegate的振动?如果我从那里开始,我可以面对任何AppStore认证问题吗? (Facebook Messenger和WeChat提供了这种行为,所以必须有办法:))
提前致谢 圣拉斐尔
答案 0 :(得分:4)
有两个看似相似的函数采用参数kSystemSoundID_Vibrate:
PS C:\Users\josh.howard\Desktop\test> mv *.mp 'C:\Program Files\LANDesk\ManagementSuite\ldscan'
PS C:\Users\josh.howard\Desktop\test> cd $$
cd : Cannot find drive. A drive with the name ''C' does not exist.
At line:1 char:1
+ cd $$
+ ~~~~~
+ CategoryInfo : ObjectNotFound: ('C:String) [Set-Location], DriveNotFoundException
+ FullyQualifiedErrorId : DriveNotFound,Microsoft.PowerShell.Commands.SetLocationCommand
这两项功能都会震动iPhone。但是,当您在不支持振动的设备上使用第一个功能时,它会发出哔声。另一方面,第二个功能在不支持的设备上不执行任何操作。因此,如果您要持续振动设备,作为警报,常识说,请使用功能2。 首先,在Build Phases中将AudioToolbox框架AudioToolbox.framework添加到目标。
然后,导入此头文件:
1) AudioServicesPlayAlertSound(kSystemSoundID_Vibrate);
2) AudioServicesPlaySystemSound(kSystemSoundID_Vibrate);
另外,如果你想每5秒(或其他)振动一次,你可以这样做。
ViewController.h
#import <AudioToolbox/AudioServices.h>
ViewController.m
NSTimer *timer //declare this globally (in header file)
您可以通过拨打timer = [NSTimer scheduledTimerWithTimeInterval:YOURINTERVAL target:self selector:@selector(YOURSELECTOR) userInfo:nil repeats:YES];
-(void)YOURSELECTOR{
AudioServicesPlaySystemSound(kSystemSoundID_Vibrate);
}