我的应用程序是作为服务实现的(在services.exe下运行)。 我正在添加一项新功能,需要在用户发送短信时收到通知。
我尝试使用IMAPIAdviseSink
,同时注册IMAPISession
和IMsgStore
,但我没有收到任何通知。
我可以看到的其他选项是创建短消息服务提供程序或实现IFormProviderEx
接口,但我不确定这可能会对SMS功能和用户体验产生影响。
我的应用程序是否可以可靠地获取在发件箱中创建的SMS的通知?
编辑:该应用程序是用本机C ++编写的。我查看了RIL和其他一些API,但我只能找到有关收到短信通知的信息。
好的,还有更多信息:注册IMAPIAdviseSink
的相同代码可以在独立应用中使用。它只是无法在服务中收到通知。
无论如何在我的服务中收到通知?或者我是否需要一个单独的流程来监控SMS事件并通知我的服务?
标记
答案 0 :(得分:2)
您无法使用服务中的IMAPIAdviseSink
。
您需要在单独的流程中使用它,并通知服务您感兴趣的事件。
答案 1 :(得分:0)
编辑:oops,错过了创建消息的用户,而不是传入。
您的目标是Windows Mobile 5 +吗?
我认为您正在寻找的是Microsoft.WindowsMobile.PocketOutlook.MessageInterception命名空间中的MessageInterceptor类。
以下是一些示例代码的链接: http://www.knowdotnet.com/articles/smartphonesms.html
Peter Foot在His In the Hand库中包含了一个类似的功能,它们可能允许你在早期版本的掌上电脑上做同样的事情。