Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit bf74decc authored by rambowang's avatar rambowang
Browse files

Expose SatelliteManager as public manager class

This change exposes SatelliteManager as an @SystemService, with instance
retrieved with Context.getSystemService and Context.SATELLITE_SERVICE.

New public APIs will be provided for applications with permision to
monitor and query the enabled state for satellite modem.

Bug: 357638490
Test: FrameworksTelephonyTests SatelliteManagerTest SatelliteManagerTestOnMockService
Flag: com.android.internal.telephony.flags.satellite_state_change_listener
Change-Id: I3194c245f41fa24d16d0ea0a71166dc918e50a2a
parent 6c6c1182
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -10941,6 +10941,7 @@ package android.content {
    field public static final int RECEIVER_VISIBLE_TO_INSTANT_APPS = 1; // 0x1
    field public static final String RESTRICTIONS_SERVICE = "restrictions";
    field public static final String ROLE_SERVICE = "role";
    field @FlaggedApi("com.android.internal.telephony.flags.satellite_state_change_listener") public static final String SATELLITE_SERVICE = "satellite";
    field public static final String SEARCH_SERVICE = "search";
    field @FlaggedApi("android.os.security_state_service") public static final String SECURITY_STATE_SERVICE = "security_state";
    field public static final String SENSOR_SERVICE = "sensor";
@@ -47768,6 +47769,13 @@ package android.telephony.mbms {
}
package android.telephony.satellite {
  @FlaggedApi("com.android.internal.telephony.flags.satellite_state_change_listener") public final class SatelliteManager {
  }
}
package android.text {
  @Deprecated public class AlteredCharSequence implements java.lang.CharSequence android.text.GetChars {
+1 −1
Original line number Diff line number Diff line
@@ -18195,7 +18195,7 @@ package android.telephony.satellite {
    method @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") public void onSatelliteDatagramReceived(long, @NonNull android.telephony.satellite.SatelliteDatagram, int, @NonNull java.util.function.Consumer<java.lang.Void>);
  }
  public final class SatelliteManager {
  @FlaggedApi("com.android.internal.telephony.flags.satellite_state_change_listener") public final class SatelliteManager {
    method @FlaggedApi("com.android.internal.telephony.flags.carrier_enabled_satellite_flag") @RequiresPermission(android.Manifest.permission.SATELLITE_COMMUNICATION) public void addAttachRestrictionForCarrier(int, int, @NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer<java.lang.Integer>);
    method @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") @RequiresPermission(android.Manifest.permission.SATELLITE_COMMUNICATION) public void deprovisionService(@NonNull String, @NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer<java.lang.Integer>);
    method @FlaggedApi("com.android.internal.telephony.flags.carrier_enabled_satellite_flag") @NonNull @RequiresPermission(android.Manifest.permission.SATELLITE_COMMUNICATION) public java.util.Set<java.lang.Integer> getAttachRestrictionReasonsForCarrier(int);
+1 −1
Original line number Diff line number Diff line
@@ -6654,8 +6654,8 @@ public abstract class Context {
     *
     * @see #getSystemService(String)
     * @see android.telephony.satellite.SatelliteManager
     * @hide
     */
    @FlaggedApi(com.android.internal.telephony.flags.Flags.FLAG_SATELLITE_STATE_CHANGE_LISTENER)
    public static final String SATELLITE_SERVICE = "satellite";

    /**
+11 −4
Original line number Diff line number Diff line
@@ -26,6 +26,7 @@ import android.annotation.Nullable;
import android.annotation.RequiresFeature;
import android.annotation.RequiresPermission;
import android.annotation.SystemApi;
import android.annotation.SystemService;
import android.content.Context;
import android.content.pm.PackageManager;
import android.os.Binder;
@@ -61,13 +62,19 @@ import java.util.function.Consumer;
import java.util.stream.Collectors;

/**
 * Manages satellite operations such as provisioning, pointing, messaging, location sharing, etc.
 * To get the object, call {@link Context#getSystemService(String)}.
 * Manages satellite states such as monitoring enabled state and operations such as provisioning,
 * pointing, messaging, location sharing, etc.
 *
 * @hide
 * <p>To get the object, call {@link Context#getSystemService(String)} with
 * {@link Context#SATELLITE_SERVICE}.
 *
 * <p>SatelliteManager is intended for use on devices with feature
 * {@link PackageManager#FEATURE_TELEPHONY_SATELLITE}. On devices without the feature, the behavior
 * is not reliable.
 */
@SystemService(Context.SATELLITE_SERVICE)
@FlaggedApi(Flags.FLAG_SATELLITE_STATE_CHANGE_LISTENER)
@RequiresFeature(PackageManager.FEATURE_TELEPHONY_SATELLITE)
@SystemApi
public final class SatelliteManager {
    private static final String TAG = "SatelliteManager";