【问题标题】:Android: what vendor-specific methods are known for dual-SIM phones to detect a SIM used for SMS?Android:双 SIM 卡手机有哪些特定于供应商的方法来检测用于 SMS 的 SIM 卡?
【发布时间】:2014-01-10 08:53:22
【问题描述】:

已知Android的短信存储为:

CREATE TABLE sms (_id INTEGER PRIMARY KEY,
   thread_id INTEGER,
   address TEXT,
   person INTEGER,
   date INTEGER,
   date_sent INTEGER DEFAULT 0,
   protocol INTEGER,
   read INTEGER DEFAULT 0,
   status INTEGER DEFAULT -1,
   type INTEGER,
   reply_path_present INTEGER,
   subject TEXT,
   body TEXT,
   service_center TEXT,
   locked INTEGER DEFAULT 0,
   error_code INTEGER DEFAULT 0,
   seen INTEGER DEFAULT 0
)

在使用双卡手机的情况下,是否可以预期某些参数可用于识别用于发送/接收短信的 SIM 卡?

已知person == NULL在正常情况下用于发送短信;我的双卡 MTK 手机似乎没有任何倾向记住在对话中从哪个 SIM 发送消息(这就是我曾经向朋友泄露我的工作号码的方式......)

另外,我猜短信内容文件夹还是只有一个(否则会出现严重的兼容性问题),而且 ContentValues 似乎也无法存储太多数据。

但是,我仍然想同时支持 HTC 和 MTK 的双卡解决方案;将传入/传出 SMS 与 SIM # 关联的最知名方法是什么?如何获取外发短信的发件人#并获取收件的接收路径号?


附注“服务中心#”是已知但被拒绝的解决方案 - 我确实在一部手机中拥有来自一家运营商的两张 SIM 卡..

【问题讨论】:

    标签: android sms dual-sim


    【解决方案1】:

    我建议:

    1 - 构建一个支持双卡设备的消息应用程序。让用户将此应用设为默认应用很重要。因为从 Android 19 ( Kitkat ) 开始,只有默认消息应用可以访问 db。

    2 - 使用这种方式来管理用于发送消息的 SIM 卡。 https://stackoverflow.com/a/30677542/2267723

    3 - 这意味着您的应用程序用于将数据存储到数据库中以接收/发送/发送消息 (SMS/MMS)。你们中的一些人知道#2 使用了哪个 sim,然后将 sim_ID 存储在 DB 中。稍后您可以使用它来了解哪个 sim 管理该消息。

    提示: 最好存储 SIM 的 ID(IMSI /subscriberID),或者您可以使用 SIM 卡的序列号来识别 SIM,如果该 ID 属于插入的 SIM,则在应用程序中,您可以将消息称为 SIM1 或 SIM2 消息。否则将消息独立于 SIM 插槽...不建议将值为 0/1 或 1/2 的消息存储为已用 sim 的标识符。因为如果用户更改 SIM 卡或切换它们 .. 会有冲突。你可以看到它的设计破损。

    祝你好运,

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-07-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-12
      • 2021-11-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多