在Symbian S60v3中禁用所有传入消息的通知

时间:2009-10-20 17:22:57

标签: sdk symbian notifications messages

当我的symbian S60v3手机上有消息到达时,如何以编程方式禁用这些通知:

  1. 留言音(我想我有那个)
  2. led闪烁
  3. 手机振动
  4. 屏幕亮起
  5. 消息图标(我想我也得到了这个)
  6. 我可以使用什么SDK?我更喜欢使用Python,但我不认为Symbian的Python SDK太完整了,所以我想我必须使用C ++

    非常感谢任何帮助,谢谢

2 个答案:

答案 0 :(得分:2)

我设法通过创建MMsvSessionObserver并在HandleSessionEventL中执行以下操作来禁用所有通知:

TMsvId* entryId = STATIC_CAST(TMsvId*, aArg2);

CMsvEntry* msvEntry = myMsvSession->GetEntryL(entryId); 
TMsvEntry entry = msvEntry->Entry();

entry.SetNew(EFalse);
entry.SetUnread(EFalse);
entry.SetVisible(EFalse);

msvEntry->ChangeL(entry);

答案 1 :(得分:1)

坏消息是,您不能依赖于使用消息中心API来监视消息,以便在用户通知发生之前处理它们。通常你可以足够快地处理它们,但是在具有更快处理器的手机上,用户有时会看到一些通知 - 要么发出哔哔声,要么屏幕亮起等等。我曾经使用这种方法,然后在N95手机上仍然当短信到达时蜂鸣。

好消息是,如果您只关注SMS消息,那么有一种更可靠的拦截方式,以便用户永远不会看到任何通知。您可以使用套接字在消息中心获取消息之前接收消息。

这里有一个有用的例子: http://symbian.devtricks.mobi/tricks/silent_receiving_of_sms_messages/

我将代码切换到类似的东西,发现它工作得更好。据我所知,没有办法从Python中做到这一点。