.NET CF MessageInterceptor class fails to intercept incoming messages
If you’re writing an SMS application that intercepts incoming text messages using the MessageInterceptor class and observe that your application does not work on a particular phone, below is a list of things to check:
1. Most new HTC Phones will choose HTC Messages (part of HTC Sense), and not Pocket Outlook, as the default messaging spplication. HTC Message does not implement the MessageInterceptor class. To overcome this problem, you’ll need to set Pocket Outlook as the default messaging application by using this patch.
Note: You may not be able to send/receive MMS after installing the patch. To use MMS, please install the Arcsoft MMS client.
Update (19 July 2010): I have found a way to intercept incoming messages on affected HTC phones without installing any patch by using MAPI Rule. For more information, see this post.
2. Some phones have a specific registry key to manually enable MessageInterceptor. Check HKEY_LOCAL_MACHINESoftwareMicrosoftInboxSvcSMSRules and look for a key branch that looks like a GUID, e.g. {1000BC1C-F4A3-4210-B197-4AEBF2CEE6F5} Open that key, set the default value to 0 and reboot the phone to allow message interception.
3. You may have conflicting message interceptor rules left-over from other applications. To fix this, go to HKey_Local_MachineSoftwareMicrosoftInboxRules, delete all sub-entries and reboot the phone. To avoid this from happening in the future, always call Dispose() on a MessageInterceptor when you finish using it or when your application closes.
Reference:
2. http://stackoverflow.com/questions/2138650/messageinterceptor-is-not-called-on-htc-hd2