2010-05-05 51 views
5

是否有人知道在SMS客戶端應用程序中用於存儲消息的數據結構是什麼,以及是否存在用於此的現有API。Android中用於SMS消息的數據結構

我也許正在尋求實現爲目的的鏈接列表,但如果工作已經在API中進行,那麼也許這將是不必要的承諾時間可能花費編程其他地方的任務。

非常感謝

回答

1

Android中有android.telephony.SmsMessage。這是android中用於存儲單個SMS消息的對象。你可以看看它並構建類似它的東西,或者重新使用它。對於存儲它們的數據結構,我建議你使用一個java.util.List<E>,它可以讓你在一些其他數據結構(比如標準數組[])上有更多的靈活性。

如果你正在尋找長時間存儲你的短信,那麼我還建議你看看使用SQLlite, which is also a part of the Android platform的持久性。

1

至於內置的消息傳遞應用程序,它將所有的消息存儲在數據庫中。您可以查看Android源代碼以查看它的功能,但我建議不要閱讀此數據 - 它不是官方SDK的一部分,因此可能會更改,或者某些手機可能沒有。

至於自己存儲 - 我不會使用鏈表。使用數據庫,這是存儲任何持久數據的首選方式(除了使用SharedPreferences的小個別值之外)。

1
Uri uriSMS=Uri.parse("Content://sms/inbox"); 
     Cursor cur=getContentResolver().query(uriSMS,null,null,null,null); 
     String[] sender=new String[100];String[] content=new String[100];int ct=0; 
     While(cur.moveToNext()){ 
      sender[ct]=cur.getString(2);//arg2: this is address 
      content[ct]=cur.getString(11);//arg11: this is body of SMS 
//[0: _id,1: thread_id,2: address,3: person,4: date,5: protocol,6: read,7: status,8: type,9: reply_path_present,10: subject,11: body,12: service_center,13: locked,14: error_code,15: seen] 
     } 

這是在短信內容結構,例如,我得到ARG2和arg11這是地址和手機短信的內容。使用此示例,可以讀取所有的短信儲存在手機