I am working on an ANdroid application.In my app I have to list all the conversations and i did that part.Each conversation is containing all sms to that number. So i have to differtiate inbox and sentsms from all sms.I know about the following api’s can use to find inbox and sent.
content://sms/inbox
content://sms/sent
But i don’t want to use this.I listed all sms by using the api
content://sms/
I tested with the columnindex’s type,address but it always gives the same result for inbox and outbox.And my sample code is
Uri SMS_INBOX = Uri.parse("content://sms");
c = getContentResolver().query(SMS_INBOX, null, "thread_id" + " = "
+ "3", null,
"date" + " ASC");
if(c.moveToFirst()){
count.add(c.getCount());
for(int j=0;j<c.getCount();j++){
System.out.println(c.getString(c.getColumnIndexOrThrow("body")).toString());
System.out.println("new person=="+c.getColumnIndex("person")+"type=="+c.getColumnIndexOrThrow("type"));
c.moveToNext();
}
}
c.close();
Please help me.
You can use ContentObserver here to track sent and received message,
Override
onChange()method ofContentObserverand get the sms type and work accordingly. Psuedo code can be as below.Registering
ContentObserverfor SMS,Where
MySMSObserverwill be your class extendingContentObserverwith Constructor having argument as Handler and Context,