i want read Sms inbox in android mobile via android application.Any one know this
Asked
Active
Viewed 1.1k times
3 Answers
9
Using the content resolver,
Uri mSmsinboxQueryUri = Uri.parse("content://sms");
Cursor cursor1 = getContentResolver().query(
mSmsinboxQueryUri,
new String[] { "_id", "thread_id", "address", "person", "date",
"body", "type" }, null, null, null);
startManagingCursor(cursor1);
String[] columns = new String[] { "address", "person", "date", "body",
"type" };
if (cursor1.getCount() > 0) {
String count = Integer.toString(cursor1.getCount());
Log.e("Count",count);
while (cursor1.moveToNext()) {
out.write("<message>");
String address = cursor1.getString(cursor1
.getColumnIndex(columns[0]));
String name = cursor1.getString(cursor1
.getColumnIndex(columns[1]));
String date = cursor1.getString(cursor1
.getColumnIndex(columns[2]));
String msg = cursor1.getString(cursor1
.getColumnIndex(columns[3]));
String type = cursor1.getString(cursor1
.getColumnIndex(columns[4]));
}
}
This will read both inbox and sent items.If you want to read the inbox or sent items alone then you specify it in content resolver.
Uri mSmsinboxQueryUri = Uri.parse("content://sms/inbox");
Uri mSmsinboxQueryUri = Uri.parse("content://sms/sent");
For reading your SMS you must add uses-permission in androidmanifest.xml,
<uses-permission android:name="android.permission.READ_SMS" />

adithi
- 973
- 3
- 11
- 19
-
this code works well..can u tell how can i block the outgoing sms – kannappan Apr 05 '11 at 05:41
-
@adithi do you know how to get the count per contact in the inbox? – May 15 '12 at 14:49
2
using the content
ArrayList<String> smsList = new ArrayList<String>();
ContentResolver contentResolver = getContentResolver();
Cursor cursor = contentResolver.query( Uri.parse( "content://sms/inbox" ), null, null,null,null);
int indexBody = cursor.getColumnIndex( SmsReceiver.BODY );
int indexAddr = cursor.getColumnIndex( SmsReceiver.ADDRESS );
if ( indexBody < 0 || !cursor.moveToFirst() ) return;
smsList.clear();
do
{
String str = "Sender: " + cursor.getString( indexAddr ) + "\n" + cursor.getString( indexBody );
smsList.add( str );
}
while( cursor.moveToNext() );
User-Permission in AndroidManifest.xml
<uses-permission android:name="android.permission.READ_SMS" />

dickens prabhu
- 21
- 2
1
Cursor c = getContentResolver().query(Uri.parse("content://sms/inbox"),null,null,null, null);
startManagingCursor(c);
int smsEntriesCount = c.getCount();
String[] body = new String[smsEntriesCount];
String[] number = new String[smsEntriesCount];
if (c.moveToFirst())
{
for (int i = 0; i < smsEntriesCount; i++)
{
body[i] = c.getString(c.getColumnIndexOrThrow("body")).toString();
number[i] = c.getString(c.getColumnIndexOrThrow("address")).toString();
c.moveToNext();
}
}
c.close();
you also needs permission. include following line in menifest.xml
<uses-permission name="android.permission.READ_SMS" />

Farhan
- 13,290
- 2
- 33
- 59