Satellite demo mode : Simulated sending and receiving

Message sending/receive is considered successful when the device is towars satellite within a reasonable margin

Bug: 276058936
Test: cts/SatelliteManagerTest, SatelliteManagerTestOnMockService

Change-Id: Icf82ade2bb18bce6d9561d023ebfde37065ba278
This commit is contained in:
Hakjun Choi
2023-04-25 10:59:43 +00:00
committed by Thomas Nguyen
parent 2aa4ac3289
commit 5c8178d266
2 changed files with 44 additions and 0 deletions

View File

@@ -1503,6 +1503,31 @@ public class SatelliteManager {
}
}
/**
* Inform whether the device is aligned with the satellite for demo mode.
*
* @param isAligned {@true} Device is aligned with the satellite for demo mode
* {@false} Device is not aligned with the satellite for demo mode
*
* @throws SecurityException if the caller doesn't have required permission.
* @throws IllegalStateException if the Telephony process is not currently available.
*/
@RequiresPermission(Manifest.permission.SATELLITE_COMMUNICATION)
public void onDeviceAlignedWithSatellite(boolean isAligned) {
try {
ITelephony telephony = getITelephony();
if (telephony != null) {
telephony.onDeviceAlignedWithSatellite(mSubId, isAligned);
} else {
throw new IllegalStateException("telephony service is null.");
}
} catch (RemoteException ex) {
loge("informDeviceAlignedToSatellite() RemoteException:" + ex);
ex.rethrowFromSystemServer();
}
}
private static ITelephony getITelephony() {
ITelephony binder = ITelephony.Stub.asInterface(TelephonyFrameworkInitializer
.getTelephonyServiceManager()

View File

@@ -2981,6 +2981,16 @@ interface ITelephony {
+ "android.Manifest.permission.SATELLITE_COMMUNICATION)")
void requestTimeForNextSatelliteVisibility(int subId, in ResultReceiver receiver);
/**
* Inform whether the device is aligned with the satellite within in margin for demo mode.
*
* @param isAligned {@true} Device is aligned with the satellite for demo mode
* {@false} Device is not aligned with the satellite for demo mode
*/
@JavaPassthrough(annotation="@android.annotation.RequiresPermission("
+ "android.Manifest.permission.SATELLITE_COMMUNICATION)")
void onDeviceAlignedWithSatellite(int subId, in boolean isAligned);
/**
* This API can be used by only CTS to update satellite vendor service package name.
*
@@ -3018,4 +3028,13 @@ interface ITelephony {
* {@code false} otherwise.
*/
boolean setSatellitePointingUiClassName(in String packageName, in String className);
/**
* This API can be used by only CTS to update the timeout duration in milliseconds whether
* the device is aligned with the satellite for demo mode
*
* @param timeoutMillis The timeout duration in millisecond.
* @return {@code true} if the timeout duration is set successfully, {@code false} otherwise.
*/
boolean setSatelliteDeviceAlignedTimeoutDuration(long timeoutMillis);
}