gpt4 book ai didi

Android:双 SIM 卡手机检测用于 SMS 的 SIM 卡的供应商特定方法有哪些?

转载 作者:太空狗 更新时间:2023-10-29 15:07:01 24 4
gpt4 key购买 nike

已知Android的SMS存储为:

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 卡手机的情况下,是否可以预期某些参数可用于识别哪个 SIM 卡用于发送/接收 SMS?

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

另外,我猜还是只有一个短信内容文件夹(不然会出现严重的兼容性问题),而且ContentValues貌似也存储不了多少数据。

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


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

最佳答案

我建议:

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

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

3 - 隐式意味着您的应用程序用于将传入/传出/已发送消息 (SMS/MMS) 的数据存储到数据库。所以你们知道#2 使用哪个 sim,然后将 sim_ID 存储在数据库中。稍后您可以使用它来了解哪个 sim 管理了该消息。

enter image description here

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

祝你好运

关于Android:双 SIM 卡手机检测用于 SMS 的 SIM 卡的供应商特定方法有哪些?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21039753/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com