Android中用于SMS消息的数据结构

时间:2010-05-05 10:35:07

标签: android data-structures sms

是否有人知道SMS客户端应用程序中的商店消息使用了哪些数据结构,以及是否存在现有的API。

我可能正在考虑为此目的实现链接列表,但如果已经在API中完成了工作,那么可能没有必要花时间完成可能花在编程其他部分上的任务。

非常感谢

3 个答案:

答案 0 :(得分:1)

在android中有android.telephony.SmsMessage。这是android中用于存储单个SMS消息的对象。您可以查看它并构建类似于它的东西,或者重复使用它。

就存储它们的数据结构而言,我建议你使用java.util.List<E>,它比其他一些数据结构(如标准数组[])更灵活。

如果您希望在较长时间内存储短信,那么我建议您使用SQLlite, which is also a part of the Android platform查看持久性。

答案 1 :(得分:1)

对于内置的Messaging应用程序,它将所有消息存储在数据库中。您可以查看Android源代码以了解其功能,但我建议不要阅读此数据 - 它不是官方SDK的一部分,因此可能会更改,或者某些手机可能没有。

至于自己存储 - 我不会使用链表。使用数据库,这是存储任何持久数据的首选方式(除了使用SharedPreferences的小个别值之外)。

答案 2 :(得分: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]
        }

这是SMS内容的结构,例如,我得到arg2和arg11这是sms的地址和内容。使用此示例,您可以阅读手机中存储的所有短信