拦截手机短信

// 根据短信的内容进行拦截在这个里面是拦截以"##"开头的短信
void CMySms::SMSRead()
{
TBuf8<2> matchTag;
_LIT8(KTag1,"##");
matchTag.Copy(KTag1);
iReadServer.Connect();
//Opens a socket by creating a new subsession to the socket server.
TInt err = iReadSocket.Open(iReadServer, KSMSAddrFamily, KSockDatagram, KSMSDatagramProtocol);
if(!err)
{
TSmsAddr smsAddr;
smsAddr.SetSmsAddrFamily(ESmsAddrMatchText);
smsAddr.SetTextMatch(KTag1);

TInt bindErr = iReadSocket.Bind(smsAddr);
if(!bindErr)
{
sbuf() = KSockSelectRead;
//Applies an asynchronous I/O control operation on a socket.
iReadSocket.Ioctl( KIOctlSelect,iStatus, &sbuf, KSOLSocket);
iRead=ETrue;
SetActive();
}
}
思路1: 使用socket方式先全部拦截下来,然后分析匹配改消息的From号码,当该号码不是你要拦截的号码时,通过
程序在收件箱中创建该消息,提示用户收到消息~
注意 :拦截短信的程序, 必须是开机自启动与安装自启动
 
//根据指定的号码拦截短信
思路:Socket收到短信之后,可以得到CSmsMessage,然后调用ParsedToFromAddress就可以得到发件人的号码,可以
根据这个号码来判断是否拦截。
需要注意的是:如果不是所要拦截的短信,就需要自己负责把该信息创建到“收件箱”中,否则就会丢失。

posted @ 2012-12-22 22:46  小金马  阅读(397)  评论(0编辑  收藏  举报