MessageInterceptor не вызывается в HTC HD2 - PullRequest
1 голос
/ 26 января 2010

Я написал небольшое мобильное приложение для 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, которые я мог бы использовать?

Ответы [ 3 ]

1 голос
/ 26 октября 2010

Насколько я понимаю, для этого есть два разных исправления.

  1. Вы строите свой собственный MapiRule.dll. Это хороший пост, как это сделать. http://minhdanh2002.blogspot.com/2010/07/intercept-incoming-sms-message-on-htc.html

  2. Если указанное выше исправление, упомянутое Натаном, не решит его. Которого не было на нашем телефоне HTC HD mini T5555. Вы можете использовать это reg hack . Что делает следующие изменения рег:

HKLM \ services \ MSG и переименуйте "MessagingService.dll" в любую другую. Затем перейдите в раздел HKLM \ system \ inbox \ externalaccounts и измените SMS-сообщения на другое. После этого вам придется перезагрузить компьютер, чтобы запустить его.

1 голос
/ 28 января 2010

Может быть что-то делать с HTC Sense, который эффективно заменяет большие полосы стандартного пользовательского интерфейса, включая приложение SMS по умолчанию - это может быть случай, когда PocketOutlook, который обычно запускает перехватчики сообщений, даже не загружается.

Я протестировал, используя пример кода формы MSDN, и он не работает на HD2, который соответствует тому, что вы видите.

0 голосов
/ 03 марта 2010

в некоторых телефонах этот или аналогичный ключ реестра, установленный на 1, меняется на 0, что позволяет перехватчику работать

HKEY_LOCAL_MACHINE \ Software \ Microsoft \ Входящие \ Svc \ SMS \ правил: {1000BC1C-F4A3-4210-B197-4AEBF2CEE6F5}

установлен в 1, по умолчанию перехват не работает установить в 0 и перехват работает

...