Android:以编程方式读取短信时,在双SIM卡手机中获取网络运营商名称

时间:2017-07-23 07:40:21

标签: android

我正在尝试使用Uri.parse("content://sms/inbox");阅读所有收件箱短信。 我能够成功阅读所有邮件,并使用Cursor获取所有列值。我的设备是双SIM卡设备。这是我的问题: How can I know that given sms is belongs to which network operator? I want network operator name.

观察: 列名为sub_id,其值为整数。对于所有邮件,我只获得5的两个不同的值(在我的情况下,我得到4sub_id)。 sub_id值为5的邮件属于一个网络运营商,sub_id值为4的邮件属于另一个网络运营商。

其他问题:sub_id代表什么?如何使用sub_id获取网络运营商名称?

我的应用程序的最低SDK级别是API 19。

1 个答案:

答案 0 :(得分:0)

Android中有一个私有API: telephonyManager.getNetworkOperatorName(int subId)

https://android.googlesource.com/platform/frameworks/base/+/master/telephony/java/android/telephony/TelephonyManager.java#1476

它与公共API telephonyManager.getNetworkOperatorName相同,但带有SubID。

https://developer.android.com/reference/android/telephony/TelephonyManager.html#getNetworkOperatorName()

但是,它是一个私有API,因此您需要使用Java Reflection

来询问此请求