script-astra/Android/Sdk/sources/android-35/android/telephony/satellite/stub/SatelliteImplBase.java
localadmin 4380f00a78 init
2025-01-20 18:15:20 +03:00

772 lines
35 KiB
Java

/*
* Copyright (C) 2022 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 android.telephony.satellite.stub;
import android.annotation.NonNull;
import android.os.IBinder;
import android.os.RemoteException;
import android.telephony.IBooleanConsumer;
import android.telephony.IIntegerConsumer;
import android.util.Log;
import com.android.internal.telephony.util.TelephonyUtils;
import java.util.List;
import java.util.concurrent.CancellationException;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.CompletionException;
import java.util.concurrent.Executor;
/**
* Base implementation of satellite service.
* Any service wishing to provide satellite services should extend this class and implement all
* methods that the service supports.
* @hide
*/
public class SatelliteImplBase extends SatelliteService {
private static final String TAG = "SatelliteImplBase";
protected final Executor mExecutor;
/**
* Create SatelliteImplBase using the Executor specified for methods being called from the
* framework.
* @param executor The executor for the framework to use when executing the methods overridden
* by the implementation of Satellite.
* @hide
*/
public SatelliteImplBase(@NonNull Executor executor) {
super();
mExecutor = executor;
}
/**
* @return The binder for the Satellite implementation.
* @hide
*/
public final IBinder getBinder() {
return mBinder;
}
private final IBinder mBinder = new ISatellite.Stub() {
@Override
public void setSatelliteListener(ISatelliteListener listener) throws RemoteException {
executeMethodAsync(
() -> SatelliteImplBase.this.setSatelliteListener(listener),
"setSatelliteListener");
}
@Override
public void requestSatelliteListeningEnabled(boolean enable, int timeout,
IIntegerConsumer resultCallback) throws RemoteException {
executeMethodAsync(
() -> SatelliteImplBase.this
.requestSatelliteListeningEnabled(enable, timeout, resultCallback),
"requestSatelliteListeningEnabled");
}
@Override
public void enableCellularModemWhileSatelliteModeIsOn(boolean enabled,
IIntegerConsumer resultCallback) throws RemoteException {
executeMethodAsync(
() -> SatelliteImplBase.this
.enableCellularModemWhileSatelliteModeIsOn(enabled, resultCallback),
"enableCellularModemWhileSatelliteModeIsOn");
}
@Override
public void requestSatelliteEnabled(boolean enableSatellite, boolean enableDemoMode,
boolean isEmergency, IIntegerConsumer resultCallback) throws RemoteException {
executeMethodAsync(
() -> SatelliteImplBase.this
.requestSatelliteEnabled(
enableSatellite, enableDemoMode, isEmergency, resultCallback),
"requestSatelliteEnabled");
}
@Override
public void requestIsSatelliteEnabled(IIntegerConsumer resultCallback,
IBooleanConsumer callback) throws RemoteException {
executeMethodAsync(
() -> SatelliteImplBase.this
.requestIsSatelliteEnabled(resultCallback, callback),
"requestIsSatelliteEnabled");
}
@Override
public void requestIsSatelliteSupported(IIntegerConsumer resultCallback,
IBooleanConsumer callback) throws RemoteException {
executeMethodAsync(
() -> SatelliteImplBase.this
.requestIsSatelliteSupported(resultCallback, callback),
"requestIsSatelliteSupported");
}
@Override
public void requestSatelliteCapabilities(IIntegerConsumer resultCallback,
ISatelliteCapabilitiesConsumer callback) throws RemoteException {
executeMethodAsync(
() -> SatelliteImplBase.this
.requestSatelliteCapabilities(resultCallback, callback),
"requestSatelliteCapabilities");
}
@Override
public void startSendingSatellitePointingInfo(IIntegerConsumer resultCallback)
throws RemoteException {
executeMethodAsync(
() -> SatelliteImplBase.this.startSendingSatellitePointingInfo(resultCallback),
"startSendingSatellitePointingInfo");
}
@Override
public void stopSendingSatellitePointingInfo(IIntegerConsumer resultCallback)
throws RemoteException {
executeMethodAsync(
() -> SatelliteImplBase.this.stopSendingSatellitePointingInfo(resultCallback),
"stopSendingSatellitePointingInfo");
}
@Override
public void provisionSatelliteService(String token, byte[] provisionData,
IIntegerConsumer resultCallback) throws RemoteException {
executeMethodAsync(
() -> SatelliteImplBase.this
.provisionSatelliteService(token, provisionData, resultCallback),
"provisionSatelliteService");
}
@Override
public void deprovisionSatelliteService(String token, IIntegerConsumer resultCallback)
throws RemoteException {
executeMethodAsync(
() -> SatelliteImplBase.this.deprovisionSatelliteService(token, resultCallback),
"deprovisionSatelliteService");
}
@Override
public void requestIsSatelliteProvisioned(IIntegerConsumer resultCallback,
IBooleanConsumer callback) throws RemoteException {
executeMethodAsync(
() -> SatelliteImplBase.this
.requestIsSatelliteProvisioned(resultCallback, callback),
"requestIsSatelliteProvisioned");
}
@Override
public void pollPendingSatelliteDatagrams(IIntegerConsumer resultCallback)
throws RemoteException {
executeMethodAsync(
() -> SatelliteImplBase.this.pollPendingSatelliteDatagrams(resultCallback),
"pollPendingSatelliteDatagrams");
}
@Override
public void sendSatelliteDatagram(SatelliteDatagram datagram, boolean isEmergency,
IIntegerConsumer resultCallback) throws RemoteException {
executeMethodAsync(
() -> SatelliteImplBase.this
.sendSatelliteDatagram(datagram, isEmergency, resultCallback),
"sendDatagram");
}
@Override
public void requestSatelliteModemState(IIntegerConsumer resultCallback,
IIntegerConsumer callback) throws RemoteException {
executeMethodAsync(
() -> SatelliteImplBase.this
.requestSatelliteModemState(resultCallback, callback),
"requestSatelliteModemState");
}
@Override
public void requestTimeForNextSatelliteVisibility(IIntegerConsumer resultCallback,
IIntegerConsumer callback) throws RemoteException {
executeMethodAsync(
() -> SatelliteImplBase.this
.requestTimeForNextSatelliteVisibility(resultCallback, callback),
"requestTimeForNextSatelliteVisibility");
}
@Override
public void setSatellitePlmn(int simSlot, List<String> carrierPlmnList,
List<String> devicePlmnList, IIntegerConsumer resultCallback)
throws RemoteException {
executeMethodAsync(
() -> SatelliteImplBase.this.setSatellitePlmn(
simSlot, carrierPlmnList, devicePlmnList, resultCallback),
"setSatellitePlmn");
}
@Override
public void setSatelliteEnabledForCarrier(int simSlot, boolean enableSatellite,
IIntegerConsumer resultCallback) throws RemoteException {
executeMethodAsync(
() -> SatelliteImplBase.this.setSatelliteEnabledForCarrier(
simSlot, enableSatellite, resultCallback),
"setSatelliteEnabledForCarrier");
}
@Override
public void requestIsSatelliteEnabledForCarrier(int simSlot,
IIntegerConsumer resultCallback, IBooleanConsumer callback) throws RemoteException {
executeMethodAsync(
() -> SatelliteImplBase.this
.requestIsSatelliteEnabledForCarrier(simSlot, resultCallback, callback),
"requestIsSatelliteEnabledForCarrier");
}
@Override
public void requestSignalStrength(IIntegerConsumer resultCallback,
INtnSignalStrengthConsumer callback) throws RemoteException {
executeMethodAsync(
() -> SatelliteImplBase.this.requestSignalStrength(resultCallback, callback),
"requestSignalStrength");
}
@Override
public void startSendingNtnSignalStrength(IIntegerConsumer resultCallback)
throws RemoteException {
executeMethodAsync(
() -> SatelliteImplBase.this.startSendingNtnSignalStrength(resultCallback),
"startSendingNtnSignalStrength");
}
@Override
public void stopSendingNtnSignalStrength(IIntegerConsumer resultCallback)
throws RemoteException {
executeMethodAsync(
() -> SatelliteImplBase.this.stopSendingNtnSignalStrength(resultCallback),
"stopSendingNtnSignalStrength");
}
@Override
public void abortSendingSatelliteDatagrams(IIntegerConsumer resultCallback)
throws RemoteException {
executeMethodAsync(
() -> SatelliteImplBase.this.abortSendingSatelliteDatagrams(resultCallback),
"abortSendingSatelliteDatagrams");
}
// Call the methods with a clean calling identity on the executor and wait indefinitely for
// the future to return.
private void executeMethodAsync(Runnable r, String errorLogName) throws RemoteException {
try {
CompletableFuture.runAsync(
() -> TelephonyUtils.runWithCleanCallingIdentity(r), mExecutor).join();
} catch (CancellationException | CompletionException e) {
Log.w(TAG, "SatelliteImplBase Binder - " + errorLogName + " exception: "
+ e.getMessage());
throw new RemoteException(e.getMessage());
}
}
};
/**
* Register the callback interface with satellite service.
*
* @param listener The callback interface to handle satellite service indications.
*
* Valid result codes returned:
* SatelliteResult:SATELLITE_RESULT_SUCCESS
* SatelliteResult:SATELLITE_RESULT_SERVICE_ERROR
* SatelliteResult:SATELLITE_RESULT_MODEM_ERROR
* SatelliteResult:SATELLITE_RESULT_INVALID_MODEM_STATE
* SatelliteResult:SATELLITE_RESULT_INVALID_ARGUMENTS
* SatelliteResult:SATELLITE_RESULT_RADIO_NOT_AVAILABLE
* SatelliteResult:SATELLITE_RESULT_REQUEST_NOT_SUPPORTED
* SatelliteResult:SATELLITE_RESULT_NO_RESOURCES
*/
public void setSatelliteListener(@NonNull ISatelliteListener listener) {
// stub implementation
}
/**
* Request to enable or disable the satellite service listening mode.
* Listening mode allows the satellite service to listen for incoming pages.
*
* @param enable True to enable satellite listening mode and false to disable.
* @param timeout How long the satellite modem should wait for the next incoming page before
* disabling listening mode.
* @param resultCallback The callback to receive the error code result of the operation.
*
* Valid result codes returned:
* SatelliteResult:SATELLITE_RESULT_SUCCESS
* SatelliteResult:SATELLITE_RESULT_SERVICE_ERROR
* SatelliteResult:SATELLITE_RESULT_MODEM_ERROR
* SatelliteResult:SATELLITE_RESULT_INVALID_MODEM_STATE
* SatelliteResult:SATELLITE_RESULT_INVALID_ARGUMENTS
* SatelliteResult:SATELLITE_RESULT_RADIO_NOT_AVAILABLE
* SatelliteResult:SATELLITE_RESULT_REQUEST_NOT_SUPPORTED
* SatelliteResult:SATELLITE_RESULT_NO_RESOURCES
*/
public void requestSatelliteListeningEnabled(boolean enable, int timeout,
@NonNull IIntegerConsumer resultCallback) {
// stub implementation
}
/**
* Allow cellular modem scanning while satellite mode is on.
* @param enabled {@code true} to enable cellular modem while satellite mode is on
* and {@code false} to disable
* @param resultCallback The callback to receive the error code result of the operation.
*/
public void enableCellularModemWhileSatelliteModeIsOn(boolean enabled,
@NonNull IIntegerConsumer resultCallback) {
// stub implementation
}
/**
* Request to enable or disable the satellite modem and demo mode. If the satellite modem is
* enabled, this may also disable the cellular modem, and if the satellite modem is disabled,
* this may also re-enable the cellular modem.
*
* @param enableSatellite True to enable the satellite modem and false to disable.
* @param enableDemoMode True to enable demo mode and false to disable.
* @param isEmergency To specify the satellite is enabled for emergency session and false for
* non emergency session. Note: it is possible that a emergency session started get converted
* to a non emergency session and vice versa.
* @param resultCallback The callback to receive the error code result of the operation.
*
* Valid result codes returned:
* SatelliteResult:SATELLITE_RESULT_SUCCESS
* SatelliteResult:SATELLITE_RESULT_SERVICE_ERROR
* SatelliteResult:SATELLITE_RESULT_MODEM_ERROR
* SatelliteResult:SATELLITE_RESULT_INVALID_MODEM_STATE
* SatelliteResult:SATELLITE_RESULT_INVALID_ARGUMENTS
* SatelliteResult:SATELLITE_RESULT_RADIO_NOT_AVAILABLE
* SatelliteResult:SATELLITE_RESULT_REQUEST_NOT_SUPPORTED
* SatelliteResult:SATELLITE_RESULT_NO_RESOURCES
*/
public void requestSatelliteEnabled(boolean enableSatellite, boolean enableDemoMode,
boolean isEmergency, @NonNull IIntegerConsumer resultCallback) {
// stub implementation
}
/**
* Request to get whether the satellite modem is enabled.
*
* @param resultCallback The callback to receive the error code result of the operation.
* This must only be sent when the result is not
* SatelliteResult#SATELLITE_RESULT_SUCCESS.
* @param callback If the result is SatelliteResult#SATELLITE_RESULT_SUCCESS, the callback to
* receive whether the satellite modem is enabled.
*
* Valid result codes returned:
* SatelliteResult:SATELLITE_RESULT_SUCCESS
* SatelliteResult:SATELLITE_RESULT_SERVICE_ERROR
* SatelliteResult:SATELLITE_RESULT_MODEM_ERROR
* SatelliteResult:SATELLITE_RESULT_INVALID_MODEM_STATE
* SatelliteResult:SATELLITE_RESULT_INVALID_ARGUMENTS
* SatelliteResult:SATELLITE_RESULT_RADIO_NOT_AVAILABLE
* SatelliteResult:SATELLITE_RESULT_REQUEST_NOT_SUPPORTED
* SatelliteResult:SATELLITE_RESULT_NO_RESOURCES
*/
public void requestIsSatelliteEnabled(@NonNull IIntegerConsumer resultCallback,
@NonNull IBooleanConsumer callback) {
// stub implementation
}
/**
* Request to get whether the satellite service is supported on the device.
*
* @param resultCallback The callback to receive the error code result of the operation.
* This must only be sent when the result is not
* SatelliteResult#SATELLITE_RESULT_SUCCESS.
* @param callback If the result is SatelliteResult#SATELLITE_RESULT_SUCCESS, the callback to
* receive whether the satellite service is supported on the device.
*
* Valid result codes returned:
* SatelliteResult:SATELLITE_RESULT_SUCCESS
* SatelliteResult:SATELLITE_RESULT_SERVICE_ERROR
* SatelliteResult:SATELLITE_RESULT_MODEM_ERROR
* SatelliteResult:SATELLITE_RESULT_INVALID_MODEM_STATE
* SatelliteResult:SATELLITE_RESULT_INVALID_ARGUMENTS
* SatelliteResult:SATELLITE_RESULT_RADIO_NOT_AVAILABLE
* SatelliteResult:SATELLITE_RESULT_REQUEST_NOT_SUPPORTED
* SatelliteResult:SATELLITE_RESULT_NO_RESOURCES
*/
public void requestIsSatelliteSupported(@NonNull IIntegerConsumer resultCallback,
@NonNull IBooleanConsumer callback) {
// stub implementation
}
/**
* Request to get the SatelliteCapabilities of the satellite service.
*
* @param resultCallback The callback to receive the error code result of the operation.
* This must only be sent when the result is not
* SatelliteResult#SATELLITE_RESULT_SUCCESS.
* @param callback If the result is SatelliteResult#SATELLITE_RESULT_SUCCESS, the callback to
* receive the SatelliteCapabilities of the satellite service.
*
* Valid result codes returned:
* SatelliteResult:SATELLITE_RESULT_SUCCESS
* SatelliteResult:SATELLITE_RESULT_SERVICE_ERROR
* SatelliteResult:SATELLITE_RESULT_MODEM_ERROR
* SatelliteResult:SATELLITE_RESULT_INVALID_MODEM_STATE
* SatelliteResult:SATELLITE_RESULT_INVALID_ARGUMENTS
* SatelliteResult:SATELLITE_RESULT_RADIO_NOT_AVAILABLE
* SatelliteResult:SATELLITE_RESULT_REQUEST_NOT_SUPPORTED
* SatelliteResult:SATELLITE_RESULT_NO_RESOURCES
*/
public void requestSatelliteCapabilities(@NonNull IIntegerConsumer resultCallback,
@NonNull ISatelliteCapabilitiesConsumer callback) {
// stub implementation
}
/**
* User started pointing to the satellite.
* The satellite service should report the satellite pointing info via
* ISatelliteListener#onSatellitePositionChanged as the user device/satellite moves.
*
* @param resultCallback The callback to receive the error code result of the operation.
*
* Valid result codes returned:
* SatelliteResult:SATELLITE_RESULT_SUCCESS
* SatelliteResult:SATELLITE_RESULT_SERVICE_ERROR
* SatelliteResult:SATELLITE_RESULT_MODEM_ERROR
* SatelliteResult:SATELLITE_RESULT_INVALID_MODEM_STATE
* SatelliteResult:SATELLITE_RESULT_INVALID_ARGUMENTS
* SatelliteResult:SATELLITE_RESULT_RADIO_NOT_AVAILABLE
* SatelliteResult:SATELLITE_RESULT_REQUEST_NOT_SUPPORTED
* SatelliteResult:SATELLITE_RESULT_NO_RESOURCES
*/
public void startSendingSatellitePointingInfo(@NonNull IIntegerConsumer resultCallback) {
// stub implementation
}
/**
* User stopped pointing to the satellite.
* The satellite service should stop reporting satellite pointing info to the framework.
*
* @param resultCallback The callback to receive the error code result of the operation.
*
* Valid result codes returned:
* SatelliteResult:SATELLITE_RESULT_SUCCESS
* SatelliteResult:SATELLITE_RESULT_SERVICE_ERROR
* SatelliteResult:SATELLITE_RESULT_MODEM_ERROR
* SatelliteResult:SATELLITE_RESULT_INVALID_MODEM_STATE
* SatelliteResult:SATELLITE_RESULT_INVALID_ARGUMENTS
* SatelliteResult:SATELLITE_RESULT_RADIO_NOT_AVAILABLE
* SatelliteResult:SATELLITE_RESULT_REQUEST_NOT_SUPPORTED
* SatelliteResult:SATELLITE_RESULT_NO_RESOURCES
*/
public void stopSendingSatellitePointingInfo(@NonNull IIntegerConsumer resultCallback) {
// stub implementation
}
/**
* Provision the device with a satellite provider.
* This is needed if the provider allows dynamic registration.
* Once provisioned, ISatelliteListener#onSatelliteProvisionStateChanged should report true.
*
* @param token The token to be used as a unique identifier for provisioning with satellite
* gateway.
* @param provisionData Data from the provisioning app that can be used by provisioning
* server
* @param resultCallback The callback to receive the error code result of the operation.
*
* Valid result codes returned:
* SatelliteResult:SATELLITE_RESULT_SUCCESS
* SatelliteResult:SATELLITE_RESULT_SERVICE_ERROR
* SatelliteResult:SATELLITE_RESULT_MODEM_ERROR
* SatelliteResult:SATELLITE_RESULT_NETWORK_ERROR
* SatelliteResult:SATELLITE_RESULT_INVALID_MODEM_STATE
* SatelliteResult:SATELLITE_RESULT_INVALID_ARGUMENTS
* SatelliteResult:SATELLITE_RESULT_RADIO_NOT_AVAILABLE
* SatelliteResult:SATELLITE_RESULT_REQUEST_NOT_SUPPORTED
* SatelliteResult:SATELLITE_RESULT_NO_RESOURCES
* SatelliteResult:SATELLITE_RESULT_REQUEST_ABORTED
* SatelliteResult:SATELLITE_RESULT_NETWORK_TIMEOUT
*/
public void provisionSatelliteService(@NonNull String token, @NonNull byte[] provisionData,
@NonNull IIntegerConsumer resultCallback) {
// stub implementation
}
/**
* Deprovision the device with the satellite provider.
* This is needed if the provider allows dynamic registration.
* Once deprovisioned, ISatelliteListener#onSatelliteProvisionStateChanged should report false.
*
* @param token The token of the device/subscription to be deprovisioned.
* @param resultCallback The callback to receive the error code result of the operation.
*
* Valid result codes returned:
* SatelliteResult:SATELLITE_RESULT_SUCCESS
* SatelliteResult:SATELLITE_RESULT_SERVICE_ERROR
* SatelliteResult:SATELLITE_RESULT_MODEM_ERROR
* SatelliteResult:SATELLITE_RESULT_NETWORK_ERROR
* SatelliteResult:SATELLITE_RESULT_INVALID_MODEM_STATE
* SatelliteResult:SATELLITE_RESULT_INVALID_ARGUMENTS
* SatelliteResult:SATELLITE_RESULT_RADIO_NOT_AVAILABLE
* SatelliteResult:SATELLITE_RESULT_REQUEST_NOT_SUPPORTED
* SatelliteResult:SATELLITE_RESULT_NO_RESOURCES
* SatelliteResult:SATELLITE_RESULT_REQUEST_ABORTED
* SatelliteResult:SATELLITE_RESULT_NETWORK_TIMEOUT
*/
public void deprovisionSatelliteService(@NonNull String token,
@NonNull IIntegerConsumer resultCallback) {
// stub implementation
}
/**
* Request to get whether this device is provisioned with a satellite provider.
*
* @param resultCallback The callback to receive the error code result of the operation.
* This must only be sent when the result is not
* SatelliteResult#SATELLITE_RESULT_SUCCESS.
* @param callback If the result is SatelliteResult#SATELLITE_RESULT_SUCCESS, the callback to
* receive whether this device is provisioned with a satellite provider.
*
* Valid result codes returned:
* SatelliteResult:SATELLITE_RESULT_SUCCESS
* SatelliteResult:SATELLITE_RESULT_SERVICE_ERROR
* SatelliteResult:SATELLITE_RESULT_MODEM_ERROR
* SatelliteResult:SATELLITE_RESULT_INVALID_MODEM_STATE
* SatelliteResult:SATELLITE_RESULT_INVALID_ARGUMENTS
* SatelliteResult:SATELLITE_RESULT_RADIO_NOT_AVAILABLE
* SatelliteResult:SATELLITE_RESULT_REQUEST_NOT_SUPPORTED
* SatelliteResult:SATELLITE_RESULT_NO_RESOURCES
*/
public void requestIsSatelliteProvisioned(@NonNull IIntegerConsumer resultCallback,
@NonNull IBooleanConsumer callback) {
// stub implementation
}
/**
* Poll the pending datagrams to be received over satellite.
* The satellite service should check if there are any pending datagrams to be received over
* satellite and report them via ISatelliteListener#onSatelliteDatagramsReceived.
*
* @param resultCallback The callback to receive the error code result of the operation.
*
* Valid result codes returned:
* SatelliteResult:SATELLITE_RESULT_SUCCESS
* SatelliteResult:SATELLITE_RESULT_SERVICE_ERROR
* SatelliteResult:SATELLITE_RESULT_MODEM_ERROR
* SatelliteResult:SATELLITE_RESULT_NETWORK_ERROR
* SatelliteResult:SATELLITE_RESULT_INVALID_MODEM_STATE
* SatelliteResult:SATELLITE_RESULT_INVALID_ARGUMENTS
* SatelliteResult:SATELLITE_RESULT_RADIO_NOT_AVAILABLE
* SatelliteResult:SATELLITE_RESULT_REQUEST_NOT_SUPPORTED
* SatelliteResult:SATELLITE_RESULT_NO_RESOURCES
* SatelliteResult:SATELLITE_RESULT_ACCESS_BARRED
* SatelliteResult:SATELLITE_RESULT_NETWORK_TIMEOUT
* SatelliteResult:SATELLITE_RESULT_NOT_REACHABLE
* SatelliteResult:SATELLITE_RESULT_NOT_AUTHORIZED
*/
public void pollPendingSatelliteDatagrams(@NonNull IIntegerConsumer resultCallback) {
// stub implementation
}
/**
* Send datagram over satellite.
*
* @param datagram Datagram to send in byte format.
* @param isEmergency Whether this is an emergency datagram.
* @param resultCallback The callback to receive the error code result of the operation.
*
* Valid result codes returned:
* SatelliteResult:SATELLITE_RESULT_SUCCESS
* SatelliteResult:SATELLITE_RESULT_SERVICE_ERROR
* SatelliteResult:SATELLITE_RESULT_MODEM_ERROR
* SatelliteResult:SATELLITE_RESULT_NETWORK_ERROR
* SatelliteResult:SATELLITE_RESULT_INVALID_MODEM_STATE
* SatelliteResult:SATELLITE_RESULT_INVALID_ARGUMENTS
* SatelliteResult:SATELLITE_RESULT_RADIO_NOT_AVAILABLE
* SatelliteResult:SATELLITE_RESULT_REQUEST_NOT_SUPPORTED
* SatelliteResult:SATELLITE_RESULT_NO_RESOURCES
* SatelliteResult:SATELLITE_RESULT_REQUEST_ABORTED
* SatelliteResult:SATELLITE_RESULT_ACCESS_BARRED
* SatelliteResult:SATELLITE_RESULT_NETWORK_TIMEOUT
* SatelliteResult:SATELLITE_RESULT_NOT_REACHABLE
* SatelliteResult:SATELLITE_RESULT_NOT_AUTHORIZED
*/
public void sendSatelliteDatagram(@NonNull SatelliteDatagram datagram, boolean isEmergency,
@NonNull IIntegerConsumer resultCallback) {
// stub implementation
}
/**
* Request the current satellite modem state.
* The satellite service should report the current satellite modem state via
* ISatelliteListener#onSatelliteModemStateChanged.
*
* @param resultCallback The callback to receive the error code result of the operation.
* This must only be sent when the result is not
* SatelliteResult#SATELLITE_RESULT_SUCCESS.
* @param callback If the result is SatelliteResult#SATELLITE_RESULT_SUCCESS, the callback to
* receive the current satellite modem state.
*
* Valid result codes returned:
* SatelliteResult:SATELLITE_RESULT_SUCCESS
* SatelliteResult:SATELLITE_RESULT_SERVICE_ERROR
* SatelliteResult:SATELLITE_RESULT_MODEM_ERROR
* SatelliteResult:SATELLITE_RESULT_INVALID_MODEM_STATE
* SatelliteResult:SATELLITE_RESULT_INVALID_ARGUMENTS
* SatelliteResult:SATELLITE_RESULT_RADIO_NOT_AVAILABLE
* SatelliteResult:SATELLITE_RESULT_REQUEST_NOT_SUPPORTED
* SatelliteResult:SATELLITE_RESULT_NO_RESOURCES
*/
public void requestSatelliteModemState(@NonNull IIntegerConsumer resultCallback,
@NonNull IIntegerConsumer callback) {
// stub implementation
}
/**
* Request to get the time after which the satellite will be visible. This is an int
* representing the duration in seconds after which the satellite will be visible.
* This will return 0 if the satellite is currently visible.
*
* @param resultCallback The callback to receive the error code result of the operation.
* This must only be sent when the result is not
* SatelliteResult#SATELLITE_RESULT_SUCCESS.
* @param callback If the result is SatelliteResult#SATELLITE_RESULT_SUCCESS, the callback to
* receive the time after which the satellite will be visible.
*
* Valid result codes returned:
* SatelliteResult:SATELLITE_RESULT_SUCCESS
* SatelliteResult:SATELLITE_RESULT_SERVICE_ERROR
* SatelliteResult:SATELLITE_RESULT_MODEM_ERROR
* SatelliteResult:SATELLITE_RESULT_INVALID_MODEM_STATE
* SatelliteResult:SATELLITE_RESULT_INVALID_ARGUMENTS
* SatelliteResult:SATELLITE_RESULT_RADIO_NOT_AVAILABLE
* SatelliteResult:SATELLITE_RESULT_REQUEST_NOT_SUPPORTED
* SatelliteResult:SATELLITE_RESULT_NO_RESOURCES
*/
public void requestTimeForNextSatelliteVisibility(@NonNull IIntegerConsumer resultCallback,
@NonNull IIntegerConsumer callback) {
// stub implementation
}
/**
* Set the non-terrestrial PLMN with lower priority than terrestrial networks.
* MCC/MNC broadcast by the non-terrestrial networks may not be included in OPLMNwACT file on
* SIM profile. Acquisition of satellite based system is lower priority to terrestrial
* networks. UE shall make all attempts to acquire terrestrial service prior to camping on
* satellite LTE service.
*
* @param simLogicalSlotIndex Indicates the SIM logical slot index to which this API will be
* applied. The modem will use this information to determine the relevant carrier.
* @param resultCallback The callback to receive the error code result of the operation.
* @param carrierPlmnList The list of roaming PLMN used for connecting to satellite networks
* supported by user subscription.
* @param allSatellitePlmnList Modem should use the allSatellitePlmnList to identify satellite
* PLMNs that are not supported by the carrier and make sure not to
* attach to them.
*
* Valid result codes returned:
* SatelliteResult:NONE
* SatelliteResult:SATELLITE_RESULT_INVALID_ARGUMENTS
* SatelliteResult:SATELLITE_RESULT_INVALID_MODEM_STATE
* SatelliteResult:MODEM_ERR
* SatelliteResult:SATELLITE_RESULT_NO_RESOURCES
* SatelliteResult:SATELLITE_RESULT_RADIO_NOT_AVAILABLE
* SatelliteResult:SATELLITE_RESULT_REQUEST_NOT_SUPPORTED
*/
public void setSatellitePlmn(@NonNull int simLogicalSlotIndex,
@NonNull List<String> carrierPlmnList, @NonNull List<String> allSatellitePlmnList,
@NonNull IIntegerConsumer resultCallback) {
// stub implementation
}
/**
* Request to enable or disable carrier supported satellite plmn scan and attach by modem.
* Refer {@link #setSatellitePlmn} for the details of satellite PLMN scanning process.
*
* @param simLogicalSlotIndex Indicates the SIM logical slot index to which this API will be
* applied. The modem will use this information to determine the relevant carrier.
* @param satelliteEnabled {@code true} to enable satellite, {@code false} to disable satellite.
* @param callback {@code true} to enable satellite, {@code false} to disable satellite.
*
* Valid result codes returned:
* SatelliteResult:SATELLITE_RESULT_SUCCESS
* SatelliteResult:SATELLITE_RESULT_INVALID_MODEM_STATE
* SatelliteResult:SATELLITE_RESULT_MODEM_ERROR
* SatelliteResult:SATELLITE_RESULT_RADIO_NOT_AVAILABLE
* SatelliteResult:SATELLITE_RESULT_REQUEST_NOT_SUPPORTED
*/
public void setSatelliteEnabledForCarrier(@NonNull int simLogicalSlotIndex,
@NonNull boolean satelliteEnabled, @NonNull IIntegerConsumer callback) {
// stub implementation
}
/**
* Request to get whether the satellite is enabled in the cellular modem associated with a
* carrier.
*
* @param simLogicalSlotIndex Indicates the SIM logical slot index to which this API will be
* applied. The modem will use this information to determine the relevant carrier.
* @param resultCallback The callback to receive the error code result of the operation.
* @param callback {@code true} to satellite enabled, {@code false} to satellite disabled.
*
* Valid result codes returned:
* SatelliteResult:SATELLITE_RESULT_SUCCESS
* SatelliteResult:SATELLITE_RESULT_INVALID_MODEM_STATE
* SatelliteResult:SATELLITE_RESULT_MODEM_ERROR
* SatelliteResult:SATELLITE_RESULT_RADIO_NOT_AVAILABLE
* SatelliteResult:SATELLITE_RESULT_REQUEST_NOT_SUPPORTED
*/
public void requestIsSatelliteEnabledForCarrier(@NonNull int simLogicalSlotIndex,
@NonNull IIntegerConsumer resultCallback, @NonNull IBooleanConsumer callback) {
// stub implementation
}
/**
* Request to get the signal strength of the satellite connection.
*
* @param resultCallback The {@link SatelliteError} result of the operation.
* @param callback The callback to handle the NTN signal strength changed event.
*/
public void requestSignalStrength(@NonNull IIntegerConsumer resultCallback,
INtnSignalStrengthConsumer callback) {
// stub implementation
}
/**
* Requests to deliver signal strength changed events through the
* {@link ISatelliteListener#onNtnSignalStrengthChanged(NtnSignalStrength ntnSignalStrength)}
* callback.
*
* @param resultCallback The {@link SatelliteError} result of the operation.
*/
public void startSendingNtnSignalStrength(@NonNull IIntegerConsumer resultCallback) {
// stub implementation
}
/**
* Requests to stop signal strength changed events
*
* @param resultCallback The {@link SatelliteError} result of the operation.
*/
public void stopSendingNtnSignalStrength(@NonNull IIntegerConsumer resultCallback){
// stub implementation
}
/**
* Requests to abort sending satellite datagrams
*
* @param resultCallback The {@link SatelliteError} result of the operation.
*/
public void abortSendingSatelliteDatagrams(@NonNull IIntegerConsumer resultCallback){
// stub implementation
}
}