在建立数据业务成功后,如果有数据传输就会更新StatusBar上数据上下行的图标, 更新上下行图标的前提条件是:
1.MobileSignalController必须注册PhoneStateListener监听,并且包括PhoneStateListener.LISTEN_DATA_ACTIVITY事件.如下:
public void registerListener() {
mPhone.listen(mPhoneStateListener,
PhoneStateListener.LISTEN_SERVICE_STATE
| PhoneStateListener.LISTEN_SIGNAL_STRENGTHS
| PhoneStateListener.LISTEN_CALL_STATE
| PhoneStateListener.LISTEN_DATA_CONNECTION_STATE
| PhoneStateListener.LISTEN_DATA_ACTIVITY
| PhoneStateListener.LISTEN_CARRIER_NETWORK_CHANGE);
}
2.在建立好数据业务后,通过下面流程进行call到APP.
通过下面的线程分别在亮屏或黑屏的情况下,定不同的时间进行轮训当前的数据上下行和更新APP上的图标.
private final Runnable mPollNetStat = new Runnable() {
@Override
public void run() {
updateDataActivity();
if (mIsScreenOn) {
mNetStatPollPeriod = Settings.Global.getInt(mResolver,
Settings.Global.PDP_WATCHDOG_POLL_INTERVAL_MS, POLL_NETSTAT_MILLIS);
} else {
mNetStatPollPeriod = Settings.Global.getInt\(mResolver,
Settings.Global.PDP_WATCHDOG_LONG_POLL_INTERVAL_MS,
POLL_NETSTAT_SCREEN_OFF_MILLIS);
}
if (mNetStatPollEnabled) {
mDataConnectionTracker.postDelayed(this, mNetStatPollPeriod);
}
}
};