如何在android中跟踪发送的消息(SMS)?

时间:2015-03-12 02:48:39

标签: android sms broadcastreceiver message android-broadcast

我正在开发一个Android应用程序,它具有检测应用程序发送给任何号码的任何消息(SMS)的功能之一。为此,我想跟踪发送的消息。我想检查邮件是否以及何时发送。我知道有一个用于SMS Recieved的广播接收器,它将在收到消息时自动调用该功能。是否有任何方法可以为SMS Sent执行此操作?我只需要一种技术来做到这一点。

1 个答案:

答案 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);