是否有人知道SMS客户端应用程序中的商店消息使用了哪些数据结构,以及是否存在现有的API。
我可能正在考虑为此目的实现链接列表,但如果已经在API中完成了工作,那么可能没有必要花时间完成可能花在编程其他部分上的任务。
非常感谢
答案 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的地址和内容。使用此示例,您可以阅读手机中存储的所有短信