我的测试手机是搭载 Android 5.0.2 的三星 A3。
插入 SIM2 且插槽 1 为空时
getNetworkOperator()
onSignalStrengthChanged()
onCellLocationChanged()
报告 SIM2 的 LAC、CID、CSQ 和运营商。
插入 SIM1 时,所有数据都用于 SIM1。SIM2 的数据未报告。
我必须做什么才能同时获得两个 SIM 卡的 LAC:CID:CSQ:OPER?
编辑
关于 LAC:CID:CSQ 的答案在:Android 信号强度
但是如何让两个 SIM 卡的网络运营商?
=== 带有完整答案的总结编辑 ===
根据@headuck中的帖子:
Android 信号强度
在课堂上的位置:
public class MultiSimListener extends PhoneStateListener
是信号强度监听器:
public void onSignalStrengthsChanged(SignalStrength signalStrength) {}
要获取当前的 LAC:CID,应添加:
public void onCellLocationChanged (CellLocation cl){}
并使用数字、alpha short 和 alpha long 值获取网络当前运营商(这可能会在漫游中改变):
public void onServiceStateChanged(ServiceState serviceState){}
并且在 tm.listen 中必须添加 LISTEN_ 值:
tm.listen(listener[subIdList[i]],
PhoneStateListener.LISTEN_SIGNAL_STRENGTHS
| PhoneStateListener.LISTEN_CELL_LOCATION
| PhoneStateListener.LISTEN_SERVICE_STATE);
其中tm是 TelephonyManager 实例。
除了在两个插槽中获取 IMEI1、IMEI2、双 SIM 卡、SIM 卡和漫游之外,还可以使用 Android 中的TelephonyInfo类:如何在双卡手机 @Anand Makwana帖子中获取两个 SIM 卡的 SIM ID。
所有这些都适用于 Android 5.0,我不知道如何使用 5.1。
在 Android 4 MultiSimListener 中不起作用,但 TelephonyInfo 可以。