안녕하세요. 고수님들의 조언 기다립니다.

질문 : sms 송신 이벤트 발생을 알고 싶습니다.
수신은 브로드캐스트 리스버를 이용해서 알 수있습니다만, outgoing 의 경우는 잘 모르겠어서요.

검색 해보니까 ContentObserver 를 이용하면 DB의 변화를 알 수 있다고 해서 테스트 해봤는데 잘 안되네요.

    private ContentObserver observer = null;
    private final Uri inboxUri = Uri.parse("content://sms");
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        test();
    }
   
    private void test() {
        observer = new SMSObserver();
        getContentResolver().registerContentObserver(inboxUri, Boolean.FALSE, observer);
    }

    class SMSObserver extends ContentObserver {
        public SMSObserver() {
            super(new Handler());
        }
        @Override
        public void onChange(boolean selfChange) {
            Log.d("test_woori", "call onChange");
        }
    }
   
    public void onDestroy(){
        super.onDestroy();
        getContentResolver().unregisterContentObserver(observer);
    }

이렇게 했습니다.

uri에 주소록 주소를 넣어서 삽입 테스트 해보면 Log가 잘 찍히는데(=onChange가 구동된다.)
uri에 Uri.parse("content://sms"); Uri.parse("content://sms/inbox"); 를 넣으면 onChange가 구동이 안되네요.


혹시 좋은 방법 없을까요?