title: ContentObserver on content://sms/ in 1.6+?
body: <p>I have a content observer that polls content://sms/ in android 1.5 so that I get notified of changes in the sms database and can react to them accordingly.</p>
  
  <p>However in 1.6 this doesn't work, has the uri been changed from content://sms/ to something else? </p>
  
  <p>I have seen content://mms-sms/ popping up in the logcat on my 1.6 device but I have tried that and it doesn't work.</p>
  
  <p>Here is my code</p>
  
  <pre><code>String url = "content://sms/"; 
          Uri uri = Uri.parse(url); 
          getContentResolver().registerContentObserver(uri, true, new MyContentObserver(handler)); 
  
  
  }
  
  class MyContentObserver extends ContentObserver { 
  
      public MyContentObserver(Handler handler) { 
  
          super(handler); 
  
      }
  
  @Override public boolean deliverSelfNotifications() { 
      return false; 
      }
  
  ContentValues values = new ContentValues();
  
  
  @Override public void onChange(boolean arg0) { 
      super.onChange(arg0);
  
       Log.v("SMS", "Notification on SMS observer"); 
       values.put("status", 5);
      Message msg = new Message(); 
      msg.obj = "xxxxxxxxxx";
      int threadId = 0;
      handler.sendMessage(msg);
  
      Uri uriSMSURI = Uri.parse("content://sms/");
      Cursor cur = getContentResolver().query(uriSMSURI, null, null,
                   null, null);
      cur.moveToNext();
      String protocol = cur.getString(cur.getColumnIndex("protocol"));
      Log.d("SMS", "SMS PROTOCOL = " + protocol); 
  
      if(protocol == null){
             Log.d("SMS", "SMS SEND"); 
             threadId = cur.getInt(cur.getColumnIndex("thread_id"));
             int status = cur.getInt(cur.getColumnIndex("status"));
             Log.d("SMS", "STATUS = " + status);
  
  
             if(status != 5){
             Uri updateUri = ContentUris.withAppendedId(Uri.parse("content://sms/conversations/"), threadId);
             int rows = getContentResolver().update(updateUri, values, null, null);
             Log.d("SMS", "ROWS UPDATED = " + rows);
             Log.d("SMS 2", "STATUS = " + status);
             }
  
  
             Log.d("SMS", "SMS SEND ID = " + threadId); 
  
             String textBody = cur.getString(cur.getColumnIndex("body"));
             String textAddress  = cur.getString(cur.getColumnIndex("address"));
             Log.d("SMS", "SMS SEND ADDRESS= " + textAddress); 
             Log.d("SMS", "SMS SEND BODY= " + textBody); 
  
  
      }
      else{
          Log.d("SMS", "SMS RECIEVE");  
  
      }
  
  }
  </code></pre>