Added area info support in cell broadcast service
Added a broadcast for area info changed event, and
also a get method in cell broadcast service to
retrieve the area info.
Test: Cell broadcast sanity tests
Bug: 141318859
Merged-In: I5995e3c5099a1e49cb0c54d33da1dbfcc94d4037
Change-Id: I5995e3c5099a1e49cb0c54d33da1dbfcc94d4037
(cherry picked from commit afaa71d418)
This commit is contained in:
@@ -8554,10 +8554,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 @NonNull 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>);
|
||||
|
||||
@@ -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;
|
||||
@@ -42,6 +44,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
|
||||
*/
|
||||
|
||||
@@ -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;
|
||||
@@ -101,6 +102,17 @@ public abstract class CellBroadcastService extends Service {
|
||||
@NonNull List<CdmaSmsCbProgramData> smsCbProgramData,
|
||||
@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}
|
||||
@@ -163,5 +175,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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user