}
sendMessage(UPDATE_NETWORK_STATE, 0 /*arg*/, network);
}
+
+ @Override
+ public void onLost(Network network) {
+ sendMessage(UPDATE_NETWORK_STATE, 0 /*arg*/, network);
+ }
};
/**
private void handleUpdateNetworkState(Network network) {
// retrieve NetworkInfo for this UID
NetworkInfo info = mConnMgr.getNetworkInfo(network);
- if (info == null) {
- return;
+
+ boolean networkAvailable = false;
+ boolean isConnected = false;
+ int type = ConnectivityManager.TYPE_NONE;
+ boolean isRoaming = false;
+ String apnName = null;
+
+ if (info != null) {
+ networkAvailable = info.isAvailable() && TelephonyManager.getDefault().getDataEnabled();
+ isConnected = info.isConnected();
+ type = info.getType();
+ isRoaming = info.isRoaming();
+ apnName = info.getExtraInfo();
}
- boolean isConnected = info.isConnected();
if (DEBUG) {
String message = String.format(
"UpdateNetworkState, state=%s, connected=%s, info=%s, capabilities=%S",
}
if (native_is_agps_ril_supported()) {
- boolean dataEnabled = TelephonyManager.getDefault().getDataEnabled();
- boolean networkAvailable = info.isAvailable() && dataEnabled;
String defaultApn = getSelectedApn();
if (defaultApn == null) {
defaultApn = "dummy-apn";
native_update_network_state(
isConnected,
- info.getType(),
- info.isRoaming(),
+ type,
+ isRoaming,
networkAvailable,
- info.getExtraInfo(),
+ apnName,
defaultApn);
} else if (DEBUG) {
Log.d(TAG, "Skipped network state update because GPS HAL AGPS-RIL is not supported");
if (mAGpsDataConnectionState == AGPS_DATA_CONNECTION_OPENING) {
if (isConnected) {
- String apnName = info.getExtraInfo();
if (apnName == null) {
// assign a dummy value in the case of C2K as otherwise we will have a runtime
// exception in the following call to native_agps_data_conn_open