2012-12-05 18 views
0

我使用android SmsManager.sendTextMessage(..) 發送消息,但在閱讀SMS內容提供者列時,我得到的類型列值爲1,對於發送的消息應爲2,甚至在設備上默認消息應用程序,我發送的消息顯示爲已收到。發送的消息和內容提供者的類型列之間的衝突

我使用發送消息的代碼是

public static final String SMS_URI = "content://sms"; 
SmsManager sms = SmsManager.getDefault(); 
sms.sendTextMessage(address.get(i), null, messagetosend, null, null); 
ContentResolver contentResolver = getContentResolver(); 

ContentValues values = new ContentValues(); 
values.put(ADDRESS, address.get(i)); 
values.put(BODY, messagetosend); 
contentResolver.insert(Uri.parse(SMS_URI), values); 

而且我打印上的logcat值與這段代碼:

Uri allMessages = Uri.parse("content://sms/"); 
//Cursor cursor = managedQuery(allMessages, null, null, null, null); Both are same 
Cursor cursor = this.getContentResolver().query(allMessages, null, null, null, null); 

while (cursor.moveToNext()) { 
    for (int i = 0; i < cursor.getColumnCount(); i++) { 
     Log.d(cursor.getColumnName(i) + "", cursor.getString(i) + ""); 
    } 
    Log.d("One row finished", "**************************************************"); 
} 

回答

1

試圖改變

public static final String SMS_URI = "content://sms"; 

public static final String SMS_URI = "content://sms/sent"; 

,你還可以添加

values.put("type", 2); 
+0

感謝.. 應的Android不會更新型列或我必須更新爲每個發送的消息? – aneela

+0

您必須爲每個發送的消息進行更新。 p.s.接受我的回答:) – sinisha

+0

謝謝你這麼多..它的作品:)只是告訴我一件事情,我需要使用的內容:/ /短信/收件箱保持傳入消息的記錄? – aneela

相關問題