我目前正在開發一個具有VoIP功能的應用程序。當一個新的電話進來時,我發出一個自定義聲音的通知。 如果手機在振動,默認情況下會振動一次。不過,我希望在整個自定義聲音(30秒)期間使手機振動。 有沒有「內置」的方式?或者,當我收到我的VoIP Push時,我是否必須主動觸發來自AppDelegate的振動?我可以面對任何AppStore認證問題嗎? (Facebook的Messenger和微信提供這種行爲,例如,所以必須有一個方法:))提前使iPhone在本地通知上振動
感謝 拉斐爾
我目前正在開發一個具有VoIP功能的應用程序。當一個新的電話進來時,我發出一個自定義聲音的通知。 如果手機在振動,默認情況下會振動一次。不過,我希望在整個自定義聲音(30秒)期間使手機振動。 有沒有「內置」的方式?或者,當我收到我的VoIP Push時,我是否必須主動觸發來自AppDelegate的振動?我可以面對任何AppStore認證問題嗎? (Facebook的Messenger和微信提供這種行爲,例如,所以必須有一個方法:))提前使iPhone在本地通知上振動
感謝 拉斐爾
有跡象表明,需要一個參數兩個看似相似的功能kSystemSoundID_Vibrate:
1) AudioServicesPlayAlertSound(kSystemSoundID_Vibrate);
2) AudioServicesPlaySystemSound(kSystemSoundID_Vibrate);
這兩個功能都會震動iPhone。但是,當您在不支持振動的設備上使用第一個功能時,會發出嘟嘟聲。另一方面,第二個功能對不支持的設備不起作用。因此,如果您要持續振動設備,請按照常識說的使用功能2. 首先,在Build Phases中將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]
這個計時器會在後臺工作嗎? –
30秒振動停止定時器(當用戶接聽電話)?你想被用戶討厭嗎? – vikingosegundo
@vikingosegundo我認爲當用戶接聽電話時,振動將會結束,就像每個通話應用程序 –
一樣,所以您只會被能夠接聽電話的用戶所厭惡。很公平。 – vikingosegundo