在做短信截获软件时, 曾经遇到一个问题:

截获短信时,常用联系人和非常用联系人的短信到达后首先被系统的tmail.exe处理,但是tmail把这两者的号码(Address)解析成了不同的格式,

常用联系人:解析成 <姓名 + 号码>

非常用联系人:解析成 <号码>

因此,在截获时不能使用CatchNum == BlackNum 来判断,应该用 CatchNum是否包含BlackNum来判断。

其中,CatchNum是截获到的Address, BlackNum是黑名单中的号码.

解释一下: 什么是常用联系人和非常用联系人. 这个概念是针对保存在SIM卡上的电话号码来说的, 由于国际规范的规定,
SIM卡上保存的电话号码只有前254个号码是常用联系人, 也就是说可以在手机的通讯录上看到的, 这其实也就是为什么说我们的 K级SIM卡上只能保存254个号码, 其实根本原因不是SIM卡上保存不了, 而是保存了也索引不到,"手机看不见后面的"号码. 而我们的项目是采用大容量SIM卡, 在卡上保存上千条号码, 这样一来, 排在前面的254条就是常用联系人, 后面的就是非常用联系人了.

对于存在卡上的非常用联系人, 当有短信来时, 手机先去找手机本身的通讯录, 找不到再去找SIM卡的常用联系人, 再找不到的话就解析成<号码>, 也就时把号码用尖括号括起来, 这时, 我们用MAPIRule的方法取到的就是<号码>, 而不是<姓名 + 号码>.

也许这篇文章很少有人会用得到, 毕竟现在M级SIM卡还没大规模商用, 针对这个的编程很少有人做, 写在这就当给自己做个备忘把.

相关文章:

  • 2021-06-09
  • 2022-02-02
  • 2021-09-19
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-06-14
  • 2021-11-24
猜你喜欢
  • 2022-12-23
  • 2021-09-10
  • 2021-09-28
  • 2021-09-25
  • 2022-12-23
  • 2021-08-29
  • 2021-10-23
相关资源
相似解决方案