我知道周围有一些问题,我想我已经解决了所有问题。
我的运营商很友好,每个月提供 50 条免费短信。现在我想为自己做一个在后台运行的小计数器,并在我达到该限制时通知我。(是的,我知道已经有这方面的应用程序)。因此,我希望在发送 SMS/test msg 时通知服务。所以要走的路是ContentObserver
. 我设置了一个(2)并像这样注册它(1):
(1)
Uri URI = Uri.parse("content://sms/sent");
String[] columns = {"_id", "date"};
Cursor c = context.getContentResolver().query(URI, columns, "type=?", new String[]{"1"}, "_id DESC");
Observer observer = new Observer(context);
c.registerContentObserver(observer);
(2)
private class Observer extends ContentObserver {
Context context;
public Observer(Context context) {
super(null);
this.context = context;
}
@Override
public void onChange(boolean selfChange) {
super.onChange(selfChange);
// some code here
}
}
在无数次尝试搞乱之后,我不得不向自己承认,onChange()
当发送短信时,我完全无法做到唯一的成功。相反,它也会在收到短信时关闭。
那么有人可以帮我解决这个问题吗?当然,我可以将所有传出的 SMS 写入数据库并查询以了解当前的 SMS 是否已经存在,但这似乎是一个不整洁的解决方案,我想做不同的事情。
在此先感谢,
斯特夫