Merge "Pass bearerData and serviceCategory to CB module for CDMA"

This commit is contained in:
Jordan Liu
2019-11-04 20:14:15 +00:00
committed by Gerrit Code Review
5 changed files with 35 additions and 16 deletions

View File

@@ -7256,7 +7256,7 @@ package android.telephony {
public abstract class CellBroadcastService extends android.app.Service { public abstract class CellBroadcastService extends android.app.Service {
ctor public CellBroadcastService(); ctor public CellBroadcastService();
method @CallSuper @NonNull public android.os.IBinder onBind(@Nullable android.content.Intent); method @CallSuper @NonNull public android.os.IBinder onBind(@Nullable android.content.Intent);
method public abstract void onCdmaCellBroadcastSms(int, @NonNull byte[]); method public abstract void onCdmaCellBroadcastSms(int, @NonNull byte[], int);
method public abstract void onGsmCellBroadcastSms(int, @NonNull byte[]); method public abstract void onGsmCellBroadcastSms(int, @NonNull byte[]);
field public static final String CELL_BROADCAST_SERVICE_INTERFACE = "android.telephony.CellBroadcastService"; field public static final String CELL_BROADCAST_SERVICE_INTERFACE = "android.telephony.CellBroadcastService";
} }

View File

@@ -23,6 +23,7 @@ import android.annotation.SystemApi;
import android.app.Service; import android.app.Service;
import android.content.Intent; import android.content.Intent;
import android.os.IBinder; import android.os.IBinder;
import android.telephony.cdma.CdmaSmsCbProgramData;
/** /**
* A service which exposes the cell broadcast handling module to the system. * A service which exposes the cell broadcast handling module to the system.
@@ -71,9 +72,11 @@ public abstract class CellBroadcastService extends Service {
/** /**
* Handle a CDMA cell broadcast SMS message forwarded from the system. * Handle a CDMA cell broadcast SMS message forwarded from the system.
* @param slotIndex the index of the slot which received the message * @param slotIndex the index of the slot which received the message
* @param message the SMS PDU * @param bearerData the CDMA SMS bearer data
* @param serviceCategory the CDMA SCPT service category
*/ */
public abstract void onCdmaCellBroadcastSms(int slotIndex, @NonNull byte[] message); public abstract void onCdmaCellBroadcastSms(int slotIndex, @NonNull byte[] bearerData,
@CdmaSmsCbProgramData.Category int serviceCategory);
/** /**
* If overriding this method, call through to the super method for any unknown actions. * If overriding this method, call through to the super method for any unknown actions.
@@ -105,11 +108,14 @@ public abstract class CellBroadcastService extends Service {
/** /**
* Handle a CDMA cell broadcast SMS. * Handle a CDMA cell broadcast SMS.
* @param slotIndex the index of the slot which received the broadcast * @param slotIndex the index of the slot which received the broadcast
* @param message the SMS message PDU * @param bearerData the CDMA SMS bearer data
* @param serviceCategory the CDMA SCPT service category
*/ */
@Override @Override
public void handleCdmaCellBroadcastSms(int slotIndex, byte[] message) { public void handleCdmaCellBroadcastSms(int slotIndex, byte[] bearerData,
CellBroadcastService.this.onCdmaCellBroadcastSms(slotIndex, message); int serviceCategory) {
CellBroadcastService.this.onCdmaCellBroadcastSms(slotIndex, bearerData,
serviceCategory);
} }
} }
} }

View File

@@ -28,5 +28,5 @@ interface ICellBroadcastService {
oneway void handleGsmCellBroadcastSms(int slotId, in byte[] message); oneway void handleGsmCellBroadcastSms(int slotId, in byte[] message);
/** @see android.telephony.CellBroadcastService#onCdmaCellBroadcastSms */ /** @see android.telephony.CellBroadcastService#onCdmaCellBroadcastSms */
oneway void handleCdmaCellBroadcastSms(int slotId, in byte[] message); oneway void handleCdmaCellBroadcastSms(int slotId, in byte[] bearerData, int serviceCategory);
} }

View File

@@ -19,17 +19,17 @@ package com.android.internal.telephony.cdma;
import static com.android.internal.telephony.TelephonyProperties.PROPERTY_OPERATOR_IDP_STRING; import static com.android.internal.telephony.TelephonyProperties.PROPERTY_OPERATOR_IDP_STRING;
import android.content.res.Resources; import android.content.res.Resources;
import android.os.Parcel;
import android.os.SystemProperties; import android.os.SystemProperties;
import android.telephony.PhoneNumberUtils; import android.telephony.PhoneNumberUtils;
import android.telephony.Rlog;
import android.telephony.SmsCbLocation; import android.telephony.SmsCbLocation;
import android.telephony.SmsCbMessage; import android.telephony.SmsCbMessage;
import android.telephony.cdma.CdmaSmsCbProgramData; import android.telephony.cdma.CdmaSmsCbProgramData;
import android.telephony.Rlog;
import android.text.TextUtils; import android.text.TextUtils;
import android.util.Log; import android.util.Log;
import com.android.internal.telephony.GsmAlphabet.TextEncodingDetails; import com.android.internal.telephony.GsmAlphabet.TextEncodingDetails;
import com.android.internal.telephony.Sms7BitEncodingTranslator;
import com.android.internal.telephony.SmsAddress; import com.android.internal.telephony.SmsAddress;
import com.android.internal.telephony.SmsConstants; import com.android.internal.telephony.SmsConstants;
import com.android.internal.telephony.SmsHeader; import com.android.internal.telephony.SmsHeader;
@@ -43,7 +43,6 @@ import com.android.internal.telephony.cdma.sms.UserData;
import com.android.internal.telephony.uicc.IccUtils; import com.android.internal.telephony.uicc.IccUtils;
import com.android.internal.util.BitwiseInputStream; import com.android.internal.util.BitwiseInputStream;
import com.android.internal.util.HexDump; import com.android.internal.util.HexDump;
import com.android.internal.telephony.Sms7BitEncodingTranslator;
import java.io.BufferedOutputStream; import java.io.BufferedOutputStream;
import java.io.ByteArrayInputStream; import java.io.ByteArrayInputStream;
@@ -880,6 +879,20 @@ public class SmsMessage extends SmsMessageBase {
bData.priority, null, bData.cmasWarningInfo, subId); bData.priority, null, bData.cmasWarningInfo, subId);
} }
/**
* @return the bearer data byte array
*/
public byte[] getEnvelopeBearerData() {
return mEnvelope.bearerData;
}
/**
* @return the 16-bit CDMA SCPT service category
*/
public @CdmaSmsCbProgramData.Category int getEnvelopeServiceCategory() {
return mEnvelope.serviceCategory;
}
/** /**
* {@inheritDoc} * {@inheritDoc}
*/ */

View File

@@ -58,17 +58,17 @@ public final class SmsEnvelope {
// CMAS alert service category assignments, see 3GPP2 C.R1001 table 9.3.3-1 // CMAS alert service category assignments, see 3GPP2 C.R1001 table 9.3.3-1
public static final int SERVICE_CATEGORY_CMAS_PRESIDENTIAL_LEVEL_ALERT = public static final int SERVICE_CATEGORY_CMAS_PRESIDENTIAL_LEVEL_ALERT =
CdmaSmsCbProgramData.CATEGORY_CMAS_PRESIDENTIAL_LEVEL_ALERT; CdmaSmsCbProgramData.CATEGORY_CMAS_PRESIDENTIAL_LEVEL_ALERT; // = 4096
public static final int SERVICE_CATEGORY_CMAS_EXTREME_THREAT = public static final int SERVICE_CATEGORY_CMAS_EXTREME_THREAT =
CdmaSmsCbProgramData.CATEGORY_CMAS_EXTREME_THREAT; CdmaSmsCbProgramData.CATEGORY_CMAS_EXTREME_THREAT; // = 4097
public static final int SERVICE_CATEGORY_CMAS_SEVERE_THREAT = public static final int SERVICE_CATEGORY_CMAS_SEVERE_THREAT =
CdmaSmsCbProgramData.CATEGORY_CMAS_SEVERE_THREAT; CdmaSmsCbProgramData.CATEGORY_CMAS_SEVERE_THREAT; // = 4098
public static final int SERVICE_CATEGORY_CMAS_CHILD_ABDUCTION_EMERGENCY = public static final int SERVICE_CATEGORY_CMAS_CHILD_ABDUCTION_EMERGENCY =
CdmaSmsCbProgramData.CATEGORY_CMAS_CHILD_ABDUCTION_EMERGENCY; CdmaSmsCbProgramData.CATEGORY_CMAS_CHILD_ABDUCTION_EMERGENCY; // = 4099
public static final int SERVICE_CATEGORY_CMAS_TEST_MESSAGE = public static final int SERVICE_CATEGORY_CMAS_TEST_MESSAGE =
CdmaSmsCbProgramData.CATEGORY_CMAS_TEST_MESSAGE; CdmaSmsCbProgramData.CATEGORY_CMAS_TEST_MESSAGE; // = 4100
public static final int SERVICE_CATEGORY_CMAS_LAST_RESERVED_VALUE = public static final int SERVICE_CATEGORY_CMAS_LAST_RESERVED_VALUE =
CdmaSmsCbProgramData.CATEGORY_CMAS_LAST_RESERVED_VALUE; CdmaSmsCbProgramData.CATEGORY_CMAS_LAST_RESERVED_VALUE; // = 4351
/** /**
* Provides the type of a SMS message like point to point, broadcast or acknowledge * Provides the type of a SMS message like point to point, broadcast or acknowledge