I am trying to read messages from an inbox and display them in an activity. My activity contains a button and listview. When I click on the button, all messages from the inb
try this code you get sms for pertucular number:
import java.util.ArrayList;
import android.app.Activity;
import android.content.ContentResolver;
import android.content.Context;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.util.Log;
public class MainActivity extends Activity {
ArrayList sms_id = new ArrayList();
ArrayList sms_num = new ArrayList();
ArrayList sms_Name = new ArrayList();
ArrayList sms_dt = new ArrayList();
ArrayList sms_body = new ArrayList();
// private ImageView imageView;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Uri myMessage = Uri.parse("content://sms/");
ContentResolver cr = this.getContentResolver();
Cursor c = cr.query(myMessage, new String[] { "_id", "address", "date",
"body", "read" }, "address = '+9180009'", null, null);
startManagingCursor(c);
getSmsLogs(c, MainActivity.this);
}
public void getSmsLogs(Cursor c, Context con) {
if (sms_num.size() > 0) {
sms_id.clear();
sms_num.clear();
sms_Name.clear();
sms_body.clear();
sms_dt.clear();
}
try {
if (c.moveToFirst()) {
do {
if (c.getString(c.getColumnIndexOrThrow("address")) == null) {
c.moveToNext();
continue;
}
String Number = c.getString(
c.getColumnIndexOrThrow("address")).toString();
String _id = c.getString(c.getColumnIndexOrThrow("_id"))
.toString();
String dat = c.getString(c.getColumnIndexOrThrow("date"))
.toString();
String Body = c.getString(c.getColumnIndexOrThrow("body"))
.toString();
Log.e("Body-->", "" + Body);
sms_id.add(_id);
sms_num.add(Number);
sms_body.add(Body);
} while (c.moveToNext());
}
c.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
check log for sms body: you have to use below permission