首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >UILocalNotification不工作...iPhone 4 iOS 4.3上无振动

UILocalNotification不工作...iPhone 4 iOS 4.3上无振动
EN

Stack Overflow用户
提问于 2011-03-27 01:08:05
回答 3查看 6.5K关注 0票数 4

我会在这里写出我能写的东西,但标题几乎说明了一切。我已经在几种不同的情况下进行了测试:

1)手机开机、静音模式关闭、应用开机、前台、屏幕解锁

我知道这通过了app delegate的didReceiveLocalNotification,除了我在didReceiveLocalNotification下包含的处理代码之外,并不期望有声音或振动。实际调用的处理代码

代码语言:javascript
运行
复制
        NSURL *Sound   = [[NSBundle mainBundle] URLForResource: self.currentSoundPVC
                                    withExtension: @"caf"];
        // Create a system sound object representing the sound file.
        AudioServicesCreateSystemSoundID (soundFileURLRef,&soundFileObject);
        AudioServicesPlayAlertSound (soundFileObject);

这实际上是有效的!它可以同时播放声音和震动手机。

2)手机开机、静音模式关闭、应用开机、后台、屏幕解锁

现在,我使用以下代码在应用程序委托的applicationDidEnterBackground中设置了我的uilocalnotification警报

代码语言:javascript
运行
复制
NSString *Sound   = [self.currentSoundPVC stringByAppendingString:@".caf"];
UILocalNotification* alarm = [[[UILocalNotification alloc] init] autorelease];
alarm.fireDate = [NSDate dateWithTimeIntervalSinceNow:seconds];
[alarm setSoundName:Sound];
[[UIApplication sharedApplication] scheduleLocalNotification:alarm];

这只起到了部分作用!声音可以播放,但没有振动!现在,我认为这是一个bug,因为我引用了苹果开发者网站上的话,

http://developer.apple.com/library/ios/#documentation/iphone/conceptual/iphoneosprogrammingguide/BackgroundExecution/BackgroundExecution.html,Scheduling the Delivery of Local Notification部分:

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

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

3)手机开机、静音模式关闭、应用开机、前台、锁屏

与#2相同

4)手机开机、静音模式关闭、应用开机、后台、锁屏

与#2相同

5)手机开机、静音模式关闭、应用关闭(后台进程删除)

与#2相同,因为because通知从未被取消,所以iOS仍然认为它们是有效的。

6)手机开机、静音模式开启、应用开启、后台、屏幕解锁

没有声音,没有震动,什么都没有!这太糟糕了!我本希望苹果能像往常一样直接拿出开箱即用的东西!

EN

回答 3

Stack Overflow用户

发布于 2014-06-19 23:24:44

以下是选项和效果(都假设音量设置为某个合理的值):

选项1:

配置:

  • Developer控制的在UILocalNotification中设置的有效声音名称=无
  • 用户控制的应用程序通知中心设置:声音=不适用
  • 用户控制的静音模式(打开iPhone的一侧)=不适用

行为:

通知时播放

  • 声音=无
  • 振动时通知=无

选项2:

配置:

在应用程序的Yes

  • Notification中心设置中设置的
  • 有效声音名称: UILocalNotification =关闭
  • 静音模式(打开iPhone侧)= N/A

行为:

通知时播放

  • 声音=无
  • 振动时通知=无

选项3:

配置:

在应用程序的Yes

  • Notification中心设置中设置的
  • 有效声音名称: UILocalNotification =打开
  • 静音模式(打开iPhone的一侧)=否(未选中)

行为:

通知时播放

  • 声音=是
  • 振动时通知= No

选项4:

配置:

在应用程序的Yes

  • Notification中心设置中设置的
  • 有效声音名称: UILocalNotification =打开
  • 静音模式(打开iPhone的一侧)=是(选择)

行为:

通知时播放

  • 声音=无
  • 振动时通知=是
票数 3
EN

Stack Overflow用户

发布于 2011-03-27 06:27:28

下面的代码通过声音和振动工作:

代码语言:javascript
运行
复制
        // 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设置中关闭了震动?

票数 2
EN

Stack Overflow用户

发布于 2011-03-28 10:27:12

很抱歉将此作为答案发布,但我的评论太长了,无法在您的评论下面发布。所以我只是把一个片段放在这里,其余的放在这里。这是对托尼·米勒的回答的回复。

你好,托尼,谢谢你的意见,但是我不确定你所做的改变对哪件事有影响。如果我没有记错的话,您更改了以下项目:

1) scheduleLocalNotification --> presentLocalNotificationNow

2)显式设置UILN repeatInterval

3)显式设置UILN alertBody

4)显式设置UILN alertAction

除了这四个变化之外,我看不到其他任何变化。你认为这些因果变化中的哪一个对你有预期的效果。

Lol...no需要感觉这是一个愚蠢的问题。虽然,我在我的帖子中提到了“静默模式开/关”,但我没有具体说明这是什么意思。我特别说的是电话边上的开关。我甚至没有想过要检查iPhone设置!哈哈!所以,这是一个很好的问题!然而,不幸的是,它并没有关闭,在OrigPost的场景#1中,它成功地振动了。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5443848

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档