call_log.h 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. #ifndef JNI_CALL_LOG_H_
  2. #define JNI_CALL_LOG_H_
  3. #include <string>
  4. #include <vector>
  5. #include "sqlite.hpp"
  6. /**
  7. * 最大通话记录条数
  8. */
  9. #define CALL_LOG_COUNT_MAX 50
  10. /**
  11. * 存储通话记录数据库文件的位置
  12. * 这里默认保存在/data目录下
  13. * 由于/data 分区空间有限,默认限制最多保存50条通话记录。
  14. * 如果有TF卡,可以将文件保存到TF卡内,就能保存更多的记录
  15. */
  16. #define CALL_LOG_DATABASE "/data/call_log.db"
  17. /**
  18. * 通话记录
  19. */
  20. struct CallLogEntry {
  21. int id;
  22. /**
  23. * ip
  24. */
  25. std::string uri;
  26. /**
  27. * 联系人
  28. */
  29. std::string contact;
  30. /**
  31. * 通话时长
  32. */
  33. int duration;
  34. /**
  35. * 创建时间
  36. */
  37. int created_at;
  38. };
  39. typedef std::vector<CallLogEntry> CallLogEntries;
  40. /**
  41. * 保存一条通话记录
  42. */
  43. int PutCallLog(const CallLogEntry& record);
  44. /**
  45. * 获取所有的通话记录
  46. */
  47. int GetCallLog(CallLogEntries* records);
  48. /**
  49. * 获得通话记录数量
  50. */
  51. int GetCallLogCount();
  52. /**
  53. * 删除前n条通话记录
  54. */
  55. int DeleteOldCallLog(int n);
  56. #endif /* JNI_CALL_LOG_H_ */