2010-01-26 2 views
1

들어오는 SMS를 가로 채고 일부 처리를 수행하는 소형 Windows 모바일 응용 프로그램을 작성했습니다.HTC HD2에서 MessageInterceptor가 호출되지 않았습니다.

Windows 마켓 플레이스에서 약 30 개의 앱을 판매 한 후 문제가 있음을 확인했습니다. 문제는 (지금까지) 한 장치에서만 발생합니다 :
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가 존재하지만, 지금까지 나는 이것에 대해 아무런 확신을 갖지 못했습니다.

해결 방법이 있습니다.
이 기능을 사용하지 않는 무언가가 HD2에 있습니까?
사용할 수있는 SMS를 가로채는 다른 방법이 있습니까?

답변

1

기본 SMS 응용 프로그램을 포함하여 표준 UI의 큰 부분을 효과적으로 대체하는 HTC Sense와 관련이있을 수 있습니다. 일반적으로 메시지 인터셉터를 실행하는 PocketOutlook이로드되지 않는 경우 일 수 있습니다.

예를 들어 MSDN 코드 예제를 사용하여 테스트했는데 사용자가보고있는 것과 일치하는 HD2에서 작동하지 않는 것으로 보입니다.

+0

Dang. HTC는 시스템 기능을 해치고 앱 개발자는 가격을 지불해야합니다. ! nice – Sam

0

특정 휴대폰이이 또는 유사한 레지스트리 키는 인터셉터가

HKEY_LOCAL_MACHINE \ SOFTWARE \ 마이크로 소프트 \받은 편지함 \ SVC \ SMS의 \ 규칙을 작동 할 수 있도록 한 변화 0으로 설정 : {1000BC1C-F4A3-4210-B197 -4AEBF2CEE6F5} 기본 절편 1에

세트는 0으로 세트를 작동하지 않고 절편 나는이 두 가지 수정 사항가 모여 무엇

+0

실제로 HTC 지원팀은 HD2에서 HTC Sense가이 기능을 해독했다고 인정했습니다. 수정 작업중인 척 ... – Sam

1

작동합니다.

  1. 사용자 고유의 MapiRule.dll을 빌드합니다. 이것은 좋은 게시 방법입니다. http://minhdanh2002.blogspot.com/2010/07/intercept-incoming-sms-message-on-htc.html

  2. Nathan이 언급 한 위의 규칙 수정 사항이 해결되지 않으면 HTC HD 미니 T5555 전화기에는 없었던 것입니다. reg hack을 사용할 수 있습니다. 아래의 reg는 무엇을 변경합니까?

HKLM \ services \ MSG로 변경하고 "MessagingService.dll"의 이름을 다른 것으로 변경합니다. 그런 다음 HKLM \ system \ inbox \ externalaccounts로 이동하여 SMS를 다른 것으로 바꿉니다. 이 작업을 마친 후에는 다시 시작해야합니다.

관련 문제