VoLTE注册成功后关闭数据连接,状态栏上数据图标依然显示
时间:10-02
整理:3721RD
点击:
[DESCRIPTION]
VoLTE注册成功后关闭数据连接,如果手机此时开了一路IMS Pdn,则会将当前data connection
state通知上层(如下log所示),所以状态栏上数据图标依然显示。
11-11 14:09:43.333 819 836 D TelephonyRegistry: mConnectedApns[0]: [ims]
11-11 14:09:43.333 819 836 D TelephonyRegistry: notifyDataConnectionForSubscriber:
handle onDataConnectionStateChanged
11-11 14:09:43.333 819 836 D TelephonyRegistry: onDataConnectionStateChanged(0, 13)
11-11 14:09:43.335 968 968 D NetworkController.MobileSignalController(1):
onDataConnectionStateChanged: state=0 type=13
11-11 14:09:43.335 968 968 D NetworkController.MobileSignalController(1):
updateNetworkType: DataState= 0, getDataNetworkType= 13
这在OM版本上是google default设计。
[SOLUTION]
如果希望此时状态栏上不显示数据连接图标。
1. NetworkControllerImpl.Java MobileSignalController中新增:
String mApnType = "unknown";
public void onPreciseDataConnectionStateChanged(PreciseDataConnectionState
state) {
/// M: Support onPreciseDataConnectionStateChanged. @{
if((mDataState==state.getDataConnectionState())&&(mDataNetType ==
state.getDataConnectionNetworkType())){
mApnType = state.getDataConnectionApnType();
}
if (PluginFactory.getStatusBarPlugin(mContext).customizeBehaviorSet()
== BehaviorSet.OP01_BS) {
mSvLteController.onPreciseDataConnectionStateChanged(state);
mCurrentState.mShowDataActivityIcon = mSvLteController.isShowDataActivityIcon();
notifyListenersIfNecessary();}
}
2.MobileSignalController.notifyListeners()中showDataIcon变量加上mApnType 的判断即可。
VoLTE注册成功后关闭数据连接,如果手机此时开了一路IMS Pdn,则会将当前data connection
state通知上层(如下log所示),所以状态栏上数据图标依然显示。
11-11 14:09:43.333 819 836 D TelephonyRegistry: mConnectedApns[0]: [ims]
11-11 14:09:43.333 819 836 D TelephonyRegistry: notifyDataConnectionForSubscriber:
handle onDataConnectionStateChanged
11-11 14:09:43.333 819 836 D TelephonyRegistry: onDataConnectionStateChanged(0, 13)
11-11 14:09:43.335 968 968 D NetworkController.MobileSignalController(1):
onDataConnectionStateChanged: state=0 type=13
11-11 14:09:43.335 968 968 D NetworkController.MobileSignalController(1):
updateNetworkType: DataState= 0, getDataNetworkType= 13
这在OM版本上是google default设计。
[SOLUTION]
如果希望此时状态栏上不显示数据连接图标。
1. NetworkControllerImpl.Java MobileSignalController中新增:
String mApnType = "unknown";
public void onPreciseDataConnectionStateChanged(PreciseDataConnectionState
state) {
/// M: Support onPreciseDataConnectionStateChanged. @{
if((mDataState==state.getDataConnectionState())&&(mDataNetType ==
state.getDataConnectionNetworkType())){
mApnType = state.getDataConnectionApnType();
}
if (PluginFactory.getStatusBarPlugin(mContext).customizeBehaviorSet()
== BehaviorSet.OP01_BS) {
mSvLteController.onPreciseDataConnectionStateChanged(state);
mCurrentState.mShowDataActivityIcon = mSvLteController.isShowDataActivityIcon();
notifyListenersIfNecessary();}
}
2.MobileSignalController.notifyListeners()中showDataIcon变量加上mApnType 的判断即可。
学习了~~~~~~~~~~~~
