我想知道截取短信的选项有哪些。 我希望能够在收到短信时启动一些代码来处理短信。 如果有不止一种方法,有关这项技术是否可行以及我有哪些选择的建议将不胜感激。
由于 保罗
答案 0 :(得分:1)
由于您有这么多标签,因此很难分辨出您实际开发的操作系统。在iPhone上,如果没有补丁内核(越狱)的帮助,你就无法“窥探”短信。
答案 1 :(得分:1)
我只能说Symbian C ++。好消息 - 这是可能的。
如果要通知收件箱文件夹中的所有更改,可以使用此代码示例:
http://wiki.forum.nokia.com/index.php/CS001416_-_Listening_for_incoming_SMS_messages
或者在此示例中,您希望拦截发送到特定端口的消息或仅拦截与某些文本模式匹配的消息:
http://wiki.forum.nokia.com/index.php/SMS_Utilities_API
如果您不希望截取的消息出现在收件箱文件夹中,请使用第二个示例。
答案 2 :(得分:1)
在黑莓中,您可以将消息侦听器附加到特定端口。
try {
final MessageConnection conn = (MessageConnection) Connector.open("sms://:"+port);
conn.setMessageListener(new MessageListener() {
public void notifyIncomingMessage(MessageConnection mc) {
Message msg;
try {
msg = conn.receive();
} catch (InterruptedIOException ex) {
ex.printStackTrace();
} catch (IOException ex) {
ex.printStackTrace();
}
String senderAddress = msg.getAddress(); // Get info from message
if (msg instanceof TextMessage) {
String msgReceived = ((TextMessage) msg).getPayloadText();
// Do something with the message here
} else if (msg instanceof BinaryMessage) {
byte[] msgReceived = ((BinaryMessage) msg).getPayloadData();
// do something with the binary message here
}
}
});
} catch (IOException ex) {
ex.printStackTrace();
}
port = 0表示您可以侦听所有默认传入短信。
如果将消息侦听器附加到0以外的端口,则消息不会出现在收件箱中。 但如果您未能处理此消息,它将显示在收件箱中。
对于消息监听器有一些限制。
答案 3 :(得分:1)
对于Windows Mobile,使用MessageInterceptor class拦截短信非常容易。 MSDN even has an article covering how to use it
答案 4 :(得分:0)
在blakberry你也无法监视在标准端口上运行的短信。