などに登録ContentObserver
するサービスを開始しますSMS inbox
smsObserver = new SmsObserver(new Handler());
getContentResolver().registerContentObserver(Uri.parse("content://sms/inbox"), true, smsObserver);
これがクラスです。プロバイダーにいつ変更が加えられたか知りたいだけですが、onChange
メソッドへのコールバックを取得できません
private class SmsObserver extends ContentObserver{
public SmsObserver(Handler handler) {
super(handler);
}
@Override
public void onChange(boolean selfChange){
super.onChange(selfChange);
Cursor c = getContentResolver().query(Uri.parse("content://sms/inbox"),
new String[] {"thread_id"},"address" + "=" + from,null,null);
if(c != null && c.moveToLast()){
long id = c.getLong(0);
Log.d("ID", c.getString(0));
}
c.close();
}
}
また、Uri のオブザーバーを登録するcontent://mms-sms/conversations
と、それが機能し、これから SmsObserver クラスにすべてを行った方法をコピーしたので、何が問題なのかわかりません。にオブザーバーを設定できませんcontent://sms/inbox
か?