安卓双卡信号强度

标签 android telephonymanager signal-strength dual-sim

我一直在尝试访问我的 android 双卡双待手机(品牌是 LKD)上的一些功能。我已经设法通过 java 反射获取 TelephonyManager 和 ITelephony 的功能,并让它们运行。但是我想获得两张 SIM 卡的信号强度,但我看不到通过反射来做到这一点的方法。我可以通过具有 onSignalStrengthsChanged() 函数的 PhoneStateListener 获得插槽 1 中的第一张 SIM 卡。

有没有人对此有一些建议?我从反射中得到的功能:

###stanard methods:###
adjustModemRadioPower - boolean: int, int
adjustModemRadioPowerByBand - boolean: int, int
btSimapApduRequest - int: int, java.lang.String, android.telephony.BtSimapOperResponse
btSimapConnectSIM - int: int, android.telephony.BtSimapOperResponse
btSimapDisconnectSIM - int: 
btSimapPowerOffSIM - int: 
btSimapPowerOnSIM - int: int, android.telephony.BtSimapOperResponse
btSimapResetSIM - int: int, android.telephony.BtSimapOperResponse
disableLocationUpdates - void: 
disableLocationUpdatesGemini - void: int
enableLocationUpdates - void: 
enableLocationUpdatesGemini - void: int
equals - boolean: java.lang.Object
from - class android.telephony.TelephonyManager: android.content.Context
getAllCellInfo - interface java.util.List: 
getCallState - int: 
getCallStateGemini - int: int
getCdmaEriIconIndex - int: 
getCdmaEriIconMode - int: 
getCdmaEriText - class java.lang.String: 
getCellLocation - class android.telephony.CellLocation: 
getCellLocationGemini - class android.telephony.CellLocation: int
getClass - class java.lang.Class: 
getCompleteVoiceMailNumber - class java.lang.String: 
getCurrentPhoneType - int: 
getDataActivity - int: 
getDataState - int: 
getDataStateGemini - int: int
getDefault - class android.telephony.TelephonyManager: 
getDeviceId - class java.lang.String: 
getDeviceIdGemini - class java.lang.String: int
getDeviceSoftwareVersion - class java.lang.String: 
getIccCardType - class java.lang.String: 
getIccCardTypeGemini - class java.lang.String: int
getIsimDomain - class java.lang.String: 
getIsimImpi - class java.lang.String: 
getIsimImpu - class [Ljava.lang.String;: 
getLine1AlphaTag - class java.lang.String: 
getLine1AlphaTagGemini - class java.lang.String: int
getLine1Number - class java.lang.String: 
getLine1NumberGemini - class java.lang.String: int
getLteOnCdmaMode - int: 
getLteOnCdmaModeStatic - int: 
getMaxPdpNum - int: int
getMissedCallCount - int: 
getMobileRevisionAndIMEI - void: int, android.os.Message
getMsisdn - class java.lang.String: 
getNeighboringCellInfo - interface java.util.List: 
getNeighboringCellInfoGemini - interface java.util.List: int
getNetworkClass - int: int
getNetworkCountryIso - class java.lang.String: 
getNetworkCountryIsoGemini - class java.lang.String: int
getNetworkOperator - class java.lang.String: 
getNetworkOperatorGemini - class java.lang.String: int
getNetworkOperatorName - class java.lang.String: 
getNetworkOperatorNameGemini - class java.lang.String: int
getNetworkType - int: 
getNetworkTypeGemini - int: int
getNetworkTypeName - class java.lang.String: 
getNetworkTypeName - class java.lang.String: int
getNetworkTypeNameGemini - class java.lang.String: int
getPhoneType - int: 
getPhoneType - int: int
getPhoneTypeGemini - int: int
getRadioType - int: int
getSN - class java.lang.String: 
getSimCountryIso - class java.lang.String: 
getSimCountryIsoGemini - class java.lang.String: int
getSimOperator - class java.lang.String: 
getSimOperatorGemini - class java.lang.String: int
getSimOperatorName - class java.lang.String: 
getSimOperatorNameGemini - class java.lang.String: int
getSimSerialNumber - class java.lang.String: 
getSimSerialNumberGemini - class java.lang.String: int
getSimState - int: 
getSimStateGemini - int: int
getSmsDefaultSim - int: 
getSpNameInEfSpn - class java.lang.String: 
getSpNameInEfSpnGemini - class java.lang.String: int
getSubscriberId - class java.lang.String: 
getSubscriberIdGemini - class java.lang.String: int
getVoiceMailAlphaTag - class java.lang.String: 
getVoiceMailAlphaTagGemini - class java.lang.String: int
getVoiceMailNumber - class java.lang.String: 
getVoiceMailNumberGemini - class java.lang.String: int
getVoiceMessageCount - int: 
getVoiceMessageCountGemini - int: int
hasIccCard - boolean: 
hasIccCardGemini - boolean: int
hashCode - int: 
isIccCardProviderAsMvno - boolean: 
isIccCardProviderAsMvnoGemini - boolean: int
isNetworkRoaming - boolean: 
isNetworkRoamingGemini - boolean: int
isOperatorMvnoForEfPnn - class java.lang.String: 
isOperatorMvnoForEfPnnGemini - class java.lang.String: int
isOperatorMvnoForImsi - class java.lang.String: 
isOperatorMvnoForImsiGemini - class java.lang.String: int
isSmsCapable - boolean: 
isVoiceCapable - boolean: 
listen - void: android.telephony.PhoneStateListener, int
listenGemini - void: android.telephony.PhoneStateListener, int, int
notify - void: 
notifyAll - void: 
simAuth - class java.lang.String: java.lang.String
simAuthGemini - class java.lang.String: java.lang.String, int
toString - class java.lang.String: 
uSimAuth - class java.lang.String: java.lang.String, java.lang.String
uSimAuthGemini - class java.lang.String: java.lang.String, java.lang.String, int
wait - void: 
wait - void: long
wait - void: long, int

###declared methods###
adjustModemRadioPower - boolean: int, int
adjustModemRadioPowerByBand - boolean: int, int
btSimapApduRequest - int: int, java.lang.String, android.telephony.BtSimapOperResponse
btSimapConnectSIM - int: int, android.telephony.BtSimapOperResponse
btSimapDisconnectSIM - int: 
btSimapPowerOffSIM - int: 
btSimapPowerOnSIM - int: int, android.telephony.BtSimapOperResponse
btSimapResetSIM - int: int, android.telephony.BtSimapOperResponse
disableLocationUpdates - void: 
disableLocationUpdatesGemini - void: int
enableLocationUpdates - void: 
enableLocationUpdatesGemini - void: int
getAllCellInfo - interface java.util.List: 
getCallState - int: 
getCallStateGemini - int: int
getCdmaEriIconIndex - int: 
getCdmaEriIconMode - int: 
getCdmaEriText - class java.lang.String: 
getCellLocation - class android.telephony.CellLocation: 
getCellLocationGemini - class android.telephony.CellLocation: int
getCompleteVoiceMailNumber - class java.lang.String: 
getCurrentPhoneType - int: 
getDataActivity - int: 
getDataState - int: 
getDataStateGemini - int: int
getDeviceId - class java.lang.String: 
getDeviceIdGemini - class java.lang.String: int
getDeviceSoftwareVersion - class java.lang.String: 
getIccCardType - class java.lang.String: 
getIccCardTypeGemini - class java.lang.String: int
getIsimDomain - class java.lang.String: 
getIsimImpi - class java.lang.String: 
getIsimImpu - class [Ljava.lang.String;: 
getLine1AlphaTag - class java.lang.String: 
getLine1AlphaTagGemini - class java.lang.String: int
getLine1Number - class java.lang.String: 
getLine1NumberGemini - class java.lang.String: int
getLteOnCdmaMode - int: 
getMissedCallCount - int: 
getMobileRevisionAndIMEI - void: int, android.os.Message
getMsisdn - class java.lang.String: 
getNeighboringCellInfo - interface java.util.List: 
getNeighboringCellInfoGemini - interface java.util.List: int
getNetworkCountryIso - class java.lang.String: 
getNetworkCountryIsoGemini - class java.lang.String: int
getNetworkOperator - class java.lang.String: 
getNetworkOperatorGemini - class java.lang.String: int
getNetworkOperatorName - class java.lang.String: 
getNetworkOperatorNameGemini - class java.lang.String: int
getNetworkType - int: 
getNetworkTypeGemini - int: int
getNetworkTypeName - class java.lang.String: 
getNetworkTypeNameGemini - class java.lang.String: int
getPhoneType - int: 
getPhoneTypeGemini - int: int
getSN - class java.lang.String: 
getSimCountryIso - class java.lang.String: 
getSimCountryIsoGemini - class java.lang.String: int
getSimOperator - class java.lang.String: 
getSimOperatorGemini - class java.lang.String: int
getSimOperatorName - class java.lang.String: 
getSimOperatorNameGemini - class java.lang.String: int
getSimSerialNumber - class java.lang.String: 
getSimSerialNumberGemini - class java.lang.String: int
getSimState - int: 
getSimStateGemini - int: int
getSmsDefaultSim - int: 
getSpNameInEfSpn - class java.lang.String: 
getSpNameInEfSpnGemini - class java.lang.String: int
getSubscriberId - class java.lang.String: 
getSubscriberIdGemini - class java.lang.String: int
getVoiceMailAlphaTag - class java.lang.String: 
getVoiceMailAlphaTagGemini - class java.lang.String: int
getVoiceMailNumber - class java.lang.String: 
getVoiceMailNumberGemini - class java.lang.String: int
getVoiceMessageCount - int: 
getVoiceMessageCountGemini - int: int
hasIccCard - boolean: 
hasIccCardGemini - boolean: int
isIccCardProviderAsMvno - boolean: 
isIccCardProviderAsMvnoGemini - boolean: int
isNetworkRoaming - boolean: 
isNetworkRoamingGemini - boolean: int
isOperatorMvnoForEfPnn - class java.lang.String: 
isOperatorMvnoForEfPnnGemini - class java.lang.String: int
isOperatorMvnoForImsi - class java.lang.String: 
isOperatorMvnoForImsiGemini - class java.lang.String: int
isSmsCapable - boolean: 
isVoiceCapable - boolean: 
listen - void: android.telephony.PhoneStateListener, int
listenGemini - void: android.telephony.PhoneStateListener, int, int
simAuth - class java.lang.String: java.lang.String
simAuthGemini - class java.lang.String: java.lang.String, int
uSimAuth - class java.lang.String: java.lang.String, java.lang.String
uSimAuthGemini - class java.lang.String: java.lang.String, java.lang.String, int
from - class android.telephony.TelephonyManager: android.content.Context
getDefault - class android.telephony.TelephonyManager: 
getDefaultSim - int: 
getITelephony - interface com.android.internal.telephony.ITelephony: 
getLteOnCdmaModeStatic - int: 
getMaxPdpNum - int: int
getNetworkClass - int: int
getNetworkTypeName - class java.lang.String: int
getPhoneType - int: int
getPhoneTypeFromNetworkType - int: 
getPhoneTypeFromProperty - int: 
getProcCmdLine - class java.lang.String: 
getRadioType - int: int
getSubscriberInfo - interface com.android.internal.telephony.IPhoneSubInfo: 
getSubscriberInfo - interface com.android.internal.telephony.IPhoneSubInfo: int

###ITelephony methods###
adjustModemRadioPower - boolean: int, int
adjustModemRadioPowerByBand - boolean: int, int, int
answerRingingCall - void: 
answerRingingCallGemini - void: int
aquire3GSwitchLock - int: 
asBinder - interface android.os.IBinder: 
btSimapApduRequest - int: int, java.lang.String, android.telephony.BtSimapOperResponse
btSimapConnectSIM - int: int, android.telephony.BtSimapOperResponse
btSimapDisconnectSIM - int: 
btSimapPowerOffSIM - int: 
btSimapPowerOnSIM - int: int, android.telephony.BtSimapOperResponse
btSimapResetSIM - int: int, android.telephony.BtSimapOperResponse
call - void: java.lang.String
callGemini - void: java.lang.String, int
cancelMissedCallsNotification - void: 
cancelMissedCallsNotificationGemini - void: int
cleanupApnTypeGemini - int: java.lang.String, int
closeIccLogicalChannel - boolean: int
closeIccLogicalChannelGemini - boolean: int, int
dial - void: java.lang.String
dialGemini - void: java.lang.String, int
disableApnType - int: java.lang.String
disableApnTypeGemini - int: java.lang.String, int
disableDataConnectivity - boolean: 
disableDataConnectivityGemini - int: int
disableLocationUpdates - void: 
disableLocationUpdatesGemini - void: int
enableApnType - int: java.lang.String
enableApnTypeGemini - int: java.lang.String, int
enableDataConnectivity - boolean: 
enableDataConnectivityGemini - int: int
enableLocationUpdates - void: 
enableLocationUpdatesGemini - void: int
endCall - boolean: 
endCallGemini - boolean: int
equals - boolean: java.lang.Object
get3GCapabilitySIM - int: 
get3GSwitchAllowed3GSlots - int: 
getActivePhoneType - int: 
getActivePhoneTypeGemini - int: int
getAdnStorageInfo - class [I: int
getAllCellInfo - interface java.util.List: 
getCallState - int: 
getCallStateGemini - int: int
getCdmaEriIconIndex - int: 
getCdmaEriIconMode - int: 
getCdmaEriText - class java.lang.String: 
getCellLocation - class android.os.Bundle: 
getCellLocationGemini - class android.os.Bundle: int
getClass - class java.lang.Class: 
getDataActivity - int: 
getDataActivityGemini - int: int
getDataState - int: 
getDataStateGemini - int: int
getGateway - class java.lang.String: java.lang.String
getGatewayGemini - class java.lang.String: java.lang.String, int
getIccATR - class java.lang.String: 
getIccATRGemini - class java.lang.String: int
getIccCardType - class java.lang.String: 
getIccCardTypeGemini - class java.lang.String: int
getInterfaceDescriptor - class java.lang.String: 
getInterfaceName - class java.lang.String: java.lang.String
getInterfaceNameGemini - class java.lang.String: java.lang.String, int
getIpAddress - class java.lang.String: java.lang.String
getIpAddressGemini - class java.lang.String: java.lang.String, int
getLastError - int: 
getLastErrorGemini - int: int
getLine1AlphaTag - class java.lang.String: int
getLine1Number - class java.lang.String: int
getLteOnCdmaMode - int: 
getMissedCallCount - int: 
getMobileRevisionAndIMEI - void: int, android.os.Message
getNeighboringCellInfo - interface java.util.List: 
getNeighboringCellInfoGemini - interface java.util.List: int
getNetworkCountryIsoGemini - class java.lang.String: int
getNetworkOperatorGemini - class java.lang.String: int
getNetworkOperatorNameGemini - class java.lang.String: int
getNetworkType - int: 
getNetworkTypeGemini - int: int
getPendingMmiCodesGemini - int: int
getPreciseCallState - int: 
getSN - class java.lang.String: 
getScAddressGemini - class java.lang.String: int
getServiceState - class android.os.Bundle: 
getServiceStateGemini - class android.os.Bundle: int
getSimCountryIso - class java.lang.String: int
getSimIndicatorState - int: 
getSimIndicatorStateGemini - int: int
getSimOperator - class java.lang.String: int
getSimOperatorName - class java.lang.String: int
getSimSerialNumber - class java.lang.String: int
getSimState - int: int
getSmsDefaultSim - int: 
getSpNameInEfSpn - class java.lang.String: 
getSpNameInEfSpnGemini - class java.lang.String: int
getSubscriberId - class java.lang.String: int
getSubscriberInfo - interface com.android.internal.telephony.IPhoneSubInfo: int
getVoiceMailAlphaTag - class java.lang.String: int
getVoiceMailNumber - class java.lang.String: int
getVoiceMessageCount - int: 
getVoiceMessageCountGemini - int: int
handlePinMmi - boolean: java.lang.String
handlePinMmiGemini - boolean: java.lang.String, int
hasIccCard - boolean: 
hasIccCardGemini - boolean: int
hashCode - int: 
is3GSwitchLocked - boolean: 
is3GSwitchManualChange3GAllowed - boolean: 
is3GSwitchManualEnabled - boolean: 
isDataConnectivityPossible - boolean: 
isDataConnectivityPossibleGemini - boolean: int
isFDNEnabled - boolean: 
isFDNEnabledGemini - boolean: int
isIccCardProviderAsMvno - boolean: 
isIccCardProviderAsMvnoGemini - boolean: int
isIdle - boolean: 
isIdleGemini - boolean: int
isNetworkRoamingGemini - boolean: int
isOffhook - boolean: 
isOffhookGemini - boolean: int
isOperatorMvnoForEfPnn - class java.lang.String: 
isOperatorMvnoForEfPnnGemini - class java.lang.String: int
isOperatorMvnoForImsi - class java.lang.String: 
isOperatorMvnoForImsiGemini - class java.lang.String: int
isPhbReady - boolean: 
isPhbReadyGemini - boolean: int
isRadioOn - boolean: 
isRadioOnGemini - boolean: int
isRinging - boolean: 
isRingingGemini - boolean: int
isSimInsert - boolean: int
isSimPinEnabled - boolean: 
isTestIccCard - boolean: 
isTestIccCardGemini - boolean: int
isVTIdle - boolean: 
isVoiceIdle - boolean: 
needsOtaServiceProvisioning - boolean: 
notify - void: 
notifyAll - void: 
openIccLogicalChannel - int: java.lang.String
openIccLogicalChannelGemini - int: java.lang.String, int
openIccLogicalChannelWithSw - class [B: java.lang.String
openIccLogicalChannelWithSwGemini - class [B: java.lang.String, int
registerForSimModeChange - void: android.os.IBinder, int
release3GSwitchLock - boolean: int
set3GCapabilitySIM - boolean: int
setDataRoamingEnabledGemini - void: boolean, int
setDefaultPhone - void: int
setGprsConnType - void: int, int
setGprsTransferType - void: int
setGprsTransferTypeGemini - void: int, int
setRadio - boolean: boolean
setRadioOff - boolean: 
setRoamingIndicatorNeddedProperty - void: boolean, boolean
setScAddressGemini - void: java.lang.String, int
showCallScreen - boolean: 
showCallScreenGemini - boolean: int
showCallScreenWithDialpad - boolean: boolean
showCallScreenWithDialpadGemini - boolean: boolean, int
silenceRinger - void: 
silenceRingerGemini - void: int
simAuth - class java.lang.String: java.lang.String
simAuthGemini - class java.lang.String: java.lang.String, int
supplyPin - boolean: java.lang.String
supplyPinGemini - boolean: java.lang.String, int
supplyPuk - boolean: java.lang.String, java.lang.String
supplyPukGemini - boolean: java.lang.String, java.lang.String, int
toString - class java.lang.String: 
toggleRadioOnOff - void: 
transmitIccBasicChannel - class java.lang.String: int, int, int, int, int, java.lang.String
transmitIccBasicChannelGemini - class java.lang.String: int, int, int, int, int, java.lang.String, int
transmitIccLogicalChannel - class java.lang.String: int, int, int, int, int, int, java.lang.String
transmitIccLogicalChannelGemini - class java.lang.String: int, int, int, int, int, int, java.lang.String, int
transmitIccSimIO - class [B: int, int, int, int, int, java.lang.String
transmitIccSimIOGemini - class [B: int, int, int, int, int, java.lang.String, int
uSimAuth - class java.lang.String: java.lang.String, java.lang.String
uSimAuthGemini - class java.lang.String: java.lang.String, java.lang.String, int
unregisterForSimModeChange - void: android.os.IBinder
updateServiceLocation - void: 
updateServiceLocationGemini - void: int
wait - void: 
wait - void: long
wait - void: long, int

顺便说一句,似乎两张 SIM 卡都同时处于 Activity 状态(无需在 SIM 卡之间切换),因为我可以使用两个电话号码调用电话,而无需切换手机上的 SIM 卡。

谢谢!

最佳答案

对于这个特定版本的 TelephonyManager,而不是使用

TelephonyManager.listen (phoneStateListener, state)

它只监听默认的 SIM 卡,你可以尝试使用你的 PhoneStateListener 的 2 个实例,然后调用

TelephonyManager.listenGemini (phoneStateListener1, state, 0) 第一个 SIM 卡,和

TelephonyManager.listenGemini (phoneStateListener2, state, 1) 用于第二张 SIM,

listenGemini 的第三个参数是 SIM 号码。

关于安卓双卡信号强度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27767127/

相关文章:

android - 两个ListView上面的TextView

android - 为什么位图在android中显示黑色背景

android - 方法 fillColor() 未定义?

android - 如何挂断Android中的拨出电话?

Android - Level、DBM 和 ASU 中的信号强度

Android AddThis sdk + Facebook sdk 不会在 Android Studio 中构建

android - 如何监控网络类型并在它发生变化时得到通知

android - 来电广播接收器不工作

android - 即时信号强度

android - 如果手机处于飞行模式或不在网络中,如何获取手机?