ivey, в коде есть такие строки:
Code:
void CSMSEngine::SocketListen()
{
_LIT(KTag, "");
TBuf8<2> matchTag;
matchTag.Copy(KTag);
TInt err = iSocket.Open(iSocketServer, KSMSAddrFamily, KSockDatagram, KSMSDatagramProtocol);
if(err==KErrNone)
{
TSmsAddr smsaddr;
smsaddr.SetSmsAddrFamily(ESmsAddrMatchText);
smsaddr.SetTextMatch(matchTag);
TInt BindErr = iSocket.Bind(smsaddr);
if(BindErr == KErrNone)
{
iPckgBuf() = KSockSelectRead;
iSocket.Ioctl( KIOctlSelect, iStatus, &iPckgBuf, KSOLSocket);
iRead=ETrue;
SetActive();
}
}
}
и if(BindErr == KErrNone) в случае работающего KMS не выполняется (BindErr=-11), но если _LIT(KTag, "") изменить, например, на _LIT(KTag, "##"), то для таких смс "##..." if(BindErr == KErrNone) выполяется, и всё работает. Почему так происходит?
Что касается других подходов для принятия смс, то программа SMS DeliveryReport Deleting.zip, предлагаемая для скачивания внизу страницы http://wiki.forum.nokia.com/index.php/SMS_Receiver отлично работает, и KMS не мешает.