Android SMS 短信操作


Android的短信保存在短信库里,但并提供类似Contacts的公开的Content Provider方便操作。这里简单的介绍下:android中的短信信息保存在/data/data/com.android.providers.telephony/databases目录下的sqlite库中。常用的表有:canonical_addresses, sms, threads。对短信的操作基本也就是对这些表的CRUD。下面先看下这些表的结构,也可以使用sql查看表中的内容

  1. d:\test>adb shell  
  2. $ su  
  3. su  
  4. # cd /data/data/com.android.providers.telephony/databases  
  5. cd /data/data/com.android.providers.telephony/databases  
  6. # ls  
  7. ls  
  8. firewall.db       mmssms.db-wal     telephony.db-shm  
  9. mmssms.db         msmsms.db         telephony.db-wal  
  10. mmssms.db-shm     telephony.db      traffic.db  
  11. # sqlite3 mmssms.db  
  12. sqlite3 mmssms.db  
  13. SQLite version 3.7.2  
  14. Enter ".help" for instructions  
  15. Enter SQL statements terminated with a ";"  
  16. sqlite> .tables  
  17. .tables  
  18. addr                 pdu                  threads  
  19. android_metadata     pending_msgs         words  
  20. attachments          rate                 words_content  
  21. canonical_addresses  raw                  words_segdir  
  22. drm                  sms                  words_segments  
  23. part                 sr_pending  
  24. sqlite> .schema threads  
  25. .schema threads  
  26. CREATE TABLE threads (  
  27. _id INTEGER PRIMARY KEY,  
  28. date INTEGER DEFAULT 0,  
  29. server_date INTEGER DEFAULT 0,  
  30. message_count INTEGER DEFAULT 0,  
  31. unread_count INTEGER DEFAULT 0,  
  32. photo_id TEXT,  
  33. recipient_addresses TEXT,  
  34. recipient_names TEXT,  
  35. is_sp TEXT,  
  36. person_id TEXT,  
  37. recipient_ids TEXT,  
  38. snippet TEXT,s  
  39. nippet_cs INTEGER DEFAULT 0,  
  40. read INTEGER DEFAULT 1,  
  41. type INTEGER DEFAULT 0,  
  42. error INTEGER DEFAULT 0,  
  43. has_attachment INTEGER DEFAULT 0,  
  44. state INTEGER DEFAULT 0);  
  45. sqlite> .schema sms  
  46. .schema sms  
  47. CREATE TABLE sms (  
  48. _id INTEGER PRIMARY KEY,  
  49. thread_id INTEGER,  
  50. address TEXT,  
  51. person INTEGER,  
  52. date INTEGER,  
  53. server_date INTEGER,  
  54. protocol INTEGER,  
  55. read INTEGER DEFAULT 0,  
  56. status INTEGER DEFAULT -1,  
  57. type INTEGER,  
  58. reply_path_present INTEGER,  
  59. subject TEXT,  
  60. body TEXT,  
  61. service_center TEXT,  
  62. locked INTEGER DEFAULT 0,  
  63. error_code INTEGER DEFAULT 0,  
  64. seen INTEGER DEFAULT 0,  
  65. timed INTEGER DEFAULT 0);  

(这里需要注意的是查看/data/data目录下的文件需要有root权限)

  • 1
  • 2
  • 下一页

相关内容