繁体   English   中英

UILocalNotification无效... iPhone 4 iOS 4.3无振动

[英]UILocalNotification Not Working … No Vibration on iPhone 4 iOS 4.3

我会写尽可能多的写在这里,但标题几乎说了一切。 我在几种不同的情况下测试过它:

1)打开电话,关闭静音模式,打开应用程序,打开前景,屏幕解锁

我知道这是通过app delegate的didReceiveLocalNotification进行的,除了我在didReceiveLocalNotification下包含的处理代码之外,没有预料到声音或振动。 实际调用的处理代码

        NSURL *Sound   = [[NSBundle mainBundle] URLForResource: self.currentSoundPVC
                                    withExtension: @"caf"];
        // Create a system sound object representing the sound file.
        AudioServicesCreateSystemSoundID (soundFileURLRef,&soundFileObject);
        AudioServicesPlayAlertSound (soundFileObject);

这实际上有效! 它播放声音并同时振动手机。

2)手机打开,静音模式关闭,应用程序打开,在后台,屏幕解锁

现在,我使用以下代码在app delegate的applicationDidEnterBackground中设置我的uilocalnotification闹钟

NSString *Sound   = [self.currentSoundPVC stringByAppendingString:@".caf"];
UILocalNotification* alarm = [[[UILocalNotification alloc] init] autorelease];
alarm.fireDate = [NSDate dateWithTimeIntervalSinceNow:seconds];
[alarm setSoundName:Sound];
[[UIApplication sharedApplication] scheduleLocalNotification:alarm];

这只是部分有效! 声音播放但没有振动! 现在,我认为这是一个错误,因为我引用苹果开发者网站,

http://developer.apple.com/library/ios/#documentation/iphone/conceptual/iphoneosprogrammingguide/BackgroundExecution/BackgroundExecution.html ,安排本地通知的发送部分:

“当发送通知并播放声音时,系统还会在支持它的设备上触发振动。”

现在,显然这不是我的iPhone的情况,显然模拟器不振动,所以我无法测试这一点,并希望在开发人员社区中解决这个问题!

3)手机打开,静音模式关闭,应用程序开启,前景,屏幕锁定

与#2相同

4)手机打开,静音模式关闭,应用程序打开,在后台,屏幕锁定

与#2相同

5)手机打开,静音模式关闭,app关闭(后台进程删除)

与#2相同,因为uilocalnotifications从未被取消,因此iOS仍然认为它们是有效的。

6)手机开启,静音模式开启,应用开启,背景,屏幕解锁

没有声音,没有振动,没有! 这糟透了! 我希望像往常一样,苹果会想出一些开箱即用的东西!

这些是选项和效果(都假设音量设置为一些合理的值):

选项1:

组态:

  • [开发者控制]在UILocalNotification中设置的有效声音名称=否
  • [用户控制]应用程序的通知中心设置:声音= N / A.
  • [用户控制]静音模式(iPhone侧面开关)= N / A.

行为:

  • 声音播放时发出通知=否
  • 带通知的振动=否

选项2:

组态:

  • 在UILocalNotification中设置的有效声音名称=是
  • 应用的通知中心设置:声音=关闭
  • 静音模式(iPhone侧面开关)= N / A.

行为:

  • 声音播放时发出通知=否
  • 带通知的振动=否

选项3:

组态:

  • 在UILocalNotification中设置的有效声音名称=是
  • 应用程序的通知中心设置:Sound = On
  • 静音模式(iPhone侧面开启)=否(未选中)

行为:

  • 声音播放时发出通知=是
  • 带通知的振动=否

选项4:

组态:

  • 在UILocalNotification中设置的有效声音名称=是
  • 应用程序的通知中心设置:Sound = On
  • 静音模式(在iPhone侧面开关)=是(已选择)

行为:

  • 声音播放时发出通知=否
  • 带通知的振动=是

以下是声音和振动:

        // Create a new notification
        UILocalNotification * notif = [[[UILocalNotification alloc] init] autorelease];
        if (notif)
        {
            notif.repeatInterval    = 0;
            notif.alertBody         = @"NOTIFICATION!!"];
            notif.soundName         = @"sound.caf";             
            notif.alertAction       = NSLocalizedString(@"View", @"View");

            [[UIApplication sharedApplication]  presentLocalNotificationNow:notif];
        }

我知道这可能听起来有点傻,但你可能在你的iPhone设置中关闭振动了吗?

很抱歉发布此答案,但我的评论太长,无法在您的评论下发布。 所以我只是把一个片段放在那里,剩下的就在这里。 这是对万万的答案的回复。

嗨Tony,感谢您的意见,但我不确定您更改的内容会产生什么影响。 如果我正确注意到您更改了以下项目:

1)scheduleLocalNotification - > presentLocalNotificationNow

2)明确设置UILN repeatInterval

3)明确设置UILN alertBody

4)明确设置UILN alertAction

除了这四个变化,我没有看到任何其他东西。 您认为哪些因果变化会对您产生预期效果。

大声笑......没必要觉得这是一个愚蠢的问题。 虽然,我在帖子中提到“静音模式开/关”,但我没有说明这意味着什么。 我特别谈到手机侧面的开关。 我甚至没有检查iPhone的设置! 哈哈! 所以,这是一个很好的问题! 然而不幸的是,在OrigPost的情景#1中它没有被关闭并且它已成功振动。

暂无
暂无

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

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