Loading Android.bp +1 −0 Original line number Diff line number Diff line Loading @@ -62,6 +62,7 @@ java_library { "android.hardware.radio-V1.2-java", "android.hardware.radio-V1.3-java", "android.hardware.radio-V1.4-java", "android.hardware.radio-V1.5-java", "voip-common", "ims-common", "services", Loading src/java/com/android/internal/telephony/RIL.java +86 −3 Original line number Diff line number Diff line Loading @@ -180,6 +180,9 @@ public class RIL extends BaseCommands implements CommandsInterface { /** @hide */ public static final HalVersion RADIO_HAL_VERSION_1_4 = new HalVersion(1, 4); /** @hide */ public static final HalVersion RADIO_HAL_VERSION_1_5 = new HalVersion(1, 5); // IRadio version private HalVersion mRadioVersion = RADIO_HAL_VERSION_UNKNOWN; Loading Loading @@ -434,12 +437,21 @@ public class RIL extends BaseCommands implements CommandsInterface { riljLoge("getRadioProxy: mRadioProxy for " + HIDL_SERVICE_NAME[mPhoneId] + " is disabled"); } else { try { mRadioProxy = android.hardware.radio.V1_5.IRadio.getService( HIDL_SERVICE_NAME[mPhoneId], true); mRadioVersion = RADIO_HAL_VERSION_1_5; } catch (NoSuchElementException e) { } if (mRadioProxy == null) { try { mRadioProxy = android.hardware.radio.V1_4.IRadio.getService( HIDL_SERVICE_NAME[mPhoneId], true); mRadioVersion = RADIO_HAL_VERSION_1_4; } catch (NoSuchElementException e) { } } if (mRadioProxy == null) { try { Loading Loading @@ -2080,12 +2092,83 @@ public class RIL extends BaseCommands implements CommandsInterface { return rasInHalFormat; } private android.hardware.radio.V1_5.RadioAccessSpecifier convertRadioAccessSpecifierToRadioHAL_1_5(RadioAccessSpecifier ras) { android.hardware.radio.V1_5.RadioAccessSpecifier rasInHalFormat = new android.hardware.radio.V1_5.RadioAccessSpecifier(); rasInHalFormat.radioAccessNetwork = ras.getRadioAccessNetwork(); List<Integer> bands = null; switch (ras.getRadioAccessNetwork()) { case AccessNetworkType.GERAN: bands = rasInHalFormat.bands.geranBands(); break; case AccessNetworkType.UTRAN: bands = rasInHalFormat.bands.utranBands(); break; case AccessNetworkType.EUTRAN: bands = rasInHalFormat.bands.eutranBands(); break; case AccessNetworkType.NGRAN: bands = rasInHalFormat.bands.ngranBands(); break; default: Log.wtf(RILJ_LOG_TAG, "radioAccessNetwork " + ras.getRadioAccessNetwork() + " not supported!"); return null; } if (ras.getBands() != null) { for (int band : ras.getBands()) { bands.add(band); } } if (ras.getChannels() != null) { for (int channel : ras.getChannels()) { rasInHalFormat.channels.add(channel); } } return rasInHalFormat; } @Override public void startNetworkScan(NetworkScanRequest nsr, Message result) { IRadio radioProxy = getRadioProxy(result); if (radioProxy != null) { if (mRadioVersion.greaterOrEqual(RADIO_HAL_VERSION_1_2)) { if (mRadioVersion.greaterOrEqual(RADIO_HAL_VERSION_1_5)) { android.hardware.radio.V1_5.NetworkScanRequest request = new android.hardware.radio.V1_5.NetworkScanRequest(); request.type = nsr.getScanType(); request.interval = nsr.getSearchPeriodicity(); request.maxSearchTime = nsr.getMaxSearchTime(); request.incrementalResultsPeriodicity = nsr.getIncrementalResultsPeriodicity(); request.incrementalResults = nsr.getIncrementalResults(); for (RadioAccessSpecifier ras : nsr.getSpecifiers()) { android.hardware.radio.V1_5.RadioAccessSpecifier rasInHalFormat = convertRadioAccessSpecifierToRadioHAL_1_5(ras); if (rasInHalFormat == null) { return; } request.specifiers.add(rasInHalFormat); } request.mccMncs.addAll(nsr.getPlmns()); RILRequest rr = obtainRequest(RIL_REQUEST_START_NETWORK_SCAN, result, mRILDefaultWorkSource); if (RILJ_LOGD) { riljLog(rr.serialString() + "> " + requestToString(rr.mRequest)); } try { android.hardware.radio.V1_5.IRadio radioProxy15 = (android.hardware.radio.V1_5.IRadio) radioProxy; radioProxy15.startNetworkScan_1_5(rr.mSerial, request); } catch (RemoteException | RuntimeException e) { handleRadioProxyExceptionForRR(rr, "startNetworkScan", e); } } else if (mRadioVersion.greaterOrEqual(RADIO_HAL_VERSION_1_2)) { android.hardware.radio.V1_2.NetworkScanRequest request = new android.hardware.radio.V1_2.NetworkScanRequest(); request.type = nsr.getScanType(); Loading Loading
Android.bp +1 −0 Original line number Diff line number Diff line Loading @@ -62,6 +62,7 @@ java_library { "android.hardware.radio-V1.2-java", "android.hardware.radio-V1.3-java", "android.hardware.radio-V1.4-java", "android.hardware.radio-V1.5-java", "voip-common", "ims-common", "services", Loading
src/java/com/android/internal/telephony/RIL.java +86 −3 Original line number Diff line number Diff line Loading @@ -180,6 +180,9 @@ public class RIL extends BaseCommands implements CommandsInterface { /** @hide */ public static final HalVersion RADIO_HAL_VERSION_1_4 = new HalVersion(1, 4); /** @hide */ public static final HalVersion RADIO_HAL_VERSION_1_5 = new HalVersion(1, 5); // IRadio version private HalVersion mRadioVersion = RADIO_HAL_VERSION_UNKNOWN; Loading Loading @@ -434,12 +437,21 @@ public class RIL extends BaseCommands implements CommandsInterface { riljLoge("getRadioProxy: mRadioProxy for " + HIDL_SERVICE_NAME[mPhoneId] + " is disabled"); } else { try { mRadioProxy = android.hardware.radio.V1_5.IRadio.getService( HIDL_SERVICE_NAME[mPhoneId], true); mRadioVersion = RADIO_HAL_VERSION_1_5; } catch (NoSuchElementException e) { } if (mRadioProxy == null) { try { mRadioProxy = android.hardware.radio.V1_4.IRadio.getService( HIDL_SERVICE_NAME[mPhoneId], true); mRadioVersion = RADIO_HAL_VERSION_1_4; } catch (NoSuchElementException e) { } } if (mRadioProxy == null) { try { Loading Loading @@ -2080,12 +2092,83 @@ public class RIL extends BaseCommands implements CommandsInterface { return rasInHalFormat; } private android.hardware.radio.V1_5.RadioAccessSpecifier convertRadioAccessSpecifierToRadioHAL_1_5(RadioAccessSpecifier ras) { android.hardware.radio.V1_5.RadioAccessSpecifier rasInHalFormat = new android.hardware.radio.V1_5.RadioAccessSpecifier(); rasInHalFormat.radioAccessNetwork = ras.getRadioAccessNetwork(); List<Integer> bands = null; switch (ras.getRadioAccessNetwork()) { case AccessNetworkType.GERAN: bands = rasInHalFormat.bands.geranBands(); break; case AccessNetworkType.UTRAN: bands = rasInHalFormat.bands.utranBands(); break; case AccessNetworkType.EUTRAN: bands = rasInHalFormat.bands.eutranBands(); break; case AccessNetworkType.NGRAN: bands = rasInHalFormat.bands.ngranBands(); break; default: Log.wtf(RILJ_LOG_TAG, "radioAccessNetwork " + ras.getRadioAccessNetwork() + " not supported!"); return null; } if (ras.getBands() != null) { for (int band : ras.getBands()) { bands.add(band); } } if (ras.getChannels() != null) { for (int channel : ras.getChannels()) { rasInHalFormat.channels.add(channel); } } return rasInHalFormat; } @Override public void startNetworkScan(NetworkScanRequest nsr, Message result) { IRadio radioProxy = getRadioProxy(result); if (radioProxy != null) { if (mRadioVersion.greaterOrEqual(RADIO_HAL_VERSION_1_2)) { if (mRadioVersion.greaterOrEqual(RADIO_HAL_VERSION_1_5)) { android.hardware.radio.V1_5.NetworkScanRequest request = new android.hardware.radio.V1_5.NetworkScanRequest(); request.type = nsr.getScanType(); request.interval = nsr.getSearchPeriodicity(); request.maxSearchTime = nsr.getMaxSearchTime(); request.incrementalResultsPeriodicity = nsr.getIncrementalResultsPeriodicity(); request.incrementalResults = nsr.getIncrementalResults(); for (RadioAccessSpecifier ras : nsr.getSpecifiers()) { android.hardware.radio.V1_5.RadioAccessSpecifier rasInHalFormat = convertRadioAccessSpecifierToRadioHAL_1_5(ras); if (rasInHalFormat == null) { return; } request.specifiers.add(rasInHalFormat); } request.mccMncs.addAll(nsr.getPlmns()); RILRequest rr = obtainRequest(RIL_REQUEST_START_NETWORK_SCAN, result, mRILDefaultWorkSource); if (RILJ_LOGD) { riljLog(rr.serialString() + "> " + requestToString(rr.mRequest)); } try { android.hardware.radio.V1_5.IRadio radioProxy15 = (android.hardware.radio.V1_5.IRadio) radioProxy; radioProxy15.startNetworkScan_1_5(rr.mSerial, request); } catch (RemoteException | RuntimeException e) { handleRadioProxyExceptionForRR(rr, "startNetworkScan", e); } } else if (mRadioVersion.greaterOrEqual(RADIO_HAL_VERSION_1_2)) { android.hardware.radio.V1_2.NetworkScanRequest request = new android.hardware.radio.V1_2.NetworkScanRequest(); request.type = nsr.getScanType(); Loading