Я знаю, что вокруг есть несколько вопросов, и я, наверное, прошел через все.
Мой оператор достаточно любезен, чтобы предлагать 50 бесплатных SMS каждый месяц.Теперь я хотел бы сделать небольшой счетчик, который работает в фоновом режиме и уведомляет меня, когда я достигаю этого предела.(Да, я знаю, что для этого уже будут приложения).Поэтому я хотел бы, чтобы сервис получал уведомления, когда SMS / тестовое сообщение отправлено отправлено .Таким образом, путь будет 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.
Так кто-нибудь может мне помочь в этом?Конечно, я мог бы записать все исходящие SMS в БД и запросить, чтобы узнать, существует ли текущее SMS, но это выглядит неопрятным решением, и я хотел бы поступить иначе.
Заранее спасибо,
Steff