我知道周围有一些问题,我想我已经完成了所有这些问题。
我的运营商非常友好,每月提供50条免费短信。现在我想让自己成为一个在后台运行的小计数器,并在我达到这个限制时通知我。 (是的,我我知道已经有了这个应用程序)。因此,我希望在短信/测试消息发送时通知服务。所以要走的路是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()
关闭。相反,它也会在传入的短信中消失。
那么有人可以帮我解决这个问题吗?当然,我可以将所有传出的短信写入数据库并查询以查明当前的短信是否已经存在,但这似乎是一个不整洁的解决方案,我想做的不同。
提前致谢,
steff