Я написал небольшое мобильное приложение для Windows, которое перехватывает входящие SMS и обрабатывает их.
После продажи около 30 этих приложений на Windows Marketplace я заметил проблему. Проблема (пока) возникает только на одном устройстве:
HTC HD2 .
Проблема довольно проста: я присоединяю свою программу к системному сервису под названием MessageInterceptor следующим образом:
private void RegisterInterceptor()
{
_msgInterceptor = new MessageInterceptor(InterceptionAction.Notify, true);
_msgInterceptor.MessageReceived += new MessageInterceptorEventHandler (_msgInterceptor_MessageReceived);
String appPath = Assembly.GetExecutingAssembly().GetName().CodeBase;
_msgInterceptor.EnableApplicationLauncher(_appID, appPath, "Program started by System");
}
void _msgInterceptor_MessageReceived(object sender, MessageInterceptorEventArgs e)
{
SmsMessage sm = e.Message as SmsMessage;
if (sm != null)
labelMsgReceived.Text = "SMS rcvd \"" + sm.Body + "\"";
else
labelMsgReceived.Text = "Unknown message rcvd";
}
Обычно это хорошо работает. Просто на этих HTC HD2 это событие никогда не вызывается.
У меня нет HTC HD2, поэтому я не могу самостоятельно протестировать устройство. До меня дошли слухи, что существует HD2, где он работает, как и ожидалось, но до сих пор не получил подтверждения об этом.
Я ищу обходной путь.
Есть ли на HD2 что-то, что отключает эту функцию?
Существуют ли другие способы перехвата SMS, которые я мог бы использовать?