Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

ContentObserver used for SMS [duplicate]

I'm trying to extract the sent SMS. I know there is no BroadcastReciver for this. So I've found that I can use ContentObserver to listen changes in the db.

How can I implement this? My objective is to get only the new sms sent and send it via POST on the DB

Thanks

like image 889
Marc Ortiz Avatar asked Nov 14 '22 03:11

Marc Ortiz


1 Answers

Here is a code fragment to do this. The key is to use a selection that looks only for "type = outgoing messages".

Also since the content DB can get triggered by any change, keep track (somehow) of what has already been processed.

int THREAD_ID = 0, ADDRESS = 1, DATE = 2, TYPE = 3, BODY = 4, INCOMING = 1, OUTGOING = 2, UNKNOWN = -1;

String[] smsProjection = new String[] {"thread_id", "address", "date", "type", "body"};

ContentResolver cr = context.getContentResolver();

Cursor cursor = context.getContentResolver().query(uri, smsProjection, "type = ? AND date > ?",new String[]{Integer.toString(OUTGOING), Long.toString(lastOutgoingSmsTime)}, null);
like image 55
PVS Avatar answered Nov 16 '22 03:11

PVS