我正在开发一个Android应用程序,它具有检测应用程序发送给任何号码的任何消息(SMS)的功能之一。为此,我想跟踪发送的消息。我想检查邮件是否以及何时发送。我知道有一个用于SMS Recieved的广播接收器,它将在收到消息时自动调用该功能。是否有任何方法可以为SMS Sent执行此操作?我只需要一种技术来做到这一点。
答案 0 :(得分:1)
创建ContentObserver
public class InboxContentObserver extends ContentObserver {
ContentResolver cr;
Context ctxt;
public InboxContentObserver(Handler handler, Context ctxt) {
super(handler);
this.cr = ctxt.getContentResolver();
this.ctxt = ctxt;
}
@Override
public void onChange(boolean selfChange) {
super.onChange(selfChange);
Log.i(TAG, "Starting sms sync.");
new Thread(new Runnable() {
@Override
public void run() {
Cursor sms_sent_cursor = cr.query(Uri
.parse("content://sms"), null, "date > ?",
new String[]{LAST_SYNC_TIME}, "_id asc");
//....write your code here
}
}).start();
}
}
将LAST_SYNC_TIME替换为时间。
注册ContentObserver
new InboxContentObserver(new Handler(), getApplicationContext());
getContentResolver().registerContentObserver(Uri.parse("content://sms"), true, inboxContentObserver);