Merge "Convert SatelliteManager APIs to SystemApis." into main

This commit is contained in:
Aishwarya Mallampati
2023-07-25 00:01:37 +00:00
committed by Android (Google) Code Review
12 changed files with 234 additions and 12 deletions

View File

@@ -17178,6 +17178,154 @@ package android.telephony.mbms.vendor {
}
package android.telephony.satellite {
public final class AntennaDirection implements android.os.Parcelable {
method public int describeContents();
method public float getX();
method public float getY();
method public float getZ();
method public void writeToParcel(@NonNull android.os.Parcel, int);
field @NonNull public static final android.os.Parcelable.Creator<android.telephony.satellite.AntennaDirection> CREATOR;
}
public final class AntennaPosition implements android.os.Parcelable {
method public int describeContents();
method @NonNull public android.telephony.satellite.AntennaDirection getAntennaDirection();
method public int getSuggestedHoldPosition();
method public void writeToParcel(@NonNull android.os.Parcel, int);
field @NonNull public static final android.os.Parcelable.Creator<android.telephony.satellite.AntennaPosition> CREATOR;
}
public final class PointingInfo implements android.os.Parcelable {
method public int describeContents();
method public float getSatelliteAzimuthDegrees();
method public float getSatelliteElevationDegrees();
method public void writeToParcel(@NonNull android.os.Parcel, int);
field @NonNull public static final android.os.Parcelable.Creator<android.telephony.satellite.PointingInfo> CREATOR;
}
public final class SatelliteCapabilities implements android.os.Parcelable {
method public int describeContents();
method @NonNull public java.util.Map<java.lang.Integer,android.telephony.satellite.AntennaPosition> getAntennaPositionMap();
method public int getMaxBytesPerOutgoingDatagram();
method @NonNull public java.util.Set<java.lang.Integer> getSupportedRadioTechnologies();
method public boolean isPointingRequired();
method public void writeToParcel(@NonNull android.os.Parcel, int);
field @NonNull public static final android.os.Parcelable.Creator<android.telephony.satellite.SatelliteCapabilities> CREATOR;
}
public final class SatelliteDatagram implements android.os.Parcelable {
method public int describeContents();
method @NonNull public byte[] getSatelliteDatagram();
method public void writeToParcel(@NonNull android.os.Parcel, int);
field @NonNull public static final android.os.Parcelable.Creator<android.telephony.satellite.SatelliteDatagram> CREATOR;
}
public interface SatelliteDatagramCallback {
method public void onSatelliteDatagramReceived(long, @NonNull android.telephony.satellite.SatelliteDatagram, int, @NonNull java.util.function.Consumer<java.lang.Void>);
}
public class SatelliteManager {
method @RequiresPermission(android.Manifest.permission.SATELLITE_COMMUNICATION) public void deprovisionSatelliteService(@NonNull String, @NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer<java.lang.Integer>);
method @RequiresPermission(android.Manifest.permission.SATELLITE_COMMUNICATION) public void onDeviceAlignedWithSatellite(boolean);
method @RequiresPermission(android.Manifest.permission.SATELLITE_COMMUNICATION) public void pollPendingSatelliteDatagrams(@NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer<java.lang.Integer>);
method @RequiresPermission(android.Manifest.permission.SATELLITE_COMMUNICATION) public void provisionSatelliteService(@NonNull String, @NonNull byte[], @Nullable android.os.CancellationSignal, @NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer<java.lang.Integer>);
method @RequiresPermission(android.Manifest.permission.SATELLITE_COMMUNICATION) public int registerForSatelliteDatagram(@NonNull java.util.concurrent.Executor, @NonNull android.telephony.satellite.SatelliteDatagramCallback);
method @RequiresPermission(android.Manifest.permission.SATELLITE_COMMUNICATION) public int registerForSatelliteModemStateChanged(@NonNull java.util.concurrent.Executor, @NonNull android.telephony.satellite.SatelliteStateCallback);
method @RequiresPermission(android.Manifest.permission.SATELLITE_COMMUNICATION) public int registerForSatelliteProvisionStateChanged(@NonNull java.util.concurrent.Executor, @NonNull android.telephony.satellite.SatelliteProvisionStateCallback);
method @RequiresPermission(android.Manifest.permission.SATELLITE_COMMUNICATION) public void requestIsDemoModeEnabled(@NonNull java.util.concurrent.Executor, @NonNull android.os.OutcomeReceiver<java.lang.Boolean,android.telephony.satellite.SatelliteManager.SatelliteException>);
method @RequiresPermission(android.Manifest.permission.SATELLITE_COMMUNICATION) public void requestIsSatelliteCommunicationAllowedForCurrentLocation(@NonNull java.util.concurrent.Executor, @NonNull android.os.OutcomeReceiver<java.lang.Boolean,android.telephony.satellite.SatelliteManager.SatelliteException>);
method @RequiresPermission(android.Manifest.permission.SATELLITE_COMMUNICATION) public void requestIsSatelliteEnabled(@NonNull java.util.concurrent.Executor, @NonNull android.os.OutcomeReceiver<java.lang.Boolean,android.telephony.satellite.SatelliteManager.SatelliteException>);
method @RequiresPermission(android.Manifest.permission.SATELLITE_COMMUNICATION) public void requestIsSatelliteProvisioned(@NonNull java.util.concurrent.Executor, @NonNull android.os.OutcomeReceiver<java.lang.Boolean,android.telephony.satellite.SatelliteManager.SatelliteException>);
method public void requestIsSatelliteSupported(@NonNull java.util.concurrent.Executor, @NonNull android.os.OutcomeReceiver<java.lang.Boolean,android.telephony.satellite.SatelliteManager.SatelliteException>);
method @RequiresPermission(android.Manifest.permission.SATELLITE_COMMUNICATION) public void requestSatelliteCapabilities(@NonNull java.util.concurrent.Executor, @NonNull android.os.OutcomeReceiver<android.telephony.satellite.SatelliteCapabilities,android.telephony.satellite.SatelliteManager.SatelliteException>);
method @RequiresPermission(android.Manifest.permission.SATELLITE_COMMUNICATION) public void requestSatelliteEnabled(boolean, boolean, @NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer<java.lang.Integer>);
method @RequiresPermission(android.Manifest.permission.SATELLITE_COMMUNICATION) public void requestTimeForNextSatelliteVisibility(@NonNull java.util.concurrent.Executor, @NonNull android.os.OutcomeReceiver<java.time.Duration,android.telephony.satellite.SatelliteManager.SatelliteException>);
method @RequiresPermission(android.Manifest.permission.SATELLITE_COMMUNICATION) public void sendSatelliteDatagram(int, @NonNull android.telephony.satellite.SatelliteDatagram, boolean, @NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer<java.lang.Integer>);
method @RequiresPermission(android.Manifest.permission.SATELLITE_COMMUNICATION) public void startSatelliteTransmissionUpdates(@NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer<java.lang.Integer>, @NonNull android.telephony.satellite.SatelliteTransmissionUpdateCallback);
method @RequiresPermission(android.Manifest.permission.SATELLITE_COMMUNICATION) public void stopSatelliteTransmissionUpdates(@NonNull android.telephony.satellite.SatelliteTransmissionUpdateCallback, @NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer<java.lang.Integer>);
method @RequiresPermission(android.Manifest.permission.SATELLITE_COMMUNICATION) public void unregisterForSatelliteDatagram(@NonNull android.telephony.satellite.SatelliteDatagramCallback);
method @RequiresPermission(android.Manifest.permission.SATELLITE_COMMUNICATION) public void unregisterForSatelliteModemStateChanged(@NonNull android.telephony.satellite.SatelliteStateCallback);
method @RequiresPermission(android.Manifest.permission.SATELLITE_COMMUNICATION) public void unregisterForSatelliteProvisionStateChanged(@NonNull android.telephony.satellite.SatelliteProvisionStateCallback);
field public static final int DATAGRAM_TYPE_LOCATION_SHARING = 2; // 0x2
field public static final int DATAGRAM_TYPE_SOS_MESSAGE = 1; // 0x1
field public static final int DATAGRAM_TYPE_UNKNOWN = 0; // 0x0
field public static final int DEVICE_HOLD_POSITION_LANDSCAPE_LEFT = 2; // 0x2
field public static final int DEVICE_HOLD_POSITION_LANDSCAPE_RIGHT = 3; // 0x3
field public static final int DEVICE_HOLD_POSITION_PORTRAIT = 1; // 0x1
field public static final int DEVICE_HOLD_POSITION_UNKNOWN = 0; // 0x0
field public static final int DISPLAY_MODE_CLOSED = 3; // 0x3
field public static final int DISPLAY_MODE_FIXED = 1; // 0x1
field public static final int DISPLAY_MODE_OPENED = 2; // 0x2
field public static final int DISPLAY_MODE_UNKNOWN = 0; // 0x0
field public static final int NT_RADIO_TECHNOLOGY_EMTC_NTN = 3; // 0x3
field public static final int NT_RADIO_TECHNOLOGY_NB_IOT_NTN = 1; // 0x1
field public static final int NT_RADIO_TECHNOLOGY_NR_NTN = 2; // 0x2
field public static final int NT_RADIO_TECHNOLOGY_PROPRIETARY = 4; // 0x4
field public static final int NT_RADIO_TECHNOLOGY_UNKNOWN = 0; // 0x0
field public static final int SATELLITE_ACCESS_BARRED = 16; // 0x10
field public static final int SATELLITE_DATAGRAM_TRANSFER_STATE_IDLE = 0; // 0x0
field public static final int SATELLITE_DATAGRAM_TRANSFER_STATE_RECEIVE_FAILED = 7; // 0x7
field public static final int SATELLITE_DATAGRAM_TRANSFER_STATE_RECEIVE_NONE = 6; // 0x6
field public static final int SATELLITE_DATAGRAM_TRANSFER_STATE_RECEIVE_SUCCESS = 5; // 0x5
field public static final int SATELLITE_DATAGRAM_TRANSFER_STATE_RECEIVING = 4; // 0x4
field public static final int SATELLITE_DATAGRAM_TRANSFER_STATE_SENDING = 1; // 0x1
field public static final int SATELLITE_DATAGRAM_TRANSFER_STATE_SEND_FAILED = 3; // 0x3
field public static final int SATELLITE_DATAGRAM_TRANSFER_STATE_SEND_SUCCESS = 2; // 0x2
field public static final int SATELLITE_DATAGRAM_TRANSFER_STATE_UNKNOWN = -1; // 0xffffffff
field public static final int SATELLITE_ERROR = 1; // 0x1
field public static final int SATELLITE_ERROR_NONE = 0; // 0x0
field public static final int SATELLITE_INVALID_ARGUMENTS = 8; // 0x8
field public static final int SATELLITE_INVALID_MODEM_STATE = 7; // 0x7
field public static final int SATELLITE_INVALID_TELEPHONY_STATE = 6; // 0x6
field public static final int SATELLITE_MODEM_BUSY = 22; // 0x16
field public static final int SATELLITE_MODEM_ERROR = 4; // 0x4
field public static final int SATELLITE_MODEM_STATE_DATAGRAM_RETRYING = 3; // 0x3
field public static final int SATELLITE_MODEM_STATE_DATAGRAM_TRANSFERRING = 2; // 0x2
field public static final int SATELLITE_MODEM_STATE_IDLE = 0; // 0x0
field public static final int SATELLITE_MODEM_STATE_LISTENING = 1; // 0x1
field public static final int SATELLITE_MODEM_STATE_OFF = 4; // 0x4
field public static final int SATELLITE_MODEM_STATE_UNAVAILABLE = 5; // 0x5
field public static final int SATELLITE_MODEM_STATE_UNKNOWN = -1; // 0xffffffff
field public static final int SATELLITE_NETWORK_ERROR = 5; // 0x5
field public static final int SATELLITE_NETWORK_TIMEOUT = 17; // 0x11
field public static final int SATELLITE_NOT_AUTHORIZED = 19; // 0x13
field public static final int SATELLITE_NOT_REACHABLE = 18; // 0x12
field public static final int SATELLITE_NOT_SUPPORTED = 20; // 0x14
field public static final int SATELLITE_NO_RESOURCES = 12; // 0xc
field public static final int SATELLITE_RADIO_NOT_AVAILABLE = 10; // 0xa
field public static final int SATELLITE_REQUEST_ABORTED = 15; // 0xf
field public static final int SATELLITE_REQUEST_FAILED = 9; // 0x9
field public static final int SATELLITE_REQUEST_IN_PROGRESS = 21; // 0x15
field public static final int SATELLITE_REQUEST_NOT_SUPPORTED = 11; // 0xb
field public static final int SATELLITE_SERVER_ERROR = 2; // 0x2
field public static final int SATELLITE_SERVICE_ERROR = 3; // 0x3
field public static final int SATELLITE_SERVICE_NOT_PROVISIONED = 13; // 0xd
field public static final int SATELLITE_SERVICE_PROVISION_IN_PROGRESS = 14; // 0xe
}
public static class SatelliteManager.SatelliteException extends java.lang.Exception {
ctor public SatelliteManager.SatelliteException(int);
method public int getErrorCode();
}
public interface SatelliteProvisionStateCallback {
method public void onSatelliteProvisionStateChanged(boolean);
}
public interface SatelliteStateCallback {
method public void onSatelliteModemStateChanged(int);
}
public interface SatelliteTransmissionUpdateCallback {
method public void onReceiveDatagramStateChanged(int, int, int);
method public void onSatellitePositionChanged(@NonNull android.telephony.satellite.PointingInfo);
method public void onSendDatagramStateChanged(int, int, int);
}
}
package android.text {
public final class FontConfig implements android.os.Parcelable {

View File

@@ -15,6 +15,12 @@ KotlinKeyword: android.app.Notification#when:
Avoid field names that are Kotlin hard keywords ("when"); see https://android.github.io/kotlin-guides/interop.html#no-hard-keywords
ListenerLast: android.telephony.satellite.SatelliteManager#stopSatelliteTransmissionUpdates(android.telephony.satellite.SatelliteTransmissionUpdateCallback, java.util.concurrent.Executor, java.util.function.Consumer<java.lang.Integer>) parameter #1:
Listeners should always be at end of argument list (method `stopSatelliteTransmissionUpdates`)
ListenerLast: android.telephony.satellite.SatelliteManager#stopSatelliteTransmissionUpdates(android.telephony.satellite.SatelliteTransmissionUpdateCallback, java.util.concurrent.Executor, java.util.function.Consumer<java.lang.Integer>) parameter #2:
Listeners should always be at end of argument list (method `stopSatelliteTransmissionUpdates`)
MissingGetterMatchingBuilder: android.telecom.CallScreeningService.CallResponse.Builder#setShouldScreenCallViaAudioProcessing(boolean):
android.telecom.CallScreeningService.CallResponse does not declare a `shouldScreenCallViaAudioProcessing()` method matching method android.telecom.CallScreeningService.CallResponse.Builder.setShouldScreenCallViaAudioProcessing(boolean)
MissingGetterMatchingBuilder: android.telephony.mbms.DownloadRequest.Builder#setServiceId(String):
@@ -211,6 +217,8 @@ SamShouldBeLast: android.security.KeyChain#choosePrivateKeyAlias(android.app.Act
SAM-compatible parameters (such as parameter 2, "response", in android.security.KeyChain.choosePrivateKeyAlias) should be last to improve Kotlin interoperability; see https://kotlinlang.org/docs/reference/java-interop.html#sam-conversions
SamShouldBeLast: android.security.KeyChain#choosePrivateKeyAlias(android.app.Activity, android.security.KeyChainAliasCallback, String[], java.security.Principal[], android.net.Uri, String):
SAM-compatible parameters (such as parameter 2, "response", in android.security.KeyChain.choosePrivateKeyAlias) should be last to improve Kotlin interoperability; see https://kotlinlang.org/docs/reference/java-interop.html#sam-conversions
SamShouldBeLast: android.telephony.satellite.SatelliteManager#startSatelliteTransmissionUpdates(java.util.concurrent.Executor, java.util.function.Consumer<java.lang.Integer>, android.telephony.satellite.SatelliteTransmissionUpdateCallback):
SAM-compatible parameters (such as parameter 2, "resultListener", in android.telephony.satellite.SatelliteManager.startSatelliteTransmissionUpdates) should be last to improve Kotlin interoperability; see https://kotlinlang.org/docs/reference/java-interop.html#sam-conversions
SamShouldBeLast: android.view.View#postDelayed(Runnable, long):
SAM-compatible parameters (such as parameter 1, "action", in android.view.View.postDelayed) should be last to improve Kotlin interoperability; see https://kotlinlang.org/docs/reference/java-interop.html#sam-conversions
SamShouldBeLast: android.view.View#postOnAnimationDelayed(Runnable, long):

View File

@@ -17,7 +17,7 @@
package android.telephony.satellite;
import android.annotation.NonNull;
import android.compat.annotation.UnsupportedAppUsage;
import android.annotation.SystemApi;
import android.os.Parcel;
import android.os.Parcelable;
@@ -37,6 +37,7 @@ import java.util.Objects;
* positive X and pointing away from back of the phone for negative X.
* @hide
*/
@SystemApi
public final class AntennaDirection implements Parcelable {
/** Antenna x axis direction. */
private float mX;
@@ -50,7 +51,6 @@ public final class AntennaDirection implements Parcelable {
/**
* @hide
*/
@UnsupportedAppUsage
public AntennaDirection(float x, float y, float z) {
mX = x;
mY = y;

View File

@@ -17,7 +17,7 @@
package android.telephony.satellite;
import android.annotation.NonNull;
import android.compat.annotation.UnsupportedAppUsage;
import android.annotation.SystemApi;
import android.os.Parcel;
import android.os.Parcelable;
@@ -28,6 +28,7 @@ import java.util.Objects;
* direction to be used with satellite communication and suggested device hold positions.
* @hide
*/
@SystemApi
public final class AntennaPosition implements Parcelable {
/** Antenna direction used for satellite communication. */
@NonNull AntennaDirection mAntennaDirection;
@@ -38,7 +39,6 @@ public final class AntennaPosition implements Parcelable {
/**
* @hide
*/
@UnsupportedAppUsage
public AntennaPosition(@NonNull AntennaDirection antennaDirection, int suggestedHoldPosition) {
mAntennaDirection = antennaDirection;
mSuggestedHoldPosition = suggestedHoldPosition;

View File

@@ -17,12 +17,19 @@
package android.telephony.satellite;
import android.annotation.NonNull;
import android.annotation.SystemApi;
import android.os.Parcel;
import android.os.Parcelable;
import java.util.Objects;
/**
* PointingInfo is used to store the position of satellite received from satellite modem.
* The position of satellite is represented by azimuth and elevation angles
* with degrees as unit of measurement.
* @hide
*/
@SystemApi
public final class PointingInfo implements Parcelable {
/** Satellite azimuth in degrees */
private float mSatelliteAzimuthDegrees;
@@ -33,7 +40,6 @@ public final class PointingInfo implements Parcelable {
/**
* @hide
*/
public PointingInfo(float satelliteAzimuthDegrees, float satelliteElevationDegrees) {
mSatelliteAzimuthDegrees = satelliteAzimuthDegrees;
mSatelliteElevationDegrees = satelliteElevationDegrees;
@@ -67,6 +73,20 @@ public final class PointingInfo implements Parcelable {
}
};
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
PointingInfo that = (PointingInfo) o;
return mSatelliteAzimuthDegrees == that.mSatelliteAzimuthDegrees
&& mSatelliteElevationDegrees == that.mSatelliteElevationDegrees;
}
@Override
public int hashCode() {
return Objects.hash(mSatelliteAzimuthDegrees, mSatelliteElevationDegrees);
}
@NonNull
@Override
public String toString() {

View File

@@ -17,6 +17,8 @@
package android.telephony.satellite;
import android.annotation.NonNull;
import android.annotation.Nullable;
import android.annotation.SystemApi;
import android.os.Parcel;
import android.os.Parcelable;
@@ -27,8 +29,11 @@ import java.util.Objects;
import java.util.Set;
/**
* SatelliteCapabilities is used to represent the capabilities of the satellite service
* received from satellite modem.
* @hide
*/
@SystemApi
public final class SatelliteCapabilities implements Parcelable {
/**
* List of technologies supported by the satellite modem.
@@ -56,7 +61,7 @@ public final class SatelliteCapabilities implements Parcelable {
/**
* @hide
*/
public SatelliteCapabilities(Set<Integer> supportedRadioTechnologies,
public SatelliteCapabilities(@Nullable Set<Integer> supportedRadioTechnologies,
boolean isPointingRequired, int maxBytesPerOutgoingDatagram,
@NonNull Map<Integer, AntennaPosition> antennaPositionMap) {
mSupportedRadioTechnologies = supportedRadioTechnologies == null

View File

@@ -17,12 +17,16 @@
package android.telephony.satellite;
import android.annotation.NonNull;
import android.annotation.SystemApi;
import android.os.Parcel;
import android.os.Parcelable;
/**
* SatelliteDatagram is used to store data that is to be sent or received over satellite.
* Data is stored in byte array format.
* @hide
*/
@SystemApi
public final class SatelliteDatagram implements Parcelable {
/**
* Datagram to be sent or received over satellite.
@@ -63,6 +67,12 @@ public final class SatelliteDatagram implements Parcelable {
}
};
/**
* Get satellite datagram.
* @return byte array. The format of the byte array is determined by the corresponding
* satellite provider. Client application should be aware of how to encode the datagram based
* upon the satellite provider.
*/
@NonNull public byte[] getSatelliteDatagram() {
return mData;
}

View File

@@ -17,6 +17,7 @@
package android.telephony.satellite;
import android.annotation.NonNull;
import android.annotation.SystemApi;
import java.util.function.Consumer;
@@ -25,6 +26,7 @@ import java.util.function.Consumer;
*
* @hide
*/
@SystemApi
public interface SatelliteDatagramCallback {
/**
* Called when there is an incoming datagram to be received.

View File

@@ -23,6 +23,7 @@ import android.annotation.NonNull;
import android.annotation.Nullable;
import android.annotation.RequiresFeature;
import android.annotation.RequiresPermission;
import android.annotation.SystemApi;
import android.content.Context;
import android.content.pm.PackageManager;
import android.os.Binder;
@@ -55,6 +56,7 @@ import java.util.function.Consumer;
* @hide
*/
@RequiresFeature(PackageManager.FEATURE_TELEPHONY_SATELLITE)
@SystemApi
public class SatelliteManager {
private static final String TAG = "SatelliteManager";
@@ -386,9 +388,16 @@ public class SatelliteManager {
public @interface DisplayMode {}
/**
* 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.
* Request to enable or disable the satellite modem and demo mode.
* If satellite modem and cellular modem cannot work concurrently,
* then this will disable the cellular modem if satellite modem is enabled,
* and will re-enable the cellular modem if satellite modem is disabled.
*
* Demo mode is created to simulate the experience of sending and receiving messages over
* satellite. If user enters demo mode, a request should be sent to framework to enable
* satellite with enableDemoMode set to {code true}. Once satellite is enabled and device is
* aligned with the satellite, user can send a message and also receive a reply in demo mode.
* If enableSatellite is {@code false}, enableDemoMode has no impact on the behavior.
*
* @param enableSatellite {@code true} to enable the satellite modem and
* {@code false} to disable.
@@ -911,8 +920,8 @@ public class SatelliteManager {
* Provision the device with a satellite provider.
* This is needed if the provider allows dynamic registration.
*
* @param token The token to be used as a unique identifier for provisioning with satellite
* gateway.
* @param token The token is generated by the user which is 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 cancellationSignal The optional signal used by the caller to cancel the provision
* request. Even when the cancellation is signaled, Telephony will
@@ -965,9 +974,12 @@ public class SatelliteManager {
* {@link SatelliteProvisionStateCallback#onSatelliteProvisionStateChanged(boolean)}
* should report as deprovisioned.
* For provisioning satellite service, refer to
* {@link #provisionSatelliteService(String, String, CancellationSignal, Executor, Consumer)}
* {@link #provisionSatelliteService(String, byte[], CancellationSignal, Executor, Consumer)}
*
* @param token The token of the device/subscription to be deprovisioned.
* This should match with the token passed as input in
* {@link #provisionSatelliteService(String, byte[], CancellationSignal, Executor,
* Consumer)}
* @param resultListener Listener for the {@link SatelliteError} result of the operation.
*
* @throws SecurityException if the caller doesn't have required permission.
@@ -1213,6 +1225,9 @@ public class SatelliteManager {
/**
* Register to receive incoming datagrams over satellite.
*
* To poll for pending satellite datagrams, refer to
* {@link #pollPendingSatelliteDatagrams(Executor, Consumer)}
*
* @param executor The executor on which the callback will be called.
* @param callback The callback to handle incoming datagrams over satellite.
* This callback with be invoked when a new datagram is received from satellite.
@@ -1305,6 +1320,7 @@ public class SatelliteManager {
/**
* Poll pending satellite datagrams over satellite.
*
* This method should be called when user specifies to check incoming messages over satellite.
* This method requests modem to check if there are any pending datagrams to be received over
* satellite. If there are any incoming datagrams, they will be received via
* {@link SatelliteDatagramCallback#onSatelliteDatagramReceived(long, SatelliteDatagram, int,
@@ -1518,6 +1534,9 @@ public class SatelliteManager {
/**
* Inform whether the device is aligned with the satellite for demo mode.
*
* Framework can send datagram to modem only when device is aligned with the satellite.
* This method helps framework to simulate the experience of sending datagram over satellite.
*
* @param isAligned {@true} Device is aligned with the satellite for demo mode
* {@false} Device is not aligned with the satellite for demo mode
*

View File

@@ -16,17 +16,22 @@
package android.telephony.satellite;
import android.annotation.SystemApi;
/**
* A callback class for monitoring satellite provision state change events.
*
* @hide
*/
@SystemApi
public interface SatelliteProvisionStateCallback {
/**
* Called when satellite provision state changes.
*
* @param provisioned The new provision state. {@code true} means satellite is provisioned
* {@code false} means satellite is not provisioned.
* It is generally expected that the provisioning app retries if
* provisioning fails.
*/
void onSatelliteProvisionStateChanged(boolean provisioned);
}

View File

@@ -16,11 +16,14 @@
package android.telephony.satellite;
import android.annotation.SystemApi;
/**
* A callback class for monitoring satellite modem state change events.
*
* @hide
*/
@SystemApi
public interface SatelliteStateCallback {
/**
* Called when satellite modem state changes.

View File

@@ -17,6 +17,7 @@
package android.telephony.satellite;
import android.annotation.NonNull;
import android.annotation.SystemApi;
/**
* A callback class for monitoring satellite position update and datagram transfer state change
@@ -24,6 +25,7 @@ import android.annotation.NonNull;
*
* @hide
*/
@SystemApi
public interface SatelliteTransmissionUpdateCallback {
/**
* Called when the satellite position changed.