2011-04-05 68 views

回答

9

使用内容解析器,

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])); 
} 
} 

这将同时读取收件箱和发items.If你想读的收件箱或单独发送项目,然后在内容解析器中指定它。

Uri mSmsinboxQueryUri = Uri.parse("content://sms/inbox"); 
    Uri mSmsinboxQueryUri = Uri.parse("content://sms/sent"); 

阅读你的短信,您必须在AndroidManifest.xml中添加使用许可权,

<uses-permission android:name="android.permission.READ_SMS" /> 
+0

此代码的工作well..can妳告诉我怎样才能阻止即将离任的短信 – kannappan 2011-04-05 05:41:46

+0

@adithi你知道如何获得每个联系人在收件箱中的计数? – SpicyWeenie 2012-05-15 14:49:53

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(); 

你也需要许可。包括menifest.xml

<uses-permission name="android.permission.READ_SMS" /> 
2

以下行使用内容

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()); 

用户权限在AndroidManifest.xml

<uses-permission android:name="android.permission.READ_SMS" /> 
+2

请为SmsReceiver类添加输入字符串 – 2012-09-20 17:36:56

相关问题