diff --git a/api/system-current.txt b/api/system-current.txt index ef3ce2ab166ae..25b14014343ca 100755 --- a/api/system-current.txt +++ b/api/system-current.txt @@ -7198,6 +7198,7 @@ package android.provider { field public static final String CMAS_SEVERITY = "cmas_severity"; field public static final String CMAS_URGENCY = "cmas_urgency"; field @NonNull public static final android.net.Uri CONTENT_URI; + field public static final String DATA_CODING_SCHEME = "dcs"; field public static final String DEFAULT_SORT_ORDER = "date DESC"; field public static final String DELIVERY_TIME = "date"; field public static final String ETWS_WARNING_TYPE = "etws_warning_type"; @@ -7205,9 +7206,11 @@ package android.provider { field public static final String GEOMETRIES = "geometries"; field public static final String LAC = "lac"; field public static final String LANGUAGE_CODE = "language"; + field public static final String LOCATION_CHECK_TIME = "location_check_time"; field public static final String MAXIMUM_WAIT_TIME = "maximum_wait_time"; field public static final String MESSAGE_BODY = "body"; field public static final String MESSAGE_BROADCASTED = "message_broadcasted"; + field public static final String MESSAGE_DISPLAYED = "message_displayed"; field public static final String MESSAGE_FORMAT = "format"; field @NonNull @RequiresPermission(android.Manifest.permission.READ_CELL_BROADCASTS) public static final android.net.Uri MESSAGE_HISTORY_URI; field public static final String MESSAGE_PRIORITY = "priority"; @@ -9407,11 +9410,12 @@ package android.telephony { } public final class SmsCbMessage implements android.os.Parcelable { - ctor public SmsCbMessage(int, int, int, @NonNull android.telephony.SmsCbLocation, int, @Nullable String, @Nullable String, int, @Nullable android.telephony.SmsCbEtwsInfo, @Nullable android.telephony.SmsCbCmasInfo, int, @Nullable java.util.List, long, int, int); + ctor public SmsCbMessage(int, int, int, @NonNull android.telephony.SmsCbLocation, int, @Nullable String, int, @Nullable String, int, @Nullable android.telephony.SmsCbEtwsInfo, @Nullable android.telephony.SmsCbCmasInfo, int, @Nullable java.util.List, long, int, int); method @NonNull public static android.telephony.SmsCbMessage createFromCursor(@NonNull android.database.Cursor); method public int describeContents(); method @Nullable public android.telephony.SmsCbCmasInfo getCmasWarningInfo(); method @NonNull public android.content.ContentValues getContentValues(); + method public int getDataCodingScheme(); method @Nullable public android.telephony.SmsCbEtwsInfo getEtwsWarningInfo(); method public int getGeographicalScope(); method @NonNull public java.util.List getGeometries(); diff --git a/api/test-current.txt b/api/test-current.txt index 9a331a2f85215..6b3b3a8b15ea2 100644 --- a/api/test-current.txt +++ b/api/test-current.txt @@ -2558,6 +2558,7 @@ package android.provider { field public static final String CMAS_SEVERITY = "cmas_severity"; field public static final String CMAS_URGENCY = "cmas_urgency"; field @NonNull public static final android.net.Uri CONTENT_URI; + field public static final String DATA_CODING_SCHEME = "dcs"; field public static final String DEFAULT_SORT_ORDER = "date DESC"; field public static final String DELIVERY_TIME = "date"; field public static final String ETWS_WARNING_TYPE = "etws_warning_type"; @@ -2565,9 +2566,11 @@ package android.provider { field public static final String GEOMETRIES = "geometries"; field public static final String LAC = "lac"; field public static final String LANGUAGE_CODE = "language"; + field public static final String LOCATION_CHECK_TIME = "location_check_time"; field public static final String MAXIMUM_WAIT_TIME = "maximum_wait_time"; field public static final String MESSAGE_BODY = "body"; field public static final String MESSAGE_BROADCASTED = "message_broadcasted"; + field public static final String MESSAGE_DISPLAYED = "message_displayed"; field public static final String MESSAGE_FORMAT = "format"; field @NonNull @RequiresPermission(android.Manifest.permission.READ_CELL_BROADCASTS) public static final android.net.Uri MESSAGE_HISTORY_URI; field public static final String MESSAGE_PRIORITY = "priority"; diff --git a/core/java/android/provider/Telephony.java b/core/java/android/provider/Telephony.java index 1611d28b1be2c..c2b0ace7019a9 100644 --- a/core/java/android/provider/Telephony.java +++ b/core/java/android/provider/Telephony.java @@ -4244,6 +4244,15 @@ public final class Telephony { */ public static final String LANGUAGE_CODE = "language"; + /** + * Dats coding scheme of the message. + *

+ * The data coding scheme (dcs) value defined in 3GPP TS 23.038 section 4 + *

+ *

Type: INTEGER

+ */ + public static final String DATA_CODING_SCHEME = "dcs"; + /** * Message body. *

Type: TEXT

@@ -4332,17 +4341,31 @@ public final class Telephony { public static final String DEFAULT_SORT_ORDER = DELIVERY_TIME + " DESC"; /** - * The timestamp in millisecond of when the device received the message. + * The timestamp in millisecond, reported by {@link System#currentTimeMillis()}, when the + * device received the message. *

Type: BIGINT

*/ public static final String RECEIVED_TIME = "received_time"; + /** + * The timestamp in millisecond, reported by {@link System#currentTimeMillis()}, when + * location was checked last time. Note this is only applicable to geo-targeting message. + * For non geo-targeting message. the field will be set to -1. + *

Type: BIGINT

+ */ + public static final String LOCATION_CHECK_TIME = "location_check_time"; /** * Indicates that whether the message has been broadcasted to the application. *

Type: BOOLEAN

*/ public static final String MESSAGE_BROADCASTED = "message_broadcasted"; + /** + * Indicates that whether the message has been displayed to the user. + *

Type: BOOLEAN

+ */ + public static final String MESSAGE_DISPLAYED = "message_displayed"; + /** * The Warning Area Coordinates Elements. This element is used for geo-fencing purpose. * diff --git a/telephony/java/android/telephony/SmsCbMessage.java b/telephony/java/android/telephony/SmsCbMessage.java index 045d1ebb56404..09e87c022d39d 100644 --- a/telephony/java/android/telephony/SmsCbMessage.java +++ b/telephony/java/android/telephony/SmsCbMessage.java @@ -177,6 +177,9 @@ public final class SmsCbMessage implements Parcelable { @Nullable private final String mLanguage; + /** The 8-bit data coding scheme defined in 3GPP TS 23.038 section 4. */ + private final int mDataCodingScheme; + /** Message body, as a String. */ @Nullable private final String mBody; @@ -220,7 +223,7 @@ public final class SmsCbMessage implements Parcelable { @Nullable SmsCbCmasInfo cmasWarningInfo, int slotIndex, int subId) { this(messageFormat, geographicalScope, serialNumber, location, serviceCategory, language, - body, priority, etwsWarningInfo, cmasWarningInfo, 0 /* maximumWaitingTime */, + 0, body, priority, etwsWarningInfo, cmasWarningInfo, 0 /* maximumWaitingTime */, null /* geometries */, System.currentTimeMillis(), slotIndex, subId); } @@ -230,8 +233,8 @@ public final class SmsCbMessage implements Parcelable { */ public SmsCbMessage(int messageFormat, int geographicalScope, int serialNumber, @NonNull SmsCbLocation location, int serviceCategory, - @Nullable String language, @Nullable String body, int priority, - @Nullable SmsCbEtwsInfo etwsWarningInfo, + @Nullable String language, int dataCodingScheme, @Nullable String body, + int priority, @Nullable SmsCbEtwsInfo etwsWarningInfo, @Nullable SmsCbCmasInfo cmasWarningInfo, int maximumWaitTimeSec, @Nullable List geometries, long receivedTimeMillis, int slotIndex, int subId) { @@ -241,6 +244,7 @@ public final class SmsCbMessage implements Parcelable { mLocation = location; mServiceCategory = serviceCategory; mLanguage = language; + mDataCodingScheme = dataCodingScheme; mBody = body; mPriority = priority; mEtwsWarningInfo = etwsWarningInfo; @@ -263,6 +267,7 @@ public final class SmsCbMessage implements Parcelable { mLocation = new SmsCbLocation(in); mServiceCategory = in.readInt(); mLanguage = in.readString(); + mDataCodingScheme = in.readInt(); mBody = in.readString(); mPriority = in.readInt(); int type = in.readInt(); @@ -305,6 +310,7 @@ public final class SmsCbMessage implements Parcelable { mLocation.writeToParcel(dest, flags); dest.writeInt(mServiceCategory); dest.writeString(mLanguage); + dest.writeInt(mDataCodingScheme); dest.writeString(mBody); dest.writeInt(mPriority); if (mEtwsWarningInfo != null) { @@ -397,6 +403,15 @@ public final class SmsCbMessage implements Parcelable { return mLanguage; } + /** + * Get data coding scheme of the message + * + * @return The 8-bit data coding scheme defined in 3GPP TS 23.038 section 4. + */ + public int getDataCodingScheme() { + return mDataCodingScheme; + } + /** * Get the body of this message, or null if no body available * @@ -718,7 +733,7 @@ public final class SmsCbMessage implements Parcelable { cursor.getColumnIndexOrThrow(CellBroadcasts.MAXIMUM_WAIT_TIME)); return new SmsCbMessage(format, geoScope, serialNum, location, category, - language, body, priority, etwsInfo, cmasInfo, maximumWaitTimeSec, geometries, + language, 0, body, priority, etwsInfo, cmasInfo, maximumWaitTimeSec, geometries, receivedTimeMillis, slotIndex, subId); }