Merge "Change SUPL network request parameters for requestRouteToHostAddress" into qt-dev
am: 16f6a30c9d
Change-Id: I133989e93b53e787d80fcf26811169615a89c5ce
This commit is contained in:
@@ -199,29 +199,27 @@ class GnssNetworkConnectivityHandler {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* called from native code to update AGPS status
|
* Called from native code to update AGPS connection status, or to request or release a SUPL
|
||||||
|
* connection.
|
||||||
|
*
|
||||||
|
* <p>Note: {@code suplIpAddr} parameter is not present from IAGnssCallback.hal@2.0 onwards
|
||||||
|
* and is set to {@code null}.
|
||||||
*/
|
*/
|
||||||
void onReportAGpsStatus(int agpsType, int agpsStatus, byte[] suplIpAddr) {
|
void onReportAGpsStatus(int agpsType, int agpsStatus, byte[] suplIpAddr) {
|
||||||
|
if (DEBUG) Log.d(TAG, "AGPS_DATA_CONNECTION: " + agpsDataConnStatusAsString(agpsStatus));
|
||||||
switch (agpsStatus) {
|
switch (agpsStatus) {
|
||||||
case GPS_REQUEST_AGPS_DATA_CONN:
|
case GPS_REQUEST_AGPS_DATA_CONN:
|
||||||
if (DEBUG) Log.d(TAG, "GPS_REQUEST_AGPS_DATA_CONN");
|
|
||||||
runOnHandler(() -> handleRequestSuplConnection(agpsType, suplIpAddr));
|
runOnHandler(() -> handleRequestSuplConnection(agpsType, suplIpAddr));
|
||||||
break;
|
break;
|
||||||
case GPS_RELEASE_AGPS_DATA_CONN:
|
case GPS_RELEASE_AGPS_DATA_CONN:
|
||||||
if (DEBUG) Log.d(TAG, "GPS_RELEASE_AGPS_DATA_CONN");
|
|
||||||
runOnHandler(() -> handleReleaseSuplConnection(GPS_RELEASE_AGPS_DATA_CONN));
|
runOnHandler(() -> handleReleaseSuplConnection(GPS_RELEASE_AGPS_DATA_CONN));
|
||||||
break;
|
break;
|
||||||
case GPS_AGPS_DATA_CONNECTED:
|
case GPS_AGPS_DATA_CONNECTED:
|
||||||
if (DEBUG) Log.d(TAG, "GPS_AGPS_DATA_CONNECTED");
|
|
||||||
break;
|
|
||||||
case GPS_AGPS_DATA_CONN_DONE:
|
case GPS_AGPS_DATA_CONN_DONE:
|
||||||
if (DEBUG) Log.d(TAG, "GPS_AGPS_DATA_CONN_DONE");
|
|
||||||
break;
|
|
||||||
case GPS_AGPS_DATA_CONN_FAILED:
|
case GPS_AGPS_DATA_CONN_FAILED:
|
||||||
if (DEBUG) Log.d(TAG, "GPS_AGPS_DATA_CONN_FAILED");
|
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
if (DEBUG) Log.d(TAG, "Received Unknown AGPS status: " + agpsStatus);
|
Log.w(TAG, "Received unknown AGPS status: " + agpsStatus);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -459,11 +457,17 @@ class GnssNetworkConnectivityHandler {
|
|||||||
}
|
}
|
||||||
mAGpsDataConnectionState = AGPS_DATA_CONNECTION_OPENING;
|
mAGpsDataConnectionState = AGPS_DATA_CONNECTION_OPENING;
|
||||||
|
|
||||||
NetworkRequest.Builder requestBuilder = new NetworkRequest.Builder();
|
// The NetworkRequest.Builder class is not used to construct the network request because
|
||||||
requestBuilder.addCapability(getNetworkCapability(mAGpsType));
|
// the ConnectivityService requires the network request to be constructed in this way
|
||||||
NetworkRequest request = requestBuilder.build();
|
// to extend support for requestRouteToHostAddress() method for pre-gnss@2.0 devices.
|
||||||
|
NetworkCapabilities networkCapabilities = new NetworkCapabilities();
|
||||||
|
networkCapabilities.addTransportType(NetworkCapabilities.TRANSPORT_CELLULAR);
|
||||||
|
networkCapabilities.addCapability(getNetworkCapability(mAGpsType));
|
||||||
|
NetworkRequest networkRequest = new NetworkRequest(networkCapabilities,
|
||||||
|
getLegacyDataConnectionType(agpsType), ConnectivityManager.REQUEST_ID_UNSET,
|
||||||
|
NetworkRequest.Type.REQUEST);
|
||||||
mConnMgr.requestNetwork(
|
mConnMgr.requestNetwork(
|
||||||
request,
|
networkRequest,
|
||||||
mSuplConnectivityCallback,
|
mSuplConnectivityCallback,
|
||||||
mHandler,
|
mHandler,
|
||||||
SUPL_NETWORK_REQUEST_TIMEOUT_MILLIS);
|
SUPL_NETWORK_REQUEST_TIMEOUT_MILLIS);
|
||||||
@@ -483,6 +487,19 @@ class GnssNetworkConnectivityHandler {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private int getLegacyDataConnectionType(int agpsType) {
|
||||||
|
switch (agpsType) {
|
||||||
|
case AGPS_TYPE_C2K:
|
||||||
|
case AGPS_TYPE_SUPL:
|
||||||
|
return ConnectivityManager.TYPE_MOBILE_SUPL;
|
||||||
|
case AGPS_TYPE_EIMS:
|
||||||
|
return ConnectivityManager.TYPE_MOBILE_EMERGENCY;
|
||||||
|
case AGPS_TYPE_IMS:
|
||||||
|
return ConnectivityManager.TYPE_MOBILE_IMS;
|
||||||
|
default:
|
||||||
|
throw new IllegalArgumentException("agpsType: " + agpsType);
|
||||||
|
}
|
||||||
|
}
|
||||||
private void handleReleaseSuplConnection(int agpsDataConnStatus) {
|
private void handleReleaseSuplConnection(int agpsDataConnStatus) {
|
||||||
if (DEBUG) {
|
if (DEBUG) {
|
||||||
String message = String.format(
|
String message = String.format(
|
||||||
@@ -546,7 +563,7 @@ class GnssNetworkConnectivityHandler {
|
|||||||
case AGPS_DATA_CONNECTION_OPENING:
|
case AGPS_DATA_CONNECTION_OPENING:
|
||||||
return "OPENING";
|
return "OPENING";
|
||||||
default:
|
default:
|
||||||
return "<Unknown>";
|
return "<Unknown>(" + mAGpsDataConnectionState + ")";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -566,7 +583,7 @@ class GnssNetworkConnectivityHandler {
|
|||||||
case GPS_REQUEST_AGPS_DATA_CONN:
|
case GPS_REQUEST_AGPS_DATA_CONN:
|
||||||
return "REQUEST";
|
return "REQUEST";
|
||||||
default:
|
default:
|
||||||
return "<Unknown>";
|
return "<Unknown>(" + agpsDataConnStatus + ")";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -581,7 +598,7 @@ class GnssNetworkConnectivityHandler {
|
|||||||
case AGPS_TYPE_IMS:
|
case AGPS_TYPE_IMS:
|
||||||
return "IMS";
|
return "IMS";
|
||||||
default:
|
default:
|
||||||
return "<Unknown>";
|
return "<Unknown>(" + agpsType + ")";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -658,4 +675,4 @@ class GnssNetworkConnectivityHandler {
|
|||||||
|
|
||||||
private native void native_update_network_state(boolean connected, int type, boolean roaming,
|
private native void native_update_network_state(boolean connected, int type, boolean roaming,
|
||||||
boolean available, String apn, long networkHandle, short capabilities);
|
boolean available, String apn, long networkHandle, short capabilities);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user