在安卓系统中,订阅ID会保留多久?

8

从API Level 22开始,Android原生支持双SIM卡设备。在API中心,有一个SubscriptionInfo.getSubscriptionId()方法。

通过这些ID,您可以检索每个SIM卡的SmsManager以发送短信和彩信。您还可以识别哪个SIM卡上收到了短信,在SMS_RECEIVED_ACTION中等。

但是,Subscription ID的生命周期是多久?我可以将Subscription ID存储在本地数据库中并依赖它后来仍然有效,并指向同一张SIM卡吗?后来是指重启设备、移除其SIM卡并重新插入或者甚至进行出厂设置之后。

2个回答

7

我亲自测试了SubscriptionId的弹性,使用了两张SIM卡,但只在一张单卡设备上进行了测试,因为那是我当时可用的。

首先,我记录了系统在插入SIM卡A时给我的SubscriptionId。我得到的SubscriptionId值为2

接下来,我重新启动了设备。重启后,SubscriptionId仍然是2

然后,我关闭了设备,拿出了SIM卡A并换上了SIM卡B。在重新打开设备后,SubscriptionId变成了4

最后,我关掉设备,拿出了SIM卡B并换回了SIM卡A。在重新打开设备后,SubscriptionId又变回了2

总之,看起来Android为每个SIM卡分配了一个唯一的SubscriptionId。这个SubscriptionId似乎可以在系统重启、SIM卡移除和重新插入后继续存在。我没有测试工厂重置,但我的直觉是它可能无法在重置后继续存在,因为系统在工厂重置后不会有任何与SIM卡的交互历史。


那你只在一个设备上测试过吗? - Aman Verma
我们在 Android 10 及以上版本中是否可以获取 SubscriptionId? - Kshitij

1

Android文档

订阅ID为设备上使用的已安装SIM卡(包括物理和电子SIM卡)提供了一个索引值(从1开始),用于唯一标识SIM卡。通过此ID,您的应用程序可以将其功能与给定SIM卡的各种订阅信息关联起来。除非设备恢复出厂设置,否则该值对于给定的SIM卡是稳定的。然而,在不同设备上,同一SIM卡可能具有不同的订阅ID,或者不同的SIM卡在不同设备上可能具有相同的ID。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接