6

从 API 级别 22 开始,Android 原生支持双 SIM 卡设备。在 API 的中心,有SubscriptionInfo.getSubscriptionId().

使用这些 ID,您可以检索SmsManager每个 SIM 卡的 s 以发送 SMS 和 MMS。您还可以识别短信是通过哪张 SIM 卡在 上接收的SMS_RECEIVED_ACTION,等等。

但是,订阅 ID 的生命周期是多少?我可以将订阅 ID 存储在本地数据库中并指望它仍然有效并在以后指向同一张 SIM 卡吗?稍后,我的意思是在重新启动设备、取出 SIM 卡并将其重新插入之后,甚至在设备恢复出厂设置之后。

4

1 回答 1

5

我测试了自己的弹性SubscriptionId,使用两张 SIM 卡,虽然是在单 SIM 卡设备上,因为那是我当时可用的。

首先,我注意到SubscriptionId插入 SIM 卡 A 时系统给我的信息。SubscriptionId我得到的值为2.

接下来,我重新启动了设备。SubscriptionId重启后2依旧。

然后,我关闭了设备,取出 SIM 卡 A 并放入 SIM 卡 B。重新打开设备后,SubscriptionId更改为4.

最后,我关闭了设备,取出 SIM 卡 B 并重新插入 SIM 卡 A。重新打开设备后,SubscriptionId更改回2.

总之,Android 似乎SubscriptionId为每张 SIM 卡分配了一个唯一性。SubscriptionId似乎可以在系统重新启动以及 SIM 卡移除和重新插入后幸存下来。我没有测试恢复出厂设置,但我的直觉是它可能无法幸免于难,因为系统在恢复出厂设置后不会有任何与 SIM 卡交互的历史记录。

于 2020-05-24T00:01:41.097 回答