周りにいくつかの質問があることは知っています。私はそれらすべてを経験してきたと思います。
私の携帯通信会社は親切にも、毎月 50 件の無料 SMS を提供してくれます。ここで、バックグラウンドで実行され、その制限に達するたびに通知される小さなカウンターを作成したいと思います。(はい、このためのアプリがすでにあることは承知しています)。したがって、SMS/テスト メッセージが送信されるたびにサービスに通知されるようにしたいと考えています。したがって、行く方法はContentObserver
. 私は1つを設定し(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 を DB に書き込み、クエリを実行して現在の SMS が既に存在するかどうかを調べることはできますが、それは面倒な解決策のように思われるため、別の方法で行いたいと考えています。
前もってありがとう、
ステフ