• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (C) 2023 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 package android.telephony.satellite.stub;
18 
19 import android.telephony.IBooleanConsumer;
20 import android.telephony.IIntegerConsumer;
21 
22 import android.telephony.satellite.stub.INtnSignalStrengthConsumer;
23 import android.telephony.satellite.stub.ISatelliteCapabilitiesConsumer;
24 import android.telephony.satellite.stub.ISatelliteListener;
25 import android.telephony.satellite.stub.SatelliteDatagram;
26 import android.telephony.satellite.stub.SystemSelectionSpecifier;
27 import android.telephony.satellite.stub.SatelliteModemEnableRequestAttributes;
28 
29 /**
30  * {@hide}
31  */
32 oneway interface ISatellite {
33     /**
34      * Register the callback interface with satellite service.
35      *
36      * @param listener The callback interface to handle satellite service indications.
37      *
38      * Valid result codes returned:
39      *   SatelliteResult:SATELLITE_RESULT_SUCCESS
40      *   SatelliteResult:SATELLITE_RESULT_SERVICE_ERROR
41      *   SatelliteResult:SATELLITE_RESULT_MODEM_ERROR
42      *   SatelliteResult:SATELLITE_RESULT_INVALID_MODEM_STATE
43      *   SatelliteResult:SATELLITE_RESULT_INVALID_ARGUMENTS
44      *   SatelliteResult:SATELLITE_RESULT_RADIO_NOT_AVAILABLE
45      *   SatelliteResult:SATELLITE_RESULT_REQUEST_NOT_SUPPORTED
46      *   SatelliteResult:SATELLITE_RESULT_NO_RESOURCES
47      */
setSatelliteListener(in ISatelliteListener listener)48     void setSatelliteListener(in ISatelliteListener listener);
49 
50     /**
51      * Request to enable or disable the satellite service listening mode.
52      * Listening mode allows the satellite service to listen for incoming pages.
53      *
54      * @param enable True to enable satellite listening mode and false to disable.
55      * @param timeout How long the satellite modem should wait for the next incoming page before
56      *                disabling listening mode.
57      * @param resultCallback The callback to receive the error code result of the operation.
58      *
59      * Valid result codes returned:
60      *   SatelliteResult:SATELLITE_RESULT_SUCCESS
61      *   SatelliteResult:SATELLITE_RESULT_SERVICE_ERROR
62      *   SatelliteResult:SATELLITE_RESULT_MODEM_ERROR
63      *   SatelliteResult:SATELLITE_RESULT_INVALID_MODEM_STATE
64      *   SatelliteResult:SATELLITE_RESULT_INVALID_ARGUMENTS
65      *   SatelliteResult:SATELLITE_RESULT_RADIO_NOT_AVAILABLE
66      *   SatelliteResult:SATELLITE_RESULT_REQUEST_NOT_SUPPORTED
67      *   SatelliteResult:SATELLITE_RESULT_NO_RESOURCES
68      */
requestSatelliteListeningEnabled(in boolean enable, in int timeout, in IIntegerConsumer resultCallback)69     void requestSatelliteListeningEnabled(in boolean enable, in int timeout,
70             in IIntegerConsumer resultCallback);
71 
72     /**
73      * Framework will call this API to determine if there are any TN networks available.
74      * This API will be called if framework identifies that user is inactive i.e. no
75      * data transfer or no pointing to satellite.
76      * Modem can send the callback with available for either in service or limited service.
77 
78      * @param enabled  {@code true} to enable cellular modem while satellite mode is on
79      * and {@code false} to disable
80      * @param errorCallback The callback to receive the error code result of the operation.
81      */
enableTerrestrialNetworkScanWhileSatelliteModeIsOn(in boolean enabled, in IIntegerConsumer errorCallback)82     void enableTerrestrialNetworkScanWhileSatelliteModeIsOn(in boolean enabled,
83         in IIntegerConsumer errorCallback);
84 
85     /**
86      * Request to enable or disable the satellite modem and demo mode. If the satellite modem
87      * is enabled, this may also disable the cellular modem, and if the satellite modem is disabled,
88      * this may also re-enable the cellular modem.
89      *
90      * Framework might send an enable request to update the enable attributes of an already-started
91      * satellite session. In such cases, modem needs to apply the new enable attrbitues to the
92      * satellite session. Moreover, modem needs to report its current state and signal strength
93      * level to framework right after receiving this request from framework.
94      *
95      * Framework might send a disable request when an enable request is being processed. In such
96      * cases, modem needs to abort the enable request and process the disable request.
97      *
98      * @param enableAttributes The enable parameters that will be applied to the satellite session
99      * @param resultCallback The callback to receive the error code result of the operation.
100      *
101      * Valid result codes returned:
102      *   SatelliteResult:SATELLITE_RESULT_SUCCESS
103      *   SatelliteResult:SATELLITE_RESULT_SERVICE_ERROR
104      *   SatelliteResult:SATELLITE_RESULT_MODEM_ERROR
105      *   SatelliteResult:SATELLITE_RESULT_INVALID_MODEM_STATE
106      *   SatelliteResult:SATELLITE_RESULT_INVALID_ARGUMENTS
107      *   SatelliteResult:SATELLITE_RESULT_RADIO_NOT_AVAILABLE
108      *   SatelliteResult:SATELLITE_RESULT_REQUEST_NOT_SUPPORTED
109      *   SatelliteResult:SATELLITE_RESULT_NO_RESOURCES
110      */
requestSatelliteEnabled(in SatelliteModemEnableRequestAttributes enableAttributes, in IIntegerConsumer resultCallback)111     void requestSatelliteEnabled(in SatelliteModemEnableRequestAttributes enableAttributes,
112             in IIntegerConsumer resultCallback);
113 
114     /**
115      * Request to get whether the satellite modem is enabled.
116      *
117      * @param resultCallback The callback to receive the error code result of the operation.
118      *                       This must only be sent when the result is not
119      *                       SatelliteResult#SATELLITE_RESULT_SUCCESS.
120      * @param callback If the result is SatelliteResult#SATELLITE_RESULT_SUCCESS, the callback to
121      *                 receive whether the satellite modem is enabled.
122      *
123      * Valid result codes returned:
124      *   SatelliteResult:SATELLITE_RESULT_SUCCESS
125      *   SatelliteResult:SATELLITE_RESULT_SERVICE_ERROR
126      *   SatelliteResult:SATELLITE_RESULT_MODEM_ERROR
127      *   SatelliteResult:SATELLITE_RESULT_INVALID_MODEM_STATE
128      *   SatelliteResult:SATELLITE_RESULT_INVALID_ARGUMENTS
129      *   SatelliteResult:SATELLITE_RESULT_RADIO_NOT_AVAILABLE
130      *   SatelliteResult:SATELLITE_RESULT_REQUEST_NOT_SUPPORTED
131      *   SatelliteResult:SATELLITE_RESULT_NO_RESOURCES
132      */
requestIsSatelliteEnabled(in IIntegerConsumer resultCallback, in IBooleanConsumer callback)133     void requestIsSatelliteEnabled(in IIntegerConsumer resultCallback,
134             in IBooleanConsumer callback);
135 
136     /**
137      * Request to get whether the satellite service is supported on the device.
138      *
139      * @param resultCallback The callback to receive the error code result of the operation.
140      *                       This must only be sent when the result is not
141      *                       SatelliteResult#SATELLITE_RESULT_SUCCESS.
142      * @param callback If the result is SatelliteResult#SATELLITE_RESULT_SUCCESS, the callback to
143      *                 receive whether the satellite service is supported on the device.
144      *
145      * Valid result codes returned:
146      *   SatelliteResult:SATELLITE_RESULT_SUCCESS
147      *   SatelliteResult:SATELLITE_RESULT_SERVICE_ERROR
148      *   SatelliteResult:SATELLITE_RESULT_MODEM_ERROR
149      *   SatelliteResult:SATELLITE_RESULT_INVALID_MODEM_STATE
150      *   SatelliteResult:SATELLITE_RESULT_INVALID_ARGUMENTS
151      *   SatelliteResult:SATELLITE_RESULT_RADIO_NOT_AVAILABLE
152      *   SatelliteResult:SATELLITE_RESULT_REQUEST_NOT_SUPPORTED
153      *   SatelliteResult:SATELLITE_RESULT_NO_RESOURCES
154      */
requestIsSatelliteSupported(in IIntegerConsumer resultCallback, in IBooleanConsumer callback)155     void requestIsSatelliteSupported(in IIntegerConsumer resultCallback,
156             in IBooleanConsumer callback);
157 
158     /**
159      * Request to get the SatelliteCapabilities of the satellite service.
160      *
161      * @param resultCallback The callback to receive the error code result of the operation.
162      *                       This must only be sent when the result is not
163      *                       SatelliteResult#SATELLITE_RESULT_SUCCESS.
164      * @param callback If the result is SatelliteResult#SATELLITE_RESULT_SUCCESS, the callback to
165      *                 receive the SatelliteCapabilities of the satellite service.
166      *
167      * Valid result codes returned:
168      *   SatelliteResult:SATELLITE_RESULT_SUCCESS
169      *   SatelliteResult:SATELLITE_RESULT_SERVICE_ERROR
170      *   SatelliteResult:SATELLITE_RESULT_MODEM_ERROR
171      *   SatelliteResult:SATELLITE_RESULT_INVALID_MODEM_STATE
172      *   SatelliteResult:SATELLITE_RESULT_INVALID_ARGUMENTS
173      *   SatelliteResult:SATELLITE_RESULT_RADIO_NOT_AVAILABLE
174      *   SatelliteResult:SATELLITE_RESULT_REQUEST_NOT_SUPPORTED
175      *   SatelliteResult:SATELLITE_RESULT_NO_RESOURCES
176      */
requestSatelliteCapabilities(in IIntegerConsumer resultCallback, in ISatelliteCapabilitiesConsumer callback)177     void requestSatelliteCapabilities(in IIntegerConsumer resultCallback,
178             in ISatelliteCapabilitiesConsumer callback);
179 
180     /**
181      * User started pointing to the satellite.
182      * The satellite service should report the satellite pointing info via
183      * ISatelliteListener#onSatellitePositionChanged as the user device/satellite moves.
184      *
185      * @param resultCallback The callback to receive the error code result of the operation.
186      *
187      * Valid result codes returned:
188      *   SatelliteResult:SATELLITE_RESULT_SUCCESS
189      *   SatelliteResult:SATELLITE_RESULT_SERVICE_ERROR
190      *   SatelliteResult:SATELLITE_RESULT_MODEM_ERROR
191      *   SatelliteResult:SATELLITE_RESULT_INVALID_MODEM_STATE
192      *   SatelliteResult:SATELLITE_RESULT_INVALID_ARGUMENTS
193      *   SatelliteResult:SATELLITE_RESULT_RADIO_NOT_AVAILABLE
194      *   SatelliteResult:SATELLITE_RESULT_REQUEST_NOT_SUPPORTED
195      *   SatelliteResult:SATELLITE_RESULT_NO_RESOURCES
196      */
startSendingSatellitePointingInfo(in IIntegerConsumer resultCallback)197     void startSendingSatellitePointingInfo(in IIntegerConsumer resultCallback);
198 
199     /**
200      * User stopped pointing to the satellite.
201      * The satellite service should stop reporting satellite pointing info to the framework.
202      *
203      * @param resultCallback The callback to receive the error code result of the operation.
204      *
205      * Valid result codes returned:
206      *   SatelliteResult:SATELLITE_RESULT_SUCCESS
207      *   SatelliteResult:SATELLITE_RESULT_SERVICE_ERROR
208      *   SatelliteResult:SATELLITE_RESULT_MODEM_ERROR
209      *   SatelliteResult:SATELLITE_RESULT_INVALID_MODEM_STATE
210      *   SatelliteResult:SATELLITE_RESULT_INVALID_ARGUMENTS
211      *   SatelliteResult:SATELLITE_RESULT_RADIO_NOT_AVAILABLE
212      *   SatelliteResult:SATELLITE_RESULT_REQUEST_NOT_SUPPORTED
213      *   SatelliteResult:SATELLITE_RESULT_NO_RESOURCES
214      */
stopSendingSatellitePointingInfo(in IIntegerConsumer resultCallback)215     void stopSendingSatellitePointingInfo(in IIntegerConsumer resultCallback);
216 
217     /**
218      * Poll the pending datagrams to be received over satellite.
219      * The satellite service should check if there are any pending datagrams to be received over
220      * satellite and report them via ISatelliteListener#onSatelliteDatagramsReceived.
221      *
222      * @param resultCallback The callback to receive the error code result of the operation.
223      *
224      * Valid result codes returned:
225      *   SatelliteResult:SATELLITE_RESULT_SUCCESS
226      *   SatelliteResult:SATELLITE_RESULT_SERVICE_ERROR
227      *   SatelliteResult:SATELLITE_RESULT_MODEM_ERROR
228      *   SatelliteResult:SATELLITE_RESULT_NETWORK_ERROR
229      *   SatelliteResult:SATELLITE_RESULT_INVALID_MODEM_STATE
230      *   SatelliteResult:SATELLITE_RESULT_INVALID_ARGUMENTS
231      *   SatelliteResult:SATELLITE_RESULT_RADIO_NOT_AVAILABLE
232      *   SatelliteResult:SATELLITE_RESULT_REQUEST_NOT_SUPPORTED
233      *   SatelliteResult:SATELLITE_RESULT_NO_RESOURCES
234      *   SatelliteResult:SATELLITE_RESULT_ACCESS_BARRED
235      *   SatelliteResult:SATELLITE_RESULT_NETWORK_TIMEOUT
236      *   SatelliteResult:SATELLITE_RESULT_NOT_REACHABLE
237      *   SatelliteResult:SATELLITE_RESULT_NOT_AUTHORIZED
238      */
pollPendingSatelliteDatagrams(in IIntegerConsumer resultCallback)239     void pollPendingSatelliteDatagrams(in IIntegerConsumer resultCallback);
240 
241     /**
242      * Send datagram over satellite.
243      *
244      * @param datagram Datagram to send in byte format.
245      * @param isEmergency Whether this is an emergency datagram.
246      * @param resultCallback The callback to receive the error code result of the operation.
247      *
248      * Valid result codes returned:
249      *   SatelliteResult:SATELLITE_RESULT_SUCCESS
250      *   SatelliteResult:SATELLITE_RESULT_SERVICE_ERROR
251      *   SatelliteResult:SATELLITE_RESULT_MODEM_ERROR
252      *   SatelliteResult:SATELLITE_RESULT_NETWORK_ERROR
253      *   SatelliteResult:SATELLITE_RESULT_INVALID_MODEM_STATE
254      *   SatelliteResult:SATELLITE_RESULT_INVALID_ARGUMENTS
255      *   SatelliteResult:SATELLITE_RESULT_RADIO_NOT_AVAILABLE
256      *   SatelliteResult:SATELLITE_RESULT_REQUEST_NOT_SUPPORTED
257      *   SatelliteResult:SATELLITE_RESULT_NO_RESOURCES
258      *   SatelliteResult:SATELLITE_RESULT_REQUEST_ABORTED
259      *   SatelliteResult:SATELLITE_RESULT_ACCESS_BARRED
260      *   SatelliteResult:SATELLITE_RESULT_NETWORK_TIMEOUT
261      *   SatelliteResult:SATELLITE_RESULT_NOT_REACHABLE
262      *   SatelliteResult:SATELLITE_RESULT_NOT_AUTHORIZED
263      */
sendSatelliteDatagram(in SatelliteDatagram datagram, in boolean isEmergency, in IIntegerConsumer resultCallback)264     void sendSatelliteDatagram(in SatelliteDatagram datagram, in boolean isEmergency,
265             in IIntegerConsumer resultCallback);
266 
267     /**
268      * Request the current satellite modem state.
269      * The satellite service should report the current satellite modem state via
270      * ISatelliteListener#onSatelliteModemStateChanged.
271      *
272      * @param resultCallback The callback to receive the error code result of the operation.
273      *                       This must only be sent when the result is not
274      *                       SatelliteResult#SATELLITE_RESULT_SUCCESS.
275      * @param callback If the result is SatelliteResult#SATELLITE_RESULT_SUCCESS, the callback to
276      *                 receive the current satellite modem state.
277      *
278      * Valid result codes returned:
279      *   SatelliteResult:SATELLITE_RESULT_SUCCESS
280      *   SatelliteResult:SATELLITE_RESULT_SERVICE_ERROR
281      *   SatelliteResult:SATELLITE_RESULT_MODEM_ERROR
282      *   SatelliteResult:SATELLITE_RESULT_INVALID_MODEM_STATE
283      *   SatelliteResult:SATELLITE_RESULT_INVALID_ARGUMENTS
284      *   SatelliteResult:SATELLITE_RESULT_RADIO_NOT_AVAILABLE
285      *   SatelliteResult:SATELLITE_RESULT_REQUEST_NOT_SUPPORTED
286      *   SatelliteResult:SATELLITE_RESULT_NO_RESOURCES
287      */
requestSatelliteModemState(in IIntegerConsumer resultCallback, in IIntegerConsumer callback)288     void requestSatelliteModemState(in IIntegerConsumer resultCallback,
289             in IIntegerConsumer callback);
290 
291     /**
292      * Request to get the time after which the satellite will be visible. This is an int
293      * representing the duration in seconds after which the satellite will be visible.
294      * This will return 0 if the satellite is currently visible.
295      *
296      * @param resultCallback The callback to receive the error code result of the operation.
297      *                       This must only be sent when the result is not
298           *                       SatelliteResult#SATELLITE_RESULT_SUCCESS.
299      * @param callback If the result is SatelliteResult#SATELLITE_RESULT_SUCCESS, the callback to
300      *                 receive the time after which the satellite will be visible.
301      *
302      * Valid result codes returned:
303      *   SatelliteResult:SATELLITE_RESULT_SUCCESS
304      *   SatelliteResult:SATELLITE_RESULT_SERVICE_ERROR
305      *   SatelliteResult:SATELLITE_RESULT_MODEM_ERROR
306      *   SatelliteResult:SATELLITE_RESULT_INVALID_MODEM_STATE
307      *   SatelliteResult:SATELLITE_RESULT_INVALID_ARGUMENTS
308      *   SatelliteResult:SATELLITE_RESULT_RADIO_NOT_AVAILABLE
309      *   SatelliteResult:SATELLITE_RESULT_REQUEST_NOT_SUPPORTED
310      *   SatelliteResult:SATELLITE_RESULT_NO_RESOURCES
311      */
requestTimeForNextSatelliteVisibility(in IIntegerConsumer resultCallback, in IIntegerConsumer callback)312     void requestTimeForNextSatelliteVisibility(in IIntegerConsumer resultCallback,
313             in IIntegerConsumer callback);
314 
315     /**
316      * Set the non-terrestrial PLMN with lower priority than terrestrial networks.
317      * MCC/MNC broadcast by the non-terrestrial networks may not be included in OPLMNwACT file on
318      * SIM profile. Acquisition of satellite based system is lower priority to terrestrial
319      * networks. UE shall make all attempts to acquire terrestrial service prior to camping on
320      * satellite LTE service.
321      *
322      * @param simSlot Indicates the SIM slot to which this API will be applied. The modem will use
323      *                this information to determine the relevant carrier.
324      * @param carrierPlmnList The list of roaming PLMN used for connecting to satellite networks
325      *                        supported by user subscription.
326      * @param allSatellitePlmnList Modem should use the allSatellitePlmnList to identify satellite
327      *                             PLMNs that are not supported by the carrier and make sure not to
328      *                             attach to them.
329      * @param resultCallback The callback to receive the error code result of the operation.
330      *
331      * Valid result codes returned:
332      *   SatelliteResult:NONE
333      *   SatelliteResult:SATELLITE_RESULT_INVALID_ARGUMENTS
334      *   SatelliteResult:SATELLITE_RESULT_INVALID_MODEM_STATE
335      *   SatelliteResult:MODEM_ERR
336      *   SatelliteResult:SATELLITE_RESULT_NO_RESOURCES
337      *   SatelliteResult:SATELLITE_RESULT_RADIO_NOT_AVAILABLE
338      *   SatelliteResult:SATELLITE_RESULT_REQUEST_NOT_SUPPORTED
339      */
setSatellitePlmn(int simSlot, in List<String> carrierPlmnList, in List<String> allSatellitePlmnList, in IIntegerConsumer resultCallback)340     void setSatellitePlmn(int simSlot, in List<String> carrierPlmnList,
341             in List<String> allSatellitePlmnList, in IIntegerConsumer resultCallback);
342 
343     /**
344      * Enable or disable satellite in the cellular modem associated with a carrier.
345      * Refer setSatellitePlmn for the details of satellite PLMN scanning process.
346      *
347      * @param simSlot Indicates the SIM slot to which this API will be applied. The modem will use
348      *                this information to determine the relevant carrier.
349      * @param serial Serial number of request.
350      * @param enable {@code true} to enable satellite, {@code false} to disable satellite.
351      *
352      * Valid result codes returned:
353      *   SatelliteResult:SATELLITE_RESULT_SUCCESS
354      *   SatelliteResult:SATELLITE_RESULT_INVALID_MODEM_STATE
355      *   SatelliteResult:SATELLITE_RESULT_MODEM_ERROR
356      *   SatelliteResult:SATELLITE_RESULT_RADIO_NOT_AVAILABLE
357      *   SatelliteResult:SATELLITE_RESULT_REQUEST_NOT_SUPPORTED
358      */
setSatelliteEnabledForCarrier(int simSlot, boolean satelliteEnabled, in IIntegerConsumer callback)359     void setSatelliteEnabledForCarrier(int simSlot, boolean satelliteEnabled,
360          in IIntegerConsumer callback);
361 
362     /**
363      * Check whether satellite is enabled in the cellular modem associated with a carrier.
364      *
365      * @param simSlot Indicates the SIM slot to which this API will be applied. The modem will use
366      *                this information to determine the relevant carrier.
367      * @param serial Serial number of request.
368      *
369      * Valid result codes returned:
370      *   SatelliteResult:SATELLITE_RESULT_SUCCESS
371      *   SatelliteResult:SATELLITE_RESULT_INVALID_MODEM_STATE
372      *   SatelliteResult:SATELLITE_RESULT_MODEM_ERROR
373      *   SatelliteResult:SATELLITE_RESULT_RADIO_NOT_AVAILABLE
374      *   SatelliteResult:SATELLITE_RESULT_REQUEST_NOT_SUPPORTED
375      */
requestIsSatelliteEnabledForCarrier(int simSlot, in IIntegerConsumer resultCallback, in IBooleanConsumer callback)376     void requestIsSatelliteEnabledForCarrier(int simSlot, in IIntegerConsumer resultCallback,
377             in IBooleanConsumer callback);
378 
379     /**
380      * Request to get the signal strength of the satellite connection.
381      *
382      * @param resultCallback The {@link SatelliteError} result of the operation.
383      * @param callback The callback to handle the NTN signal strength changed event.
384      */
requestSignalStrength(in IIntegerConsumer resultCallback, in INtnSignalStrengthConsumer callback)385     void requestSignalStrength(in IIntegerConsumer resultCallback,
386             in INtnSignalStrengthConsumer callback);
387 
388     /**
389      * The satellite service should report the NTN signal strength via
390      * ISatelliteListener#onNtnSignalStrengthChanged when the NTN signal strength changes.
391      *
392      * Note: This API can be invoked multiple times. If the modem is already in the expected
393      * state from a previous request, subsequent invocations may be ignored.
394      *
395      * @param resultCallback The callback to receive the error code result of the operation.
396      *
397      * Valid result codes returned:
398      *   SatelliteResult:SATELLITE_RESULT_SUCCESS
399      *   SatelliteResult:SATELLITE_RESULT_SERVICE_ERROR
400      *   SatelliteResult:SATELLITE_RESULT_INVALID_MODEM_STATE
401      *   SatelliteResult:SATELLITE_RESULT_RADIO_NOT_AVAILABLE
402      *   SatelliteResult:SATELLITE_RESULT_REQUEST_NOT_SUPPORTED
403      */
startSendingNtnSignalStrength(in IIntegerConsumer resultCallback)404      void startSendingNtnSignalStrength(in IIntegerConsumer resultCallback);
405 
406     /**
407      * The satellite service should stop reporting NTN signal strength to the framework. This will
408      * be called when device is screen off to save power by not letting signal strength updates to
409      * wake up application processor.
410      *
411      * Note: This API can be invoked multiple times. If the modem is already in the expected
412      * state from a previous request, subsequent invocations may be ignored.
413      *
414      * @param resultCallback The callback to receive the error code result of the operation.
415      *
416      * Valid result codes returned:
417      *   SatelliteResult:SATELLITE_RESULT_SUCCESS
418      *   SatelliteResult:SATELLITE_RESULT_SERVICE_ERROR
419      *   SatelliteResult:SATELLITE_RESULT_INVALID_MODEM_STATE
420      *   SatelliteResult:SATELLITE_RESULT_RADIO_NOT_AVAILABLE
421      *   SatelliteResult:SATELLITE_RESULT_REQUEST_NOT_SUPPORTED
422      */
stopSendingNtnSignalStrength(in IIntegerConsumer resultCallback)423      void stopSendingNtnSignalStrength(in IIntegerConsumer resultCallback);
424 
425      /**
426       * Abort all outgoing satellite datagrams which vendor service has received from Telephony
427       * framework.
428       *
429       * This API helps modem to be in sync with framework when framework times out on sending
430       * datagrams.
431       *
432       * @param resultCallback The callback to receive the error code result of the operation.
433       *
434       * Valid result codes returned:
435       *   SatelliteResult:SATELLITE_RESULT_SUCCESS
436       *   SatelliteResult:SATELLITE_RESULT_INVALID_MODEM_STATE
437       *   SatelliteResult:SATELLITE_RESULT_MODEM_ERROR
438       *   SatelliteResult:SATELLITE_RESULT_RADIO_NOT_AVAILABLE
439       *   SatelliteResult:SATELLITE_RESULT_REQUEST_NOT_SUPPORTED
440       */
abortSendingSatelliteDatagrams(in IIntegerConsumer resultCallback)441      void abortSendingSatelliteDatagrams(in IIntegerConsumer resultCallback);
442 
443      /**
444       * Request to update the satellite subscription to be used for Non-Terrestrial network.
445       *
446       * @param iccId The ICCID of the subscription
447       * @param resultCallback The callback to receive the error code result of the operation.
448       */
updateSatelliteSubscription(in String iccId, in IIntegerConsumer resultCallback)449      void updateSatelliteSubscription(in String iccId, in IIntegerConsumer resultCallback);
450 
451      /**
452       * Request to update system selection channels
453       *
454       * @param systemSelectionSpecifiers list of system selection specifiers
455       * @param resultCallback The callback to receive the error code result of the operation.
456       */
updateSystemSelectionChannels(in List<SystemSelectionSpecifier> systemSelectionSpecifiers, in IIntegerConsumer resultCallback)457      void updateSystemSelectionChannels(in List<SystemSelectionSpecifier> systemSelectionSpecifiers,
458             in IIntegerConsumer resultCallback);
459 }
460