summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xapi/system-current.txt2
-rw-r--r--core/java/android/telephony/CellBroadcastIntents.java10
-rw-r--r--telephony/java/android/telephony/CellBroadcastService.java24
-rw-r--r--telephony/java/android/telephony/ICellBroadcastService.aidl3
4 files changed, 39 insertions, 0 deletions
diff --git a/api/system-current.txt b/api/system-current.txt
index 6c61a2d8807b..6b84a50ebebd 100755
--- a/api/system-current.txt
+++ b/api/system-current.txt
@@ -11178,10 +11178,12 @@ package android.telephony {
public class CellBroadcastIntents {
method public static void sendSmsCbReceivedBroadcast(@NonNull android.content.Context, @Nullable android.os.UserHandle, @NonNull android.telephony.SmsCbMessage, @Nullable android.content.BroadcastReceiver, @Nullable android.os.Handler, int, int);
+ field public static final String ACTION_AREA_INFO_UPDATED = "android.telephony.action.AREA_INFO_UPDATED";
}
public abstract class CellBroadcastService extends android.app.Service {
ctor public CellBroadcastService();
+ method @NonNull @WorkerThread public abstract CharSequence getCellBroadcastAreaInfo(int);
method @CallSuper public android.os.IBinder onBind(@Nullable android.content.Intent);
method public abstract void onCdmaCellBroadcastSms(int, @NonNull byte[], int);
method public abstract void onCdmaScpMessage(int, @NonNull java.util.List<android.telephony.cdma.CdmaSmsCbProgramData>, @NonNull String, @NonNull java.util.function.Consumer<android.os.Bundle>);
diff --git a/core/java/android/telephony/CellBroadcastIntents.java b/core/java/android/telephony/CellBroadcastIntents.java
index 2e0810835a52..32d330e1a47f 100644
--- a/core/java/android/telephony/CellBroadcastIntents.java
+++ b/core/java/android/telephony/CellBroadcastIntents.java
@@ -19,6 +19,8 @@ package android.telephony;
import android.Manifest;
import android.annotation.NonNull;
import android.annotation.Nullable;
+import android.annotation.SdkConstant;
+import android.annotation.SdkConstant.SdkConstantType;
import android.annotation.SystemApi;
import android.app.AppOpsManager;
import android.content.BroadcastReceiver;
@@ -43,6 +45,14 @@ public class CellBroadcastIntents {
private static final String EXTRA_MESSAGE = "message";
/**
+ * Broadcast intent action for notifying area information has been updated. The information
+ * can be retrieved by {@link CellBroadcastService#getCellBroadcastAreaInfo(int)}
+ */
+ @SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION)
+ public static final String ACTION_AREA_INFO_UPDATED =
+ "android.telephony.action.AREA_INFO_UPDATED";
+
+ /**
* @hide
*/
private CellBroadcastIntents() {
diff --git a/telephony/java/android/telephony/CellBroadcastService.java b/telephony/java/android/telephony/CellBroadcastService.java
index 09e22aa4eb24..ac775b391e94 100644
--- a/telephony/java/android/telephony/CellBroadcastService.java
+++ b/telephony/java/android/telephony/CellBroadcastService.java
@@ -20,6 +20,7 @@ import android.annotation.CallSuper;
import android.annotation.NonNull;
import android.annotation.Nullable;
import android.annotation.SystemApi;
+import android.annotation.WorkerThread;
import android.app.Service;
import android.content.Intent;
import android.os.Bundle;
@@ -102,6 +103,17 @@ public abstract class CellBroadcastService extends Service {
@NonNull String originatingAddress, @NonNull Consumer<Bundle> callback);
/**
+ * Get broadcasted area information.
+ *
+ * @param slotIndex the index of the slot which received the area information.
+ *
+ * @return The area information string sent from the network. This is usually the human readable
+ * string shown in Setting app's SIM status page.
+ */
+ @WorkerThread
+ public abstract @NonNull CharSequence getCellBroadcastAreaInfo(int slotIndex);
+
+ /**
* If overriding this method, call through to the super method for any unknown actions.
* {@inheritDoc}
*/
@@ -162,5 +174,17 @@ public abstract class CellBroadcastService extends Service {
CellBroadcastService.this.onCdmaScpMessage(slotIndex, smsCbProgramData,
originatingAddress, consumer);
}
+
+ /**
+ * Get broadcasted area information
+ *
+ * @param slotIndex the index of the slot which received the message
+ *
+ * @return The area information
+ */
+ @Override
+ public @NonNull CharSequence getCellBroadcastAreaInfo(int slotIndex) {
+ return CellBroadcastService.this.getCellBroadcastAreaInfo(slotIndex);
+ }
}
}
diff --git a/telephony/java/android/telephony/ICellBroadcastService.aidl b/telephony/java/android/telephony/ICellBroadcastService.aidl
index 11263d99cb8f..4f20ed67fda4 100644
--- a/telephony/java/android/telephony/ICellBroadcastService.aidl
+++ b/telephony/java/android/telephony/ICellBroadcastService.aidl
@@ -36,4 +36,7 @@ interface ICellBroadcastService {
/** @see android.telephony.CellBroadcastService#onCdmaScpMessage */
oneway void handleCdmaScpMessage(int slotId, in List<CdmaSmsCbProgramData> programData,
String originatingAddress, in RemoteCallback callback);
+
+ /** @see android.telephony.CellBroadcastService#getCellBroadcastAreaInfo */
+ CharSequence getCellBroadcastAreaInfo(int slotIndex);
}