在我的iPhone应用程序中我需要显示本地通知。我想知道是否可以设置屏幕上显示本地通知的时间间隔?例如,我想在20秒内显示本地通知。我知道播放声音时显示本地通知。但我也发现不可能重复本地通知声音:UILocalNotification repeat sound如何设置本地通知的持续时间
1
A
回答
1
没有本地通知到期的概念。你告诉他们开火,并由用户来解雇或与他们互动。
关于使声音持续20秒(除了事实上我会删除这个应用程序,如果它坚持播放20通知声音!),让我们说,例如,你当前的声音持续5秒,你可以复制粘贴在一个文件中发声4次,然后播放。我认为最大声音长度为30秒,但我无法找到支持这一点的文档。
0
您可以通过在每20秒后更改notify.firedate
来设置持续时间。
维持每20秒 - 您可以使用定时器
1
对不起,我的英语不好。 您只能使用NSCalendarUnit值重复本地通知。或重置他(通知),并设置新的旧通知在方法(应用程序:didReceiveLocalNotification :)工作。为此,您可以将自己的字典添加到通知对象userInfo值,并在稍后在此方法中收到通知时处理它。但是,当应用程序未运行时,此方法无法在后台模式下运行,或者未点击通知警报运行。希望这可以帮助。
0
如果它是关于重复的通知声音,那么你可以这样做:
UILocalNotification* notifyAlarm =[[UILocalNotification alloc]
init];
if (notifyAlarm)
{
notifyAlarm.timeZone = [NSTimeZone defaultTimeZone];
notifyAlarm.fireDate = nil;
[email protected]"phone.wav";
notifyAlarm.alertBody [email protected]"value";
[email protected]"value";
notifyAlarm.hasAction=YES;
[[UIApplication sharedApplication] presentLocalNotificationNow:notifyAlarm];
[notifyAlarm release];
UIApplicationState state = [[UIApplication sharedApplication] applicationState];
if (state == UIApplicationStateInactive || state==UIApplicationStateBackground) {
[self backgroundHandlerToPlayCallTone];
}
}
-(void)backgroundHandlerToPlayCallTone {
UIApplication* app = [UIApplication sharedApplication];
bgTaskToPlayCallTone = [app beginBackgroundTaskWithExpirationHandler:^{
dispatch_async(dispatch_get_main_queue(), ^{
[app endBackgroundTask:self->bgTaskToPlayCallTone];
self->bgTaskToPlayCallTone = UIBackgroundTaskInvalid;
});
}];
// Start the long-running task
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0),^{
//dispatch_async(dispatch_get_main_queue(), ^{
[self startCallTone];
[app endBackgroundTask:self->bgTaskToPlayCallTone];
self->bgTaskToPlayCallTone= UIBackgroundTaskInvalid;
});
}
-(void) startCallTone {
if(audioPlayer !=nil) {
[audioPlayer pause];
[audioPlayer release];
audioPlayer=nil;
}
NSURL *url = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"phone" ofType:@"wav"]];
audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:nil];
[audioPlayer setDelegate:self];
audioPlayer.numberOfLoops=10;
[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayAndRecord error:nil];
//[[AVAudioSession sharedInstance] setActive:YES withFlags:AVAudioSessionSetActiveFlags_NotifyOthersOnDeactivation error:nil];
UInt32 allowMixing = true;
AudioSessionSetProperty (kAudioSessionProperty_OtherMixableAudioShouldDuck, sizeof(allowMixing),&allowMixing);
[[AVAudioSession sharedInstance] setActive: YES error: nil];
[[UIApplication sharedApplication] beginReceivingRemoteControlEvents];
[audioPlayer play];
}
相关问题
- 1. 持续本地通知iOS
- 2. 本地通知,时间设置
- 3. 在willRotateToInterfaceOrientation通知中设置的持续时间值在哪里?
- 4. 如何以正确的方式设置通知声音持续时间android
- 5. 如何在特定时间设置本地通知?
- 6. 如何设置本地通知的alarmmanager?
- 7. 如何设置本机录像机的持续时间?
- 8. 如何设置Alexa唤醒时间的持续时间?
- 9. Android:通知声音持续时间
- 10. 如何在iCalendar中设置日期,时间和持续时间?
- 11. 设置AVMutableComposition的帧持续时间
- 12. 设置用户输入本地通知的时间
- 13. 持续通知
- 14. 本地化“持续时间”或毫秒
- 15. XSL 2.0 - 如何持续时间通知`PT11H22M`变为11.22
- 16. 如何为时间12PM和6PM的特定日期设置本地通知
- 17. 打字机和设置持续时间
- 18. 从AVPlayer设置MPNowPlayingInfoCenter持续时间?
- 19. 为UILongPressGesture设置最长持续时间?
- 20. 如何在JavaScript中设置计时器持续时间?
- 21. iPhone:如何设置重复每日/每小时本地通知?
- 22. 如何提取只包含持续时间的持续时间?
- 23. 如何使本地化的持续时间字符串?
- 24. 当前本地通知现在和时间表本地通知
- 25. 如何在FFMPEG中设置视频的持续时间?
- 26. 如何设置动画的持续时间和缓动属性()
- 27. 如何设置Ajax调用的最小持续时间?
- 28. 如何在icalender的ekevent中设置事件持续时间?
- 29. 如何设置UIPickerView的动画持续时间?
- 30. 如何在UI中设置游戏的持续时间?
他实际上可能使一个短的蜂鸣声与无声19secs如果这是真的,该通知停留在屏幕只要声音正在播放... –
问题是,这不是真正的Engin。它一直保持在屏幕上,直到用户与其交互为止,这可能是永远的。 –