Add setSystemSelectionChannels API
Add setSystemSelectionChannels as a SystemApi, connecting to the identically-named HAL method. Fixes: 144595103 Test: manual through the testapp, atest TelephonyManagerTest Change-Id: I52ff09258af772e272937dd137813d0d63c50cb5 Merged-In: I52ff09258af772e272937dd137813d0d63c50cb5
This commit is contained in:
@@ -9435,6 +9435,7 @@ package android.telephony {
|
|||||||
method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public boolean setRadioPower(boolean);
|
method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public boolean setRadioPower(boolean);
|
||||||
method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setSimPowerState(int);
|
method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setSimPowerState(int);
|
||||||
method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setSimPowerStateForSlot(int, int);
|
method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setSimPowerStateForSlot(int, int);
|
||||||
|
method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setSystemSelectionChannels(@NonNull java.util.List<android.telephony.RadioAccessSpecifier>, @Nullable java.util.concurrent.Executor, @Nullable java.util.function.Consumer<java.lang.Boolean>);
|
||||||
method @Deprecated public void setVisualVoicemailEnabled(android.telecom.PhoneAccountHandle, boolean);
|
method @Deprecated public void setVisualVoicemailEnabled(android.telecom.PhoneAccountHandle, boolean);
|
||||||
method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setVoiceActivationState(int);
|
method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setVoiceActivationState(int);
|
||||||
method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void shutdownAllRadios();
|
method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void shutdownAllRadios();
|
||||||
|
|||||||
@@ -3248,6 +3248,7 @@ package android.telephony {
|
|||||||
method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void refreshUiccProfile();
|
method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void refreshUiccProfile();
|
||||||
method @Deprecated public void setCarrierTestOverride(String, String, String, String, String, String, String);
|
method @Deprecated public void setCarrierTestOverride(String, String, String, String, String, String, String);
|
||||||
method public void setCarrierTestOverride(String, String, String, String, String, String, String, String, String);
|
method public void setCarrierTestOverride(String, String, String, String, String, String, String, String, String);
|
||||||
|
method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setSystemSelectionChannels(@NonNull java.util.List<android.telephony.RadioAccessSpecifier>, @Nullable java.util.concurrent.Executor, @Nullable java.util.function.Consumer<java.lang.Boolean>);
|
||||||
method @RequiresPermission("android.permission.READ_ACTIVE_EMERGENCY_SESSION") public void updateTestOtaEmergencyNumberDbFilePath(@NonNull String);
|
method @RequiresPermission("android.permission.READ_ACTIVE_EMERGENCY_SESSION") public void updateTestOtaEmergencyNumberDbFilePath(@NonNull String);
|
||||||
field public static final int CARRIER_PRIVILEGE_STATUS_ERROR_LOADING_RULES = -2; // 0xfffffffe
|
field public static final int CARRIER_PRIVILEGE_STATUS_ERROR_LOADING_RULES = -2; // 0xfffffffe
|
||||||
field public static final int CARRIER_PRIVILEGE_STATUS_HAS_ACCESS = 1; // 0x1
|
field public static final int CARRIER_PRIVILEGE_STATUS_HAS_ACCESS = 1; // 0x1
|
||||||
|
|||||||
@@ -95,6 +95,7 @@ import android.util.Pair;
|
|||||||
import com.android.ims.internal.IImsServiceFeatureCallback;
|
import com.android.ims.internal.IImsServiceFeatureCallback;
|
||||||
import com.android.internal.annotations.VisibleForTesting;
|
import com.android.internal.annotations.VisibleForTesting;
|
||||||
import com.android.internal.telephony.CellNetworkScanResult;
|
import com.android.internal.telephony.CellNetworkScanResult;
|
||||||
|
import com.android.internal.telephony.IBooleanConsumer;
|
||||||
import com.android.internal.telephony.INumberVerificationCallback;
|
import com.android.internal.telephony.INumberVerificationCallback;
|
||||||
import com.android.internal.telephony.IOns;
|
import com.android.internal.telephony.IOns;
|
||||||
import com.android.internal.telephony.IPhoneSubInfo;
|
import com.android.internal.telephony.IPhoneSubInfo;
|
||||||
@@ -118,6 +119,7 @@ import java.util.HashMap;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Locale;
|
import java.util.Locale;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
import java.util.Objects;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
import java.util.concurrent.Executor;
|
import java.util.concurrent.Executor;
|
||||||
import java.util.function.Consumer;
|
import java.util.function.Consumer;
|
||||||
@@ -12429,6 +12431,51 @@ public class TelephonyManager {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Specify which bands modem's background scan must act on.
|
||||||
|
* If {@code specifiers} is non-empty, the scan will be restricted to the bands specified.
|
||||||
|
* Otherwise, it scans all bands.
|
||||||
|
*
|
||||||
|
* For example, CBRS is only on LTE band 48. By specifying this band,
|
||||||
|
* modem saves more power.
|
||||||
|
*
|
||||||
|
* @param specifiers which bands to scan.
|
||||||
|
* @param executor The executor to execute the callback on
|
||||||
|
* @param callback The callback that gets invoked when the radio responds to the request. Called
|
||||||
|
* with {@code true} if the request succeeded, {@code false} otherwise.
|
||||||
|
* @hide
|
||||||
|
*/
|
||||||
|
@SystemApi
|
||||||
|
@TestApi
|
||||||
|
@RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE)
|
||||||
|
public void setSystemSelectionChannels(@NonNull List<RadioAccessSpecifier> specifiers,
|
||||||
|
@Nullable @CallbackExecutor Executor executor,
|
||||||
|
@Nullable Consumer<Boolean> callback) {
|
||||||
|
Objects.requireNonNull(specifiers, "Specifiers must not be null.");
|
||||||
|
if (callback != null) {
|
||||||
|
Objects.requireNonNull(executor, "Executor must not be null when"
|
||||||
|
+ " the callback is nonnull");
|
||||||
|
}
|
||||||
|
|
||||||
|
IBooleanConsumer aidlConsumer = callback == null ? null : new IBooleanConsumer.Stub() {
|
||||||
|
@Override
|
||||||
|
public void accept(boolean result) {
|
||||||
|
executor.execute(() -> callback.accept(result));
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
try {
|
||||||
|
ITelephony service = getITelephony();
|
||||||
|
if (service != null) {
|
||||||
|
service.setSystemSelectionChannels(specifiers, getSubId(), aidlConsumer);
|
||||||
|
}
|
||||||
|
} catch (RemoteException ex) {
|
||||||
|
if (!isSystemProcess()) {
|
||||||
|
ex.rethrowAsRuntimeException();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Verifies whether the input MCC/MNC and MVNO correspond to the current carrier.
|
* Verifies whether the input MCC/MNC and MVNO correspond to the current carrier.
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -0,0 +1,23 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (C) 2020 The Android Open Source Project
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package com.android.internal.telephony;
|
||||||
|
|
||||||
|
// Copies consumer pattern for an operation that requires a boolean result from another process to
|
||||||
|
// finish.
|
||||||
|
oneway interface IBooleanConsumer {
|
||||||
|
void accept(boolean result);
|
||||||
|
}
|
||||||
@@ -42,6 +42,7 @@ import android.telephony.NetworkScanRequest;
|
|||||||
import android.telephony.PhoneCapability;
|
import android.telephony.PhoneCapability;
|
||||||
import android.telephony.PhoneNumberRange;
|
import android.telephony.PhoneNumberRange;
|
||||||
import android.telephony.RadioAccessFamily;
|
import android.telephony.RadioAccessFamily;
|
||||||
|
import android.telephony.RadioAccessSpecifier;
|
||||||
import android.telephony.ServiceState;
|
import android.telephony.ServiceState;
|
||||||
import android.telephony.SignalStrength;
|
import android.telephony.SignalStrength;
|
||||||
import android.telephony.TelephonyHistogram;
|
import android.telephony.TelephonyHistogram;
|
||||||
@@ -56,6 +57,7 @@ import android.telephony.ims.aidl.IImsRegistration;
|
|||||||
import android.telephony.ims.aidl.IImsRegistrationCallback;
|
import android.telephony.ims.aidl.IImsRegistrationCallback;
|
||||||
import com.android.ims.internal.IImsServiceFeatureCallback;
|
import com.android.ims.internal.IImsServiceFeatureCallback;
|
||||||
import com.android.internal.telephony.CellNetworkScanResult;
|
import com.android.internal.telephony.CellNetworkScanResult;
|
||||||
|
import com.android.internal.telephony.IBooleanConsumer;
|
||||||
import com.android.internal.telephony.IIntegerConsumer;
|
import com.android.internal.telephony.IIntegerConsumer;
|
||||||
import com.android.internal.telephony.INumberVerificationCallback;
|
import com.android.internal.telephony.INumberVerificationCallback;
|
||||||
import com.android.internal.telephony.OperatorInfo;
|
import com.android.internal.telephony.OperatorInfo;
|
||||||
@@ -2201,6 +2203,9 @@ interface ITelephony {
|
|||||||
|
|
||||||
boolean isApnMetered(int apnType, int subId);
|
boolean isApnMetered(int apnType, int subId);
|
||||||
|
|
||||||
|
oneway void setSystemSelectionChannels(in List<RadioAccessSpecifier> specifiers,
|
||||||
|
int subId, IBooleanConsumer resultCallback);
|
||||||
|
|
||||||
boolean isMvnoMatched(int subId, int mvnoType, String mvnoMatchData);
|
boolean isMvnoMatched(int subId, int mvnoType, String mvnoMatchData);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -491,6 +491,7 @@ public interface RILConstants {
|
|||||||
int RIL_REQUEST_SWITCH_DUAL_SIM_CONFIG = 207;
|
int RIL_REQUEST_SWITCH_DUAL_SIM_CONFIG = 207;
|
||||||
int RIL_REQUEST_ENABLE_UICC_APPLICATIONS = 208;
|
int RIL_REQUEST_ENABLE_UICC_APPLICATIONS = 208;
|
||||||
int RIL_REQUEST_GET_UICC_APPLICATIONS_ENABLEMENT = 209;
|
int RIL_REQUEST_GET_UICC_APPLICATIONS_ENABLEMENT = 209;
|
||||||
|
int RIL_REQUEST_SET_SYSTEM_SELECTION_CHANNELS = 210;
|
||||||
|
|
||||||
/* Responses begin */
|
/* Responses begin */
|
||||||
int RIL_RESPONSE_ACKNOWLEDGEMENT = 800;
|
int RIL_RESPONSE_ACKNOWLEDGEMENT = 800;
|
||||||
|
|||||||
Reference in New Issue
Block a user