Android高概率开机后注网拨号OK,ping服务器OK,信号栏图标显示空三角。
模块注册状态广播后,安卓上层没有监听到;非ril问题。
(1)在安卓如下目录下找到NetworkControllerImpl.java文件做如下修改
<Android>/frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/ policy/NetworkControllerImpl.java
public void onReceive(Context context, Intent intent) {
...
else if (action.equals(TelephonyIntents.ACTION_SERVICE_STATE_CHANGED)) {
mLastServiceState = ServiceState.newFromBundle(intent.getExtras());
if (mMobileSignalControllers.size() == 0) {
// If none of the subscriptions are active, we might need to recalculate
// emergency state.
recalculateEmergency();
}
for (int i = 0; i < mMobileSignalControllers.size(); i++) {
MobileSignalController controller = mMobileSignalController s.valueAt(i);
controller.handleBroadcast(intent);
}
} else {
...
}
(2)在安卓如下目录下找到MobileSignalController.java文件做如下修改
修改/frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/ policy/MobileSignalController.java
public void handleBroadcast(Intent intent) {
...
else if (action.equals(TelephonyIntents.ACTION_DEFAULT_DATA_SUBSCRIPTION _CHANGED)) {
updateDataSim();
notifyListenersIfNecessary();
// }
// }
}else if(action.equals(TelephonyIntents.ACTION_SERVICE_STATE_CHANG ED)){
ServiceState mLastServiceState = ServiceState.newFromBundle (intent.getExtras());
if(mLastServiceState != null && (mServiceState == null || mService
State.getVoiceRegState() != mLastServiceState.getVoiceRegState())){
//Log.v(TAG,"handleBroadcast mLastServiceState:"+mLastService State .getVoiceRegState());
mServiceState = mLastServiceState;
updateTelephony();
}
}
}
采用全编镜像方式编译,直接烧写新镜像即可。