【问题标题】:Get calls from log by specific SIM通过特定 SIM 从日志中获取呼叫
【发布时间】:2015-02-03 11:00:11
【问题描述】:

我想接听来自特定 SIM 卡的 Android CallLog.Calls 呼叫。有没有办法检查哪个 SIM 用于拨打电话? 以下方法允许在执行呼叫和应用程序运行时检查 SIM。 (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE).getSimSerialNumber(); 如何在安装应用程序之前检查使用哪个 SIM 卡拨打电话?

【问题讨论】:

    标签: android telephonymanager calllog


    【解决方案1】:

    CallLog.Calls 类中,似乎没有任何字段保存 SIM 信息(例如拨打电话时使用了哪个 SIM)。

    因此,我想无论您的应用是否已安装,通话记录内容提供程序似乎都不会维护 SIM-Sepcific,例如从哪个 SIM 发起呼叫。

    【讨论】:

    • 是不是说如果用户在单卡设备上更换了SIM卡,就无法从log中查到是用哪张来拨打电话的?
    • 我想你可以尝试telephonyManager.getSimSerialNumber(); 来获取运营商内唯一的 SIM 序列号。保存此值,以后如果您更换 SIM 卡,它应该返回不同的值。这样,在单 SIM 卡设备中,您仍然可以获取信息。虽然我自己没有尝试过,但如果我猜到它是您的核心功能,那么值得一试
    • @AADTechnical,感谢您的建议,它有效。但我需要知道是否可以在安装应用程序之前检查使用哪个 SIM 卡拨打电话。
    • AFAIK,这只能通过“粘性”广播来实现,您的应用程序可以在设备上安装时对其进行查询。但我从未听说过任何 Android 系统广播会在从设备中添加/拉出 SIM 时填充 SIM 信息,这是 STICKY。当 SIM 状态更改时,Android 中有一个广播 android.intent.action.SIM_STATE_CHANGED .....但是您的应用只有在设备上已安装时才能获取它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多