Telephony.java revision 913880b94d8b29d8dec34b2307c313e2180eb6f0
10825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville/* 20825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Copyright (C) 2006 The Android Open Source Project 30825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * 40825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Licensed under the Apache License, Version 2.0 (the "License"); 50825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * you may not use this file except in compliance with the License. 60825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * You may obtain a copy of the License at 70825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * 80825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * http://www.apache.org/licenses/LICENSE-2.0 90825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * 100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Unless required by applicable law or agreed to in writing, software 110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * distributed under the License is distributed on an "AS IS" BASIS, 120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * See the License for the specific language governing permissions and 140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * limitations under the License. 150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 170825495a331bb44df395a0cdb79fab85e68db5d5Wink Savillepackage android.provider; 180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 190825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport android.annotation.SdkConstant; 200825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport android.annotation.SdkConstant.SdkConstantType; 215c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braunimport android.content.ComponentName; 220825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport android.content.ContentResolver; 230825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport android.content.ContentValues; 240825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport android.content.Context; 250825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport android.content.Intent; 260825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport android.database.Cursor; 270825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport android.database.sqlite.SqliteWrapper; 280825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport android.net.Uri; 290825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport android.telephony.SmsMessage; 300825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport android.text.TextUtils; 3199c2e1d6749cfad2a8ca94a47857d8c3bfc09454Wink Savilleimport android.telephony.Rlog; 320825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport android.util.Patterns; 330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 345c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braunimport com.android.internal.telephony.SmsApplication; 355c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun 360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 370825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport java.util.HashSet; 380825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport java.util.Set; 390825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport java.util.regex.Matcher; 400825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport java.util.regex.Pattern; 410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville/** 43b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * The Telephony provider contains data related to phone operation, specifically SMS and MMS 44b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * messages and access to the APN list, including the MMSC to use. 4529305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * 4629305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * <p class="note"><strong>Note:</strong> These APIs are not available on all Android-powered 4729305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * devices. If your app depends on telephony features such as for managing SMS messages, include 4829305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * a <a href="{@docRoot}guide/topics/manifest/uses-feature-element.html">{@code <uses-feature>} 4929305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * </a> element in your manifest that declares the {@code "android.hardware.telephony"} hardware 5029305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * feature. Alternatively, you can check for telephony availability at runtime using either 5129305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * {@link android.content.pm.PackageManager#hasSystemFeature 5229305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * hasSystemFeature(PackageManager.FEATURE_TELEPHONY)} or {@link 5329305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * android.telephony.TelephonyManager#getPhoneType}.</p> 5429305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * 5529305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * <h3>Creating an SMS app</h3> 5629305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * 5729305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * <p>Only the default SMS app (selected by the user in system settings) is able to write to the 5829305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * SMS Provider (the tables defined within the {@code Telephony} class) and only the default SMS 5929305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * app receives the {@link android.provider.Telephony.Sms.Intents#SMS_DELIVER_ACTION} broadcast 6029305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * when the user receives an SMS or the {@link 6129305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * android.provider.Telephony.Sms.Intents#WAP_PUSH_DELIVER_ACTION} broadcast when the user 6229305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * receives an MMS.</p> 6329305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * 6429305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * <p>Any app that wants to behave as the user's default SMS app must handle the following intents: 6529305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * <ul> 6629305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * <li>In a broadcast receiver, include an intent filter for {@link Sms.Intents#SMS_DELIVER_ACTION} 6729305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * (<code>"android.provider.Telephony.SMS_DELIVER"</code>). The broadcast receiver must also 6829305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * require the {@link android.Manifest.permission#BROADCAST_SMS} permission. 6929305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * <p>This allows your app to directly receive incoming SMS messages.</p></li> 7029305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * <li>In a broadcast receiver, include an intent filter for {@link 7129305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * Sms.Intents#WAP_PUSH_DELIVER_ACTION}} ({@code "android.provider.Telephony.WAP_PUSH_DELIVER"}) 7229305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * with the MIME type <code>"application/vnd.wap.mms-message"</code>. 7329305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * The broadcast receiver must also require the {@link 7429305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * android.Manifest.permission#BROADCAST_WAP_PUSH} permission. 7529305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * <p>This allows your app to directly receive incoming MMS messages.</p></li> 7629305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * <li>In your activity that delivers new messages, include an intent filter for 7729305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * {@link android.content.Intent#ACTION_SENDTO} (<code>"android.intent.action.SENDTO" 7829305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * </code>) with schemas, <code>sms:</code>, <code>smsto:</code>, <code>mms:</code>, and 7929305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * <code>mmsto:</code>. 8029305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * <p>This allows your app to receive intents from other apps that want to deliver a 8129305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * message.</p></li> 8229305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * <li>In a service, include an intent filter for {@link 8329305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * android.telephony.TelephonyManager#ACTION_RESPOND_VIA_MESSAGE} 8429305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * (<code>"android.intent.action.RESPOND_VIA_MESSAGE"</code>) with schemas, 8529305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * <code>sms:</code>, <code>smsto:</code>, <code>mms:</code>, and <code>mmsto:</code>. 8629305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * This service must also require the {@link 8729305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * android.Manifest.permission#SEND_RESPOND_VIA_MESSAGE} permission. 8829305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * <p>This allows users to respond to incoming phone calls with an immediate text message 8929305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * using your app.</p></li> 9029305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * </ul> 9129305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * 9229305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * <p>Other apps that are not selected as the default SMS app can only <em>read</em> the SMS 9329305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * Provider, but may also be notified when a new SMS arrives by listening for the {@link 9429305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * Sms.Intents#SMS_RECEIVED_ACTION} 9529305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * broadcast, which is a non-abortable broadcast that may be delivered to multiple apps. This 9629305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * broadcast is intended for apps that—while not selected as the default SMS app—need to 9729305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * read special incoming messages such as to perform phone number verification.</p> 9829305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * 9929305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * <p>For more information about building SMS apps, read the blog post, <a 10029305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * href="http://android-developers.blogspot.com/2013/10/getting-your-sms-apps-ready-for-kitkat.html" 10129305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * >Getting Your SMS Apps Ready for KitKat</a>.</p> 10229305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * 1030825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 1040825495a331bb44df395a0cdb79fab85e68db5d5Wink Savillepublic final class Telephony { 1050825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville private static final String TAG = "Telephony"; 1060825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 107b47af9b263628c00b1c890f102091098a31463c0Jake Hamby /** 108b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * Not instantiable. 109b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * @hide 110b47af9b263628c00b1c890f102091098a31463c0Jake Hamby */ 111b47af9b263628c00b1c890f102091098a31463c0Jake Hamby private Telephony() { 1120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 1130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 1140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 115b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * Base columns for tables that contain text-based SMSs. 1160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 1170825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public interface TextBasedSmsColumns { 1180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 119b47af9b263628c00b1c890f102091098a31463c0Jake Hamby /** Message type: all messages. */ 1200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final int MESSAGE_TYPE_ALL = 0; 121b47af9b263628c00b1c890f102091098a31463c0Jake Hamby 122b47af9b263628c00b1c890f102091098a31463c0Jake Hamby /** Message type: inbox. */ 1230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final int MESSAGE_TYPE_INBOX = 1; 124b47af9b263628c00b1c890f102091098a31463c0Jake Hamby 125b47af9b263628c00b1c890f102091098a31463c0Jake Hamby /** Message type: sent messages. */ 1260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final int MESSAGE_TYPE_SENT = 2; 127b47af9b263628c00b1c890f102091098a31463c0Jake Hamby 128b47af9b263628c00b1c890f102091098a31463c0Jake Hamby /** Message type: drafts. */ 1290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final int MESSAGE_TYPE_DRAFT = 3; 130b47af9b263628c00b1c890f102091098a31463c0Jake Hamby 131b47af9b263628c00b1c890f102091098a31463c0Jake Hamby /** Message type: outbox. */ 1320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final int MESSAGE_TYPE_OUTBOX = 4; 133b47af9b263628c00b1c890f102091098a31463c0Jake Hamby 134b47af9b263628c00b1c890f102091098a31463c0Jake Hamby /** Message type: failed outgoing message. */ 135b47af9b263628c00b1c890f102091098a31463c0Jake Hamby public static final int MESSAGE_TYPE_FAILED = 5; 136b47af9b263628c00b1c890f102091098a31463c0Jake Hamby 137b47af9b263628c00b1c890f102091098a31463c0Jake Hamby /** Message type: queued to send later. */ 138b47af9b263628c00b1c890f102091098a31463c0Jake Hamby public static final int MESSAGE_TYPE_QUEUED = 6; 1390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 1400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 141b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * The type of message. 1420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * <P>Type: INTEGER</P> 1430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 144b47af9b263628c00b1c890f102091098a31463c0Jake Hamby public static final String TYPE = "type"; 1450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 1460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 147b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * The thread ID of the message. 148b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * <P>Type: INTEGER</P> 1490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 150b47af9b263628c00b1c890f102091098a31463c0Jake Hamby public static final String THREAD_ID = "thread_id"; 1510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 1520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 153b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * The address of the other party. 154b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * <P>Type: TEXT</P> 1550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 156b47af9b263628c00b1c890f102091098a31463c0Jake Hamby public static final String ADDRESS = "address"; 1570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 1580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 159b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * The date the message was received. 1600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * <P>Type: INTEGER (long)</P> 1610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 1620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String DATE = "date"; 1630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 1640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 165b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * The date the message was sent. 1660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * <P>Type: INTEGER (long)</P> 1670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 1680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String DATE_SENT = "date_sent"; 1690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 1700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 171b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * Has the message been read? 1720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * <P>Type: INTEGER (boolean)</P> 1730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 1740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String READ = "read"; 1750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 1760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 177b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * Has the message been seen by the user? The "seen" flag determines 178b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * whether we need to show a notification. 179b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * <P>Type: INTEGER (boolean)</P> 1800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 1810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String SEEN = "seen"; 1820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 1830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 184b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * {@code TP-Status} value for the message, or -1 if no status has been received. 185b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * <P>Type: INTEGER</P> 1860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 1870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String STATUS = "status"; 1880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 189b47af9b263628c00b1c890f102091098a31463c0Jake Hamby /** TP-Status: no status received. */ 1900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final int STATUS_NONE = -1; 191b47af9b263628c00b1c890f102091098a31463c0Jake Hamby /** TP-Status: complete. */ 1920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final int STATUS_COMPLETE = 0; 193b47af9b263628c00b1c890f102091098a31463c0Jake Hamby /** TP-Status: pending. */ 1940825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final int STATUS_PENDING = 32; 195b47af9b263628c00b1c890f102091098a31463c0Jake Hamby /** TP-Status: failed. */ 1960825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final int STATUS_FAILED = 64; 1970825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 1980825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 199b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * The subject of the message, if present. 2000825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * <P>Type: TEXT</P> 2010825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 2020825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String SUBJECT = "subject"; 2030825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 2040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 205b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * The body of the message. 2060825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * <P>Type: TEXT</P> 2070825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 2080825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String BODY = "body"; 2090825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 2100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 211b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * The ID of the sender of the conversation, if present. 212b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * <P>Type: INTEGER (reference to item in {@code content://contacts/people})</P> 2130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 2140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String PERSON = "person"; 2150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 2160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 217b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * The protocol identifier code. 2180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * <P>Type: INTEGER</P> 2190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 2200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String PROTOCOL = "protocol"; 2210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 2220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 223b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * Is the {@code TP-Reply-Path} flag set? 2240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * <P>Type: BOOLEAN</P> 2250825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 2260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String REPLY_PATH_PRESENT = "reply_path_present"; 2270825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 2280825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 229b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * The service center (SC) through which to send the message, if present. 2300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * <P>Type: TEXT</P> 2310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 2320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String SERVICE_CENTER = "service_center"; 2330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 2340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 235b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * Is the message locked? 2360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * <P>Type: INTEGER (boolean)</P> 2370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 2380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String LOCKED = "locked"; 2390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 2400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 241b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * Error code associated with sending or receiving this message. 2420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * <P>Type: INTEGER</P> 2430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 2440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String ERROR_CODE = "error_code"; 2450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 2460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 2470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 248b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * Contains all text-based SMS messages. 2490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 2500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final class Sms implements BaseColumns, TextBasedSmsColumns { 251b47af9b263628c00b1c890f102091098a31463c0Jake Hamby 252b47af9b263628c00b1c890f102091098a31463c0Jake Hamby /** 253b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * Not instantiable. 254b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * @hide 255b47af9b263628c00b1c890f102091098a31463c0Jake Hamby */ 256b47af9b263628c00b1c890f102091098a31463c0Jake Hamby private Sms() { 257b47af9b263628c00b1c890f102091098a31463c0Jake Hamby } 258b47af9b263628c00b1c890f102091098a31463c0Jake Hamby 25968b1cdcce7ac53015c8b5ecbcfb9ce9d1ad5d172David Braun /** 26068b1cdcce7ac53015c8b5ecbcfb9ce9d1ad5d172David Braun * Used to determine the currently configured default SMS package. 26168b1cdcce7ac53015c8b5ecbcfb9ce9d1ad5d172David Braun * @param context context of the requesting application 26268b1cdcce7ac53015c8b5ecbcfb9ce9d1ad5d172David Braun * @return package name for the default SMS package or null 26368b1cdcce7ac53015c8b5ecbcfb9ce9d1ad5d172David Braun */ 26468b1cdcce7ac53015c8b5ecbcfb9ce9d1ad5d172David Braun public static String getDefaultSmsPackage(Context context) { 26568b1cdcce7ac53015c8b5ecbcfb9ce9d1ad5d172David Braun ComponentName component = SmsApplication.getDefaultSmsApplication(context, false); 26668b1cdcce7ac53015c8b5ecbcfb9ce9d1ad5d172David Braun if (component != null) { 26768b1cdcce7ac53015c8b5ecbcfb9ce9d1ad5d172David Braun return component.getPackageName(); 26868b1cdcce7ac53015c8b5ecbcfb9ce9d1ad5d172David Braun } 26968b1cdcce7ac53015c8b5ecbcfb9ce9d1ad5d172David Braun return null; 27068b1cdcce7ac53015c8b5ecbcfb9ce9d1ad5d172David Braun } 27168b1cdcce7ac53015c8b5ecbcfb9ce9d1ad5d172David Braun 272b47af9b263628c00b1c890f102091098a31463c0Jake Hamby /** 273b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * Return cursor for table query. 274b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * @hide 275b47af9b263628c00b1c890f102091098a31463c0Jake Hamby */ 276b47af9b263628c00b1c890f102091098a31463c0Jake Hamby public static Cursor query(ContentResolver cr, String[] projection) { 2770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return cr.query(CONTENT_URI, projection, null, null, DEFAULT_SORT_ORDER); 2780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 2790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 280b47af9b263628c00b1c890f102091098a31463c0Jake Hamby /** 281b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * Return cursor for table query. 282b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * @hide 283b47af9b263628c00b1c890f102091098a31463c0Jake Hamby */ 284b47af9b263628c00b1c890f102091098a31463c0Jake Hamby public static Cursor query(ContentResolver cr, String[] projection, 2850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville String where, String orderBy) { 2860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return cr.query(CONTENT_URI, projection, where, 287b47af9b263628c00b1c890f102091098a31463c0Jake Hamby null, orderBy == null ? DEFAULT_SORT_ORDER : orderBy); 2880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 2890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 2900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 291b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * The {@code content://} style URL for this table. 2920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 293b47af9b263628c00b1c890f102091098a31463c0Jake Hamby public static final Uri CONTENT_URI = Uri.parse("content://sms"); 2940825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 2950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 296b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * The default sort order for this table. 2970825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 2980825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String DEFAULT_SORT_ORDER = "date DESC"; 2990825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 3000825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 3010825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Add an SMS to the given URI. 3020825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * 3030825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * @param resolver the content resolver to use 3040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * @param uri the URI to add the message to 3050825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * @param address the address of the sender 3060825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * @param body the body of the message 307b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * @param subject the pseudo-subject of the message 3080825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * @param date the timestamp for the message 3090825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * @param read true if the message has been read, false if not 3100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * @param deliveryReport true if a delivery report was requested, false if not 3110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * @return the URI for the new message 312b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * @hide 3130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 3140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static Uri addMessageToUri(ContentResolver resolver, 3150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville Uri uri, String address, String body, String subject, 3160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville Long date, boolean read, boolean deliveryReport) { 3170825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return addMessageToUri(resolver, uri, address, body, subject, 3180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville date, read, deliveryReport, -1L); 3190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 3200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 3210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 322b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * Add an SMS to the given URI with the specified thread ID. 3230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * 3240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * @param resolver the content resolver to use 3250825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * @param uri the URI to add the message to 3260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * @param address the address of the sender 3270825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * @param body the body of the message 328b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * @param subject the pseudo-subject of the message 3290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * @param date the timestamp for the message 3300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * @param read true if the message has been read, false if not 3310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * @param deliveryReport true if a delivery report was requested, false if not 3320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * @param threadId the thread_id of the message 3330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * @return the URI for the new message 334b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * @hide 3350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 3360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static Uri addMessageToUri(ContentResolver resolver, 3370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville Uri uri, String address, String body, String subject, 3380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville Long date, boolean read, boolean deliveryReport, long threadId) { 3390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville ContentValues values = new ContentValues(7); 3400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 3410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville values.put(ADDRESS, address); 3420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville if (date != null) { 3430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville values.put(DATE, date); 3440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 3450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville values.put(READ, read ? Integer.valueOf(1) : Integer.valueOf(0)); 3460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville values.put(SUBJECT, subject); 3470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville values.put(BODY, body); 3480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville if (deliveryReport) { 3490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville values.put(STATUS, STATUS_PENDING); 3500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 3510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville if (threadId != -1L) { 3520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville values.put(THREAD_ID, threadId); 3530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 3540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return resolver.insert(uri, values); 3550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 3560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 3570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 3580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Move a message to the given folder. 3590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * 3600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * @param context the context to use 3610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * @param uri the message to move 3620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * @param folder the folder to move to 3630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * @return true if the operation succeeded 364b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * @hide 3650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 3660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static boolean moveMessageToFolder(Context context, 3670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville Uri uri, int folder, int error) { 3680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville if (uri == null) { 3690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return false; 3700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 3710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 3720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville boolean markAsUnread = false; 3730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville boolean markAsRead = false; 3740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville switch(folder) { 3750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville case MESSAGE_TYPE_INBOX: 3760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville case MESSAGE_TYPE_DRAFT: 3770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville break; 3780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville case MESSAGE_TYPE_OUTBOX: 3790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville case MESSAGE_TYPE_SENT: 3800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville markAsRead = true; 3810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville break; 3820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville case MESSAGE_TYPE_FAILED: 3830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville case MESSAGE_TYPE_QUEUED: 3840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville markAsUnread = true; 3850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville break; 3860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville default: 3870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return false; 3880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 3890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 3900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville ContentValues values = new ContentValues(3); 3910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 3920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville values.put(TYPE, folder); 3930825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville if (markAsUnread) { 394b47af9b263628c00b1c890f102091098a31463c0Jake Hamby values.put(READ, 0); 3950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } else if (markAsRead) { 396b47af9b263628c00b1c890f102091098a31463c0Jake Hamby values.put(READ, 1); 3970825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 3980825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville values.put(ERROR_CODE, error); 3990825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 4000825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return 1 == SqliteWrapper.update(context, context.getContentResolver(), 4010825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville uri, values, null, null); 4020825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 4030825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 4040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 4050825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Returns true iff the folder (message type) identifies an 4060825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * outgoing message. 407b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * @hide 4080825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 4090825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static boolean isOutgoingFolder(int messageType) { 4100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return (messageType == MESSAGE_TYPE_FAILED) 4110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville || (messageType == MESSAGE_TYPE_OUTBOX) 4120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville || (messageType == MESSAGE_TYPE_SENT) 4130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville || (messageType == MESSAGE_TYPE_QUEUED); 4140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 4150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 4160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 417b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * Contains all text-based SMS messages in the SMS app inbox. 4180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 4190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final class Inbox implements BaseColumns, TextBasedSmsColumns { 420b47af9b263628c00b1c890f102091098a31463c0Jake Hamby 4210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 422b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * Not instantiable. 423b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * @hide 4240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 425b47af9b263628c00b1c890f102091098a31463c0Jake Hamby private Inbox() { 426b47af9b263628c00b1c890f102091098a31463c0Jake Hamby } 4270825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 4280825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 429b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * The {@code content://} style URL for this table. 430b47af9b263628c00b1c890f102091098a31463c0Jake Hamby */ 431b47af9b263628c00b1c890f102091098a31463c0Jake Hamby public static final Uri CONTENT_URI = Uri.parse("content://sms/inbox"); 432b47af9b263628c00b1c890f102091098a31463c0Jake Hamby 433b47af9b263628c00b1c890f102091098a31463c0Jake Hamby /** 434b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * The default sort order for this table. 4350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 4360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String DEFAULT_SORT_ORDER = "date DESC"; 4370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 4380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 4390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Add an SMS to the Draft box. 4400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * 4410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * @param resolver the content resolver to use 4420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * @param address the address of the sender 4430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * @param body the body of the message 444b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * @param subject the pseudo-subject of the message 4450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * @param date the timestamp for the message 4460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * @param read true if the message has been read, false if not 4470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * @return the URI for the new message 448b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * @hide 4490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 4500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static Uri addMessage(ContentResolver resolver, 4510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville String address, String body, String subject, Long date, 4520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville boolean read) { 4530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return addMessageToUri(resolver, CONTENT_URI, address, body, 4540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville subject, date, read, false); 4550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 4560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 4570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 4580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 459b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * Contains all sent text-based SMS messages in the SMS app. 4600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 4610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final class Sent implements BaseColumns, TextBasedSmsColumns { 462b47af9b263628c00b1c890f102091098a31463c0Jake Hamby 463b47af9b263628c00b1c890f102091098a31463c0Jake Hamby /** 464b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * Not instantiable. 465b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * @hide 466b47af9b263628c00b1c890f102091098a31463c0Jake Hamby */ 467b47af9b263628c00b1c890f102091098a31463c0Jake Hamby private Sent() { 468b47af9b263628c00b1c890f102091098a31463c0Jake Hamby } 469b47af9b263628c00b1c890f102091098a31463c0Jake Hamby 4700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 471b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * The {@code content://} style URL for this table. 4720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 473b47af9b263628c00b1c890f102091098a31463c0Jake Hamby public static final Uri CONTENT_URI = Uri.parse("content://sms/sent"); 4740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 4750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 476b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * The default sort order for this table. 4770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 4780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String DEFAULT_SORT_ORDER = "date DESC"; 4790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 4800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 4810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Add an SMS to the Draft box. 4820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * 4830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * @param resolver the content resolver to use 4840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * @param address the address of the sender 4850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * @param body the body of the message 486b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * @param subject the pseudo-subject of the message 4870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * @param date the timestamp for the message 4880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * @return the URI for the new message 489b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * @hide 4900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 4910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static Uri addMessage(ContentResolver resolver, 4920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville String address, String body, String subject, Long date) { 4930825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return addMessageToUri(resolver, CONTENT_URI, address, body, 4940825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville subject, date, true, false); 4950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 4960825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 4970825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 4980825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 499b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * Contains all sent text-based SMS messages in the SMS app. 5000825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 5010825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final class Draft implements BaseColumns, TextBasedSmsColumns { 5020825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 5030825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 504b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * Not instantiable. 505b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * @hide 5060825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 507b47af9b263628c00b1c890f102091098a31463c0Jake Hamby private Draft() { 508b47af9b263628c00b1c890f102091098a31463c0Jake Hamby } 5090825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 5100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 511b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * The {@code content://} style URL for this table. 5120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 513b47af9b263628c00b1c890f102091098a31463c0Jake Hamby public static final Uri CONTENT_URI = Uri.parse("content://sms/draft"); 5140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 5150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 516b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * The default sort order for this table. 517b47af9b263628c00b1c890f102091098a31463c0Jake Hamby */ 518b47af9b263628c00b1c890f102091098a31463c0Jake Hamby public static final String DEFAULT_SORT_ORDER = "date DESC"; 5190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 5200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 5210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 522b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * Contains all pending outgoing text-based SMS messages. 5230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 5240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final class Outbox implements BaseColumns, TextBasedSmsColumns { 525b47af9b263628c00b1c890f102091098a31463c0Jake Hamby 526b47af9b263628c00b1c890f102091098a31463c0Jake Hamby /** 527b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * Not instantiable. 528b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * @hide 529b47af9b263628c00b1c890f102091098a31463c0Jake Hamby */ 530b47af9b263628c00b1c890f102091098a31463c0Jake Hamby private Outbox() { 531b47af9b263628c00b1c890f102091098a31463c0Jake Hamby } 532b47af9b263628c00b1c890f102091098a31463c0Jake Hamby 5330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 534b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * The {@code content://} style URL for this table. 5350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 536b47af9b263628c00b1c890f102091098a31463c0Jake Hamby public static final Uri CONTENT_URI = Uri.parse("content://sms/outbox"); 5370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 5380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 539b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * The default sort order for this table. 5400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 5410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String DEFAULT_SORT_ORDER = "date DESC"; 5420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 5430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 544b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * Add an SMS to the outbox. 5450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * 5460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * @param resolver the content resolver to use 5470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * @param address the address of the sender 5480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * @param body the body of the message 549b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * @param subject the pseudo-subject of the message 5500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * @param date the timestamp for the message 5510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * @param deliveryReport whether a delivery report was requested for the message 5520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * @return the URI for the new message 553b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * @hide 5540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 5550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static Uri addMessage(ContentResolver resolver, 5560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville String address, String body, String subject, Long date, 5570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville boolean deliveryReport, long threadId) { 5580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return addMessageToUri(resolver, CONTENT_URI, address, body, 5590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville subject, date, true, deliveryReport, threadId); 5600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 5610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 5620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 5630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 564b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * Contains all sent text-based SMS messages in the SMS app. 5650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 5660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final class Conversations 5670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville implements BaseColumns, TextBasedSmsColumns { 568b47af9b263628c00b1c890f102091098a31463c0Jake Hamby 5690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 570b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * Not instantiable. 571b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * @hide 5720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 573b47af9b263628c00b1c890f102091098a31463c0Jake Hamby private Conversations() { 574b47af9b263628c00b1c890f102091098a31463c0Jake Hamby } 575b47af9b263628c00b1c890f102091098a31463c0Jake Hamby 576b47af9b263628c00b1c890f102091098a31463c0Jake Hamby /** 577b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * The {@code content://} style URL for this table. 578b47af9b263628c00b1c890f102091098a31463c0Jake Hamby */ 579b47af9b263628c00b1c890f102091098a31463c0Jake Hamby public static final Uri CONTENT_URI = Uri.parse("content://sms/conversations"); 5800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 5810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 582b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * The default sort order for this table. 5830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 5840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String DEFAULT_SORT_ORDER = "date DESC"; 5850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 5860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 587b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * The first 45 characters of the body of the message. 5880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * <P>Type: TEXT</P> 5890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 5900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String SNIPPET = "snippet"; 5910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 5920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 593b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * The number of messages in the conversation. 5940825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * <P>Type: INTEGER</P> 5950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 5960825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String MESSAGE_COUNT = "msg_count"; 5970825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 5980825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 5990825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 600b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * Contains constants for SMS related Intents that are broadcast. 6010825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 6020825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final class Intents { 603b47af9b263628c00b1c890f102091098a31463c0Jake Hamby 6040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 605b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * Not instantiable. 606b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * @hide 607b47af9b263628c00b1c890f102091098a31463c0Jake Hamby */ 608b47af9b263628c00b1c890f102091098a31463c0Jake Hamby private Intents() { 609b47af9b263628c00b1c890f102091098a31463c0Jake Hamby } 610b47af9b263628c00b1c890f102091098a31463c0Jake Hamby 611b47af9b263628c00b1c890f102091098a31463c0Jake Hamby /** 612b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * Set by BroadcastReceiver to indicate that the message was handled 6130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * successfully. 6140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 6150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final int RESULT_SMS_HANDLED = 1; 6160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 6170825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 618b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * Set by BroadcastReceiver to indicate a generic error while 6190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * processing the message. 6200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 6210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final int RESULT_SMS_GENERIC_ERROR = 2; 6220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 6230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 624b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * Set by BroadcastReceiver to indicate insufficient memory to store 6250825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * the message. 6260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 6270825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final int RESULT_SMS_OUT_OF_MEMORY = 3; 6280825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 6290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 630b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * Set by BroadcastReceiver to indicate that the message, while 6310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * possibly valid, is of a format or encoding that is not 6320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * supported. 6330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 6340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final int RESULT_SMS_UNSUPPORTED = 4; 6350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 6360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 637b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * Set by BroadcastReceiver to indicate a duplicate incoming message. 63890271d9ef1377b25b78359039fb2e87f32aba25bSungmin Choi */ 63990271d9ef1377b25b78359039fb2e87f32aba25bSungmin Choi public static final int RESULT_SMS_DUPLICATED = 5; 64090271d9ef1377b25b78359039fb2e87f32aba25bSungmin Choi 64190271d9ef1377b25b78359039fb2e87f32aba25bSungmin Choi /** 6425c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun * Activity action: Ask the user to change the default 6435c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun * SMS application. This will show a dialog that asks the 6445c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun * user whether they want to replace the current default 6455c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun * SMS application with the one specified in 6465c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun * {@link #EXTRA_PACKAGE_NAME}. 6475c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun */ 6485c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun @SdkConstant(SdkConstantType.ACTIVITY_INTENT_ACTION) 6495c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun public static final String ACTION_CHANGE_DEFAULT = 6505c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun "android.provider.Telephony.ACTION_CHANGE_DEFAULT"; 6515c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun 6525c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun /** 6535c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun * The PackageName string passed in as an 6545c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun * extra for {@link #ACTION_CHANGE_DEFAULT} 6555c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun * 6565c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun * @see #ACTION_CHANGE_DEFAULT 6575c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun */ 6585c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun public static final String EXTRA_PACKAGE_NAME = "package"; 6595c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun 6605c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun /** 661b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * Broadcast Action: A new text-based SMS message has been received 6625c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun * by the device. This intent will only be delivered to the default 6635c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun * sms app. That app is responsible for writing the message and notifying 6645c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun * the user. The intent will have the following extra values:</p> 6655c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun * 6665c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun * <ul> 66729305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * <li><em>"pdus"</em> - An Object[] of byte[]s containing the PDUs 6685c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun * that make up the message.</li> 6695c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun * </ul> 6705c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun * 6715c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun * <p>The extra values can be extracted using 6725c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun * {@link #getMessagesFromIntent(Intent)}.</p> 6735c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun * 6745c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun * <p>If a BroadcastReceiver encounters an error while processing 6755c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun * this intent it should set the result code appropriately.</p> 67629305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * 67729305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * <p class="note"><strong>Note:</strong> 67829305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * The broadcast receiver that filters for this intent must declare 67929305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * {@link android.Manifest.permission#BROADCAST_SMS} as a required permission in 68029305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * the <a href="{@docRoot}guide/topics/manifest/receiver-element.html">{@code 68129305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * <receiver>}</a> tag. 6825c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun */ 6835c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun @SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION) 6845c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun public static final String SMS_DELIVER_ACTION = 6855c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun "android.provider.Telephony.SMS_DELIVER"; 6865c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun 6875c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun /** 688b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * Broadcast Action: A new text-based SMS message has been received 689913880b94d8b29d8dec34b2307c313e2180eb6f0Cheuksan Wang * by the device. This intent will only be delivered to the default 690913880b94d8b29d8dec34b2307c313e2180eb6f0Cheuksan Wang * carrier app which is responsible for filtering the message. 691913880b94d8b29d8dec34b2307c313e2180eb6f0Cheuksan Wang * If the carrier app wants to drop a message, it should set the result 692913880b94d8b29d8dec34b2307c313e2180eb6f0Cheuksan Wang * code to {@link android.app.Activity#RESULT_CANCELED}. The carrier app can 693913880b94d8b29d8dec34b2307c313e2180eb6f0Cheuksan Wang * also modify the SMS PDU by setting the "pdus" value in result extras.</p> 694913880b94d8b29d8dec34b2307c313e2180eb6f0Cheuksan Wang * 695913880b94d8b29d8dec34b2307c313e2180eb6f0Cheuksan Wang * The intent will have the following extra values:</p> 696913880b94d8b29d8dec34b2307c313e2180eb6f0Cheuksan Wang * 697913880b94d8b29d8dec34b2307c313e2180eb6f0Cheuksan Wang * <ul> 698913880b94d8b29d8dec34b2307c313e2180eb6f0Cheuksan Wang * <li><em>"pdus"</em> - An Object[] of byte[]s containing the PDUs 699913880b94d8b29d8dec34b2307c313e2180eb6f0Cheuksan Wang * that make up the message.</li> 700913880b94d8b29d8dec34b2307c313e2180eb6f0Cheuksan Wang * <li><em>"format"</em> - A String describing the format of the PDUs. It can 701913880b94d8b29d8dec34b2307c313e2180eb6f0Cheuksan Wang * be either "3gpp" or "3gpp2".</li> 702913880b94d8b29d8dec34b2307c313e2180eb6f0Cheuksan Wang * <li><em>"destport"</em> - An int describing the destination port of a data 703913880b94d8b29d8dec34b2307c313e2180eb6f0Cheuksan Wang * SMS. It will be -1 for text SMS.</li> 704913880b94d8b29d8dec34b2307c313e2180eb6f0Cheuksan Wang * </ul> 705913880b94d8b29d8dec34b2307c313e2180eb6f0Cheuksan Wang * 706913880b94d8b29d8dec34b2307c313e2180eb6f0Cheuksan Wang * <p>The extra values can be extracted using 707913880b94d8b29d8dec34b2307c313e2180eb6f0Cheuksan Wang * {@link #getMessagesFromIntent(Intent)}.</p> 708913880b94d8b29d8dec34b2307c313e2180eb6f0Cheuksan Wang * 709913880b94d8b29d8dec34b2307c313e2180eb6f0Cheuksan Wang * <p class="note"><strong>Note:</strong> 710913880b94d8b29d8dec34b2307c313e2180eb6f0Cheuksan Wang * The broadcast receiver that filters for this intent must declare 711913880b94d8b29d8dec34b2307c313e2180eb6f0Cheuksan Wang * {@link android.Manifest.permission#BROADCAST_SMS} as a required permission in 712913880b94d8b29d8dec34b2307c313e2180eb6f0Cheuksan Wang * the <a href="{@docRoot}guide/topics/manifest/receiver-element.html">{@code 713913880b94d8b29d8dec34b2307c313e2180eb6f0Cheuksan Wang * <receiver>}</a> tag. 714913880b94d8b29d8dec34b2307c313e2180eb6f0Cheuksan Wang * @hide 715913880b94d8b29d8dec34b2307c313e2180eb6f0Cheuksan Wang */ 716913880b94d8b29d8dec34b2307c313e2180eb6f0Cheuksan Wang @SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION) 717913880b94d8b29d8dec34b2307c313e2180eb6f0Cheuksan Wang public static final String SMS_FILTER_ACTION = 718913880b94d8b29d8dec34b2307c313e2180eb6f0Cheuksan Wang "android.provider.Telephony.SMS_FILTER"; 719913880b94d8b29d8dec34b2307c313e2180eb6f0Cheuksan Wang 720913880b94d8b29d8dec34b2307c313e2180eb6f0Cheuksan Wang /** 721913880b94d8b29d8dec34b2307c313e2180eb6f0Cheuksan Wang * Broadcast Action: A new text-based SMS message has been received 7225c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun * by the device. This intent will be delivered to all registered 7235c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun * receivers as a notification. These apps are not expected to write the 7245c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun * message or notify the user. The intent will have the following extra 7250825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * values:</p> 7260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * 7270825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * <ul> 72829305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * <li><em>"pdus"</em> - An Object[] of byte[]s containing the PDUs 7290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * that make up the message.</li> 7300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * </ul> 7310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * 7320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * <p>The extra values can be extracted using 7330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * {@link #getMessagesFromIntent(Intent)}.</p> 7340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * 7350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * <p>If a BroadcastReceiver encounters an error while processing 7360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * this intent it should set the result code appropriately.</p> 7370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 7380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville @SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION) 7390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String SMS_RECEIVED_ACTION = 7400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville "android.provider.Telephony.SMS_RECEIVED"; 7410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 7420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 7430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Broadcast Action: A new data based SMS message has been received 7445c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun * by the device. This intent will be delivered to all registered 7455c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun * receivers as a notification. The intent will have the following extra 7460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * values:</p> 7470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * 7480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * <ul> 74929305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * <li><em>"pdus"</em> - An Object[] of byte[]s containing the PDUs 7500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * that make up the message.</li> 7510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * </ul> 7520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * 7530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * <p>The extra values can be extracted using 7540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * {@link #getMessagesFromIntent(Intent)}.</p> 7550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * 7560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * <p>If a BroadcastReceiver encounters an error while processing 7570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * this intent it should set the result code appropriately.</p> 7580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 7590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville @SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION) 7600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String DATA_SMS_RECEIVED_ACTION = 7610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville "android.intent.action.DATA_SMS_RECEIVED"; 7620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 7630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 7640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Broadcast Action: A new WAP PUSH message has been received by the 7655c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun * device. This intent will only be delivered to the default 7665c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun * sms app. That app is responsible for writing the message and notifying 7675c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun * the user. The intent will have the following extra values:</p> 7685c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun * 7695c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun * <ul> 77029305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * <li><em>"transactionId"</em> - (Integer) The WAP transaction ID</li> 77129305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * <li><em>"pduType"</em> - (Integer) The WAP PDU type</li> 77229305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * <li><em>"header"</em> - (byte[]) The header of the message</li> 77329305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * <li><em>"data"</em> - (byte[]) The data payload of the message</li> 77429305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * <li><em>"contentTypeParameters" </em> 77529305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * -(HashMap<String,String>) Any parameters associated with the content type 7765c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun * (decoded from the WSP Content-Type header)</li> 7775c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun * </ul> 7785c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun * 7795c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun * <p>If a BroadcastReceiver encounters an error while processing 7805c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun * this intent it should set the result code appropriately.</p> 7815c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun * 7825c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun * <p>The contentTypeParameters extra value is map of content parameters keyed by 7835c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun * their names.</p> 7845c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun * 7855c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun * <p>If any unassigned well-known parameters are encountered, the key of the map will 7865c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun * be 'unassigned/0x...', where '...' is the hex value of the unassigned parameter. If 7875c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun * a parameter has No-Value the value in the map will be null.</p> 78829305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * 78929305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * <p class="note"><strong>Note:</strong> 79029305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * The broadcast receiver that filters for this intent must declare 79129305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * {@link android.Manifest.permission#BROADCAST_WAP_PUSH} as a required permission in 79229305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * the <a href="{@docRoot}guide/topics/manifest/receiver-element.html">{@code 79329305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * <receiver>}</a> tag. 7945c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun */ 7955c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun @SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION) 7965c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun public static final String WAP_PUSH_DELIVER_ACTION = 7975c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun "android.provider.Telephony.WAP_PUSH_DELIVER"; 7985c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun 7995c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun /** 8005c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun * Broadcast Action: A new WAP PUSH message has been received by the 8015c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun * device. This intent will be delivered to all registered 8025c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun * receivers as a notification. These apps are not expected to write the 8035c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun * message or notify the user. The intent will have the following extra 8040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * values:</p> 8050825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * 8060825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * <ul> 80729305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * <li><em>"transactionId"</em> - (Integer) The WAP transaction ID</li> 80829305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * <li><em>"pduType"</em> - (Integer) The WAP PDU type</li> 80929305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * <li><em>"header"</em> - (byte[]) The header of the message</li> 81029305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * <li><em>"data"</em> - (byte[]) The data payload of the message</li> 81129305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * <li><em>"contentTypeParameters"</em> 81229305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * - (HashMap<String,String>) Any parameters associated with the content type 8130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * (decoded from the WSP Content-Type header)</li> 8140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * </ul> 8150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * 8160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * <p>If a BroadcastReceiver encounters an error while processing 8170825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * this intent it should set the result code appropriately.</p> 8180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * 8190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * <p>The contentTypeParameters extra value is map of content parameters keyed by 8200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * their names.</p> 8210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * 8220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * <p>If any unassigned well-known parameters are encountered, the key of the map will 8230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * be 'unassigned/0x...', where '...' is the hex value of the unassigned parameter. If 8240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * a parameter has No-Value the value in the map will be null.</p> 8250825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 8260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville @SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION) 8270825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String WAP_PUSH_RECEIVED_ACTION = 8280825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville "android.provider.Telephony.WAP_PUSH_RECEIVED"; 8290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 8300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 8310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Broadcast Action: A new Cell Broadcast message has been received 8320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * by the device. The intent will have the following extra 8330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * values:</p> 8340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * 8350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * <ul> 83629305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * <li><em>"message"</em> - An SmsCbMessage object containing the broadcast message 8370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * data. This is not an emergency alert, so ETWS and CMAS data will be null.</li> 8380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * </ul> 8390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * 8400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * <p>The extra values can be extracted using 8410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * {@link #getMessagesFromIntent(Intent)}.</p> 8420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * 8430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * <p>If a BroadcastReceiver encounters an error while processing 8440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * this intent it should set the result code appropriately.</p> 8450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 8460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville @SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION) 8470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String SMS_CB_RECEIVED_ACTION = 8480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville "android.provider.Telephony.SMS_CB_RECEIVED"; 8490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 8500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 8510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Broadcast Action: A new Emergency Broadcast message has been received 8520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * by the device. The intent will have the following extra 8530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * values:</p> 8540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * 8550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * <ul> 85629305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * <li><em>"message"</em> - An SmsCbMessage object containing the broadcast message 8570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * data, including ETWS or CMAS warning notification info if present.</li> 8580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * </ul> 8590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * 8600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * <p>The extra values can be extracted using 8610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * {@link #getMessagesFromIntent(Intent)}.</p> 8620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * 8630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * <p>If a BroadcastReceiver encounters an error while processing 8640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * this intent it should set the result code appropriately.</p> 8650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 8660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville @SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION) 8670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String SMS_EMERGENCY_CB_RECEIVED_ACTION = 8680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville "android.provider.Telephony.SMS_EMERGENCY_CB_RECEIVED"; 8690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 8700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 8710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Broadcast Action: A new CDMA SMS has been received containing Service Category 8720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Program Data (updates the list of enabled broadcast channels). The intent will 8730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * have the following extra values:</p> 8740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * 8750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * <ul> 87629305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * <li><em>"operations"</em> - An array of CdmaSmsCbProgramData objects containing 8770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * the service category operations (add/delete/clear) to perform.</li> 8780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * </ul> 8790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * 8800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * <p>The extra values can be extracted using 8810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * {@link #getMessagesFromIntent(Intent)}.</p> 8820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * 8830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * <p>If a BroadcastReceiver encounters an error while processing 8840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * this intent it should set the result code appropriately.</p> 8850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 8860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville @SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION) 8870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String SMS_SERVICE_CATEGORY_PROGRAM_DATA_RECEIVED_ACTION = 8880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville "android.provider.Telephony.SMS_SERVICE_CATEGORY_PROGRAM_DATA_RECEIVED"; 8890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 8900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 8910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Broadcast Action: The SIM storage for SMS messages is full. If 8920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * space is not freed, messages targeted for the SIM (class 2) may 8930825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * not be saved. 8940825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 8950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville @SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION) 8960825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String SIM_FULL_ACTION = 8970825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville "android.provider.Telephony.SIM_FULL"; 8980825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 8990825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 9000825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Broadcast Action: An incoming SMS has been rejected by the 9010825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * telephony framework. This intent is sent in lieu of any 9020825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * of the RECEIVED_ACTION intents. The intent will have the 9030825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * following extra value:</p> 9040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * 9050825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * <ul> 90629305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * <li><em>"result"</em> - An int result code, e.g. {@link #RESULT_SMS_OUT_OF_MEMORY} 9070825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * indicating the error returned to the network.</li> 9080825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * </ul> 9090825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 9100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville @SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION) 9110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String SMS_REJECTED_ACTION = 9120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville "android.provider.Telephony.SMS_REJECTED"; 9130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 9140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 9150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Read the PDUs out of an {@link #SMS_RECEIVED_ACTION} or a 9160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * {@link #DATA_SMS_RECEIVED_ACTION} intent. 9170825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * 9180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * @param intent the intent to read from 9190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * @return an array of SmsMessages for the PDUs 9200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 921b47af9b263628c00b1c890f102091098a31463c0Jake Hamby public static SmsMessage[] getMessagesFromIntent(Intent intent) { 9220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville Object[] messages = (Object[]) intent.getSerializableExtra("pdus"); 9230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville String format = intent.getStringExtra("format"); 9240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 925b47af9b263628c00b1c890f102091098a31463c0Jake Hamby int pduCount = messages.length; 9260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville SmsMessage[] msgs = new SmsMessage[pduCount]; 927b47af9b263628c00b1c890f102091098a31463c0Jake Hamby 9280825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville for (int i = 0; i < pduCount; i++) { 929b47af9b263628c00b1c890f102091098a31463c0Jake Hamby byte[] pdu = (byte[]) messages[i]; 930b47af9b263628c00b1c890f102091098a31463c0Jake Hamby msgs[i] = SmsMessage.createFromPdu(pdu, format); 9310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 9320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return msgs; 9330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 9340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 9350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 9360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 9370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 9380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Base columns for tables that contain MMSs. 9390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 9400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public interface BaseMmsColumns extends BaseColumns { 9410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 942b47af9b263628c00b1c890f102091098a31463c0Jake Hamby /** Message box: all messages. */ 9430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final int MESSAGE_BOX_ALL = 0; 944b47af9b263628c00b1c890f102091098a31463c0Jake Hamby /** Message box: inbox. */ 9450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final int MESSAGE_BOX_INBOX = 1; 946b47af9b263628c00b1c890f102091098a31463c0Jake Hamby /** Message box: sent messages. */ 9470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final int MESSAGE_BOX_SENT = 2; 948b47af9b263628c00b1c890f102091098a31463c0Jake Hamby /** Message box: drafts. */ 9490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final int MESSAGE_BOX_DRAFTS = 3; 950b47af9b263628c00b1c890f102091098a31463c0Jake Hamby /** Message box: outbox. */ 9510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final int MESSAGE_BOX_OUTBOX = 4; 9520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 9530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 954b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * The thread ID of the message. 955b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * <P>Type: INTEGER (long)</P> 956b47af9b263628c00b1c890f102091098a31463c0Jake Hamby */ 957b47af9b263628c00b1c890f102091098a31463c0Jake Hamby public static final String THREAD_ID = "thread_id"; 958b47af9b263628c00b1c890f102091098a31463c0Jake Hamby 959b47af9b263628c00b1c890f102091098a31463c0Jake Hamby /** 9600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * The date the message was received. 9610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * <P>Type: INTEGER (long)</P> 9620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 9630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String DATE = "date"; 9640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 9650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 9660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * The date the message was sent. 9670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * <P>Type: INTEGER (long)</P> 9680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 9690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String DATE_SENT = "date_sent"; 9700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 9710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 972b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * The box which the message belongs to, e.g. {@link #MESSAGE_BOX_INBOX}. 9730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * <P>Type: INTEGER</P> 9740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 9750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String MESSAGE_BOX = "msg_box"; 9760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 9770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 978b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * Has the message been read? 9790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * <P>Type: INTEGER (boolean)</P> 9800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 9810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String READ = "read"; 9820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 9830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 984b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * Has the message been seen by the user? The "seen" flag determines 985b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * whether we need to show a new message notification. 986b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * <P>Type: INTEGER (boolean)</P> 9870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 9880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String SEEN = "seen"; 9890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 9900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 991b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * Does the message have only a text part (can also have a subject) with 992b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * no picture, slideshow, sound, etc. parts? 993b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * <P>Type: INTEGER (boolean)</P> 9947a299a45d1132bfecfee02a1a71427dfbbadc72eTom Taylor */ 9957a299a45d1132bfecfee02a1a71427dfbbadc72eTom Taylor public static final String TEXT_ONLY = "text_only"; 9967a299a45d1132bfecfee02a1a71427dfbbadc72eTom Taylor 9977a299a45d1132bfecfee02a1a71427dfbbadc72eTom Taylor /** 998b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * The {@code Message-ID} of the message. 9990825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * <P>Type: TEXT</P> 10000825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 10010825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String MESSAGE_ID = "m_id"; 10020825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 10030825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 10040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * The subject of the message, if present. 10050825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * <P>Type: TEXT</P> 10060825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 10070825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String SUBJECT = "sub"; 10080825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 10090825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 10100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * The character set of the subject, if present. 10110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * <P>Type: INTEGER</P> 10120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 10130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String SUBJECT_CHARSET = "sub_cs"; 10140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 10150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 1016b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * The {@code Content-Type} of the message. 10170825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * <P>Type: TEXT</P> 10180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 10190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String CONTENT_TYPE = "ct_t"; 10200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 10210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 1022b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * The {@code Content-Location} of the message. 10230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * <P>Type: TEXT</P> 10240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 10250825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String CONTENT_LOCATION = "ct_l"; 10260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 10270825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 10280825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * The expiry time of the message. 1029b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * <P>Type: INTEGER (long)</P> 10300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 10310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String EXPIRY = "exp"; 10320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 10330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 10340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * The class of the message. 10350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * <P>Type: TEXT</P> 10360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 10370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String MESSAGE_CLASS = "m_cls"; 10380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 10390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 10400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * The type of the message defined by MMS spec. 10410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * <P>Type: INTEGER</P> 10420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 10430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String MESSAGE_TYPE = "m_type"; 10440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 10450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 1046b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * The version of the specification that this message conforms to. 10470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * <P>Type: INTEGER</P> 10480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 10490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String MMS_VERSION = "v"; 10500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 10510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 10520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * The size of the message. 10530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * <P>Type: INTEGER</P> 10540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 10550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String MESSAGE_SIZE = "m_size"; 10560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 10570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 10580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * The priority of the message. 1059b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * <P>Type: INTEGER</P> 10600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 10610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String PRIORITY = "pri"; 10620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 10630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 1064b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * The {@code read-report} of the message. 1065b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * <P>Type: INTEGER (boolean)</P> 10660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 10670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String READ_REPORT = "rr"; 10680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 10690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 1070b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * Is read report allowed? 1071b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * <P>Type: INTEGER (boolean)</P> 10720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 10730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String REPORT_ALLOWED = "rpt_a"; 10740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 10750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 1076b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * The {@code response-status} of the message. 10770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * <P>Type: INTEGER</P> 10780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 10790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String RESPONSE_STATUS = "resp_st"; 10800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 10810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 1082b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * The {@code status} of the message. 10830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * <P>Type: INTEGER</P> 10840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 10850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String STATUS = "st"; 10860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 10870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 1088b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * The {@code transaction-id} of the message. 10890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * <P>Type: TEXT</P> 10900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 10910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String TRANSACTION_ID = "tr_id"; 10920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 10930825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 1094b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * The {@code retrieve-status} of the message. 10950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * <P>Type: INTEGER</P> 10960825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 10970825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String RETRIEVE_STATUS = "retr_st"; 10980825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 10990825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 1100b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * The {@code retrieve-text} of the message. 11010825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * <P>Type: TEXT</P> 11020825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 11030825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String RETRIEVE_TEXT = "retr_txt"; 11040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 11050825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 11060825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * The character set of the retrieve-text. 1107b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * <P>Type: INTEGER</P> 11080825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 11090825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String RETRIEVE_TEXT_CHARSET = "retr_txt_cs"; 11100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 11110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 1112b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * The {@code read-status} of the message. 11130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * <P>Type: INTEGER</P> 11140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 11150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String READ_STATUS = "read_status"; 11160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 11170825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 1118b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * The {@code content-class} of the message. 11190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * <P>Type: INTEGER</P> 11200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 11210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String CONTENT_CLASS = "ct_cls"; 11220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 11230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 1124b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * The {@code delivery-report} of the message. 11250825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * <P>Type: INTEGER</P> 11260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 11270825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String DELIVERY_REPORT = "d_rpt"; 11280825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 11290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 1130b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * The {@code delivery-time-token} of the message. 11310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * <P>Type: INTEGER</P> 1132b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * @deprecated this column is no longer supported. 1133b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * @hide 11340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 1135b47af9b263628c00b1c890f102091098a31463c0Jake Hamby @Deprecated 11360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String DELIVERY_TIME_TOKEN = "d_tm_tok"; 11370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 11380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 1139b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * The {@code delivery-time} of the message. 11400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * <P>Type: INTEGER</P> 11410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 11420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String DELIVERY_TIME = "d_tm"; 11430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 11440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 1145b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * The {@code response-text} of the message. 11460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * <P>Type: TEXT</P> 11470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 11480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String RESPONSE_TEXT = "resp_txt"; 11490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 11500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 1151b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * The {@code sender-visibility} of the message. 11520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * <P>Type: TEXT</P> 1153b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * @deprecated this column is no longer supported. 1154b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * @hide 11550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 1156b47af9b263628c00b1c890f102091098a31463c0Jake Hamby @Deprecated 11570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String SENDER_VISIBILITY = "s_vis"; 11580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 11590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 1160b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * The {@code reply-charging} of the message. 11610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * <P>Type: INTEGER</P> 1162b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * @deprecated this column is no longer supported. 1163b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * @hide 11640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 1165b47af9b263628c00b1c890f102091098a31463c0Jake Hamby @Deprecated 11660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String REPLY_CHARGING = "r_chg"; 11670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 11680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 1169b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * The {@code reply-charging-deadline-token} of the message. 11700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * <P>Type: INTEGER</P> 1171b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * @deprecated this column is no longer supported. 1172b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * @hide 11730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 1174b47af9b263628c00b1c890f102091098a31463c0Jake Hamby @Deprecated 11750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String REPLY_CHARGING_DEADLINE_TOKEN = "r_chg_dl_tok"; 11760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 11770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 1178b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * The {@code reply-charging-deadline} of the message. 11790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * <P>Type: INTEGER</P> 1180b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * @deprecated this column is no longer supported. 1181b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * @hide 11820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 1183b47af9b263628c00b1c890f102091098a31463c0Jake Hamby @Deprecated 11840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String REPLY_CHARGING_DEADLINE = "r_chg_dl"; 11850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 11860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 1187b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * The {@code reply-charging-id} of the message. 11880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * <P>Type: TEXT</P> 1189b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * @deprecated this column is no longer supported. 1190b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * @hide 11910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 1192b47af9b263628c00b1c890f102091098a31463c0Jake Hamby @Deprecated 11930825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String REPLY_CHARGING_ID = "r_chg_id"; 11940825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 11950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 1196b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * The {@code reply-charging-size} of the message. 11970825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * <P>Type: INTEGER</P> 1198b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * @deprecated this column is no longer supported. 1199b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * @hide 12000825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 1201b47af9b263628c00b1c890f102091098a31463c0Jake Hamby @Deprecated 12020825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String REPLY_CHARGING_SIZE = "r_chg_sz"; 12030825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 12040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 1205b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * The {@code previously-sent-by} of the message. 12060825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * <P>Type: TEXT</P> 1207b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * @deprecated this column is no longer supported. 1208b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * @hide 12090825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 1210b47af9b263628c00b1c890f102091098a31463c0Jake Hamby @Deprecated 12110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String PREVIOUSLY_SENT_BY = "p_s_by"; 12120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 12130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 1214b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * The {@code previously-sent-date} of the message. 12150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * <P>Type: INTEGER</P> 1216b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * @deprecated this column is no longer supported. 1217b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * @hide 12180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 1219b47af9b263628c00b1c890f102091098a31463c0Jake Hamby @Deprecated 12200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String PREVIOUSLY_SENT_DATE = "p_s_d"; 12210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 12220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 1223b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * The {@code store} of the message. 12240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * <P>Type: TEXT</P> 1225b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * @deprecated this column is no longer supported. 1226b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * @hide 12270825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 1228b47af9b263628c00b1c890f102091098a31463c0Jake Hamby @Deprecated 12290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String STORE = "store"; 12300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 12310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 1232b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * The {@code mm-state} of the message. 12330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * <P>Type: INTEGER</P> 1234b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * @deprecated this column is no longer supported. 1235b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * @hide 12360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 1237b47af9b263628c00b1c890f102091098a31463c0Jake Hamby @Deprecated 12380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String MM_STATE = "mm_st"; 12390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 12400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 1241b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * The {@code mm-flags-token} of the message. 12420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * <P>Type: INTEGER</P> 1243b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * @deprecated this column is no longer supported. 1244b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * @hide 12450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 1246b47af9b263628c00b1c890f102091098a31463c0Jake Hamby @Deprecated 12470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String MM_FLAGS_TOKEN = "mm_flg_tok"; 12480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 12490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 1250b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * The {@code mm-flags} of the message. 12510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * <P>Type: TEXT</P> 1252b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * @deprecated this column is no longer supported. 1253b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * @hide 12540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 1255b47af9b263628c00b1c890f102091098a31463c0Jake Hamby @Deprecated 12560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String MM_FLAGS = "mm_flg"; 12570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 12580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 1259b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * The {@code store-status} of the message. 12600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * <P>Type: TEXT</P> 1261b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * @deprecated this column is no longer supported. 1262b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * @hide 12630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 1264b47af9b263628c00b1c890f102091098a31463c0Jake Hamby @Deprecated 12650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String STORE_STATUS = "store_st"; 12660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 12670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 1268b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * The {@code store-status-text} of the message. 12690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * <P>Type: TEXT</P> 1270b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * @deprecated this column is no longer supported. 1271b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * @hide 12720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 1273b47af9b263628c00b1c890f102091098a31463c0Jake Hamby @Deprecated 12740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String STORE_STATUS_TEXT = "store_st_txt"; 12750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 12760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 1277b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * The {@code stored} of the message. 12780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * <P>Type: TEXT</P> 1279b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * @deprecated this column is no longer supported. 1280b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * @hide 12810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 1282b47af9b263628c00b1c890f102091098a31463c0Jake Hamby @Deprecated 12830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String STORED = "stored"; 12840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 12850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 1286b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * The {@code totals} of the message. 12870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * <P>Type: TEXT</P> 1288b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * @deprecated this column is no longer supported. 1289b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * @hide 12900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 1291b47af9b263628c00b1c890f102091098a31463c0Jake Hamby @Deprecated 12920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String TOTALS = "totals"; 12930825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 12940825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 1295b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * The {@code mbox-totals} of the message. 12960825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * <P>Type: TEXT</P> 1297b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * @deprecated this column is no longer supported. 1298b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * @hide 12990825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 1300b47af9b263628c00b1c890f102091098a31463c0Jake Hamby @Deprecated 13010825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String MBOX_TOTALS = "mb_t"; 13020825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 13030825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 1304b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * The {@code mbox-totals-token} of the message. 13050825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * <P>Type: INTEGER</P> 1306b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * @deprecated this column is no longer supported. 1307b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * @hide 13080825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 1309b47af9b263628c00b1c890f102091098a31463c0Jake Hamby @Deprecated 13100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String MBOX_TOTALS_TOKEN = "mb_t_tok"; 13110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 13120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 1313b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * The {@code quotas} of the message. 13140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * <P>Type: TEXT</P> 1315b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * @deprecated this column is no longer supported. 1316b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * @hide 13170825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 1318b47af9b263628c00b1c890f102091098a31463c0Jake Hamby @Deprecated 13190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String QUOTAS = "qt"; 13200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 13210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 1322b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * The {@code mbox-quotas} of the message. 13230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * <P>Type: TEXT</P> 1324b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * @deprecated this column is no longer supported. 1325b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * @hide 13260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 1327b47af9b263628c00b1c890f102091098a31463c0Jake Hamby @Deprecated 13280825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String MBOX_QUOTAS = "mb_qt"; 13290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 13300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 1331b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * The {@code mbox-quotas-token} of the message. 13320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * <P>Type: INTEGER</P> 1333b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * @deprecated this column is no longer supported. 1334b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * @hide 13350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 1336b47af9b263628c00b1c890f102091098a31463c0Jake Hamby @Deprecated 13370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String MBOX_QUOTAS_TOKEN = "mb_qt_tok"; 13380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 13390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 1340b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * The {@code message-count} of the message. 13410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * <P>Type: INTEGER</P> 1342b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * @deprecated this column is no longer supported. 1343b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * @hide 13440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 1345b47af9b263628c00b1c890f102091098a31463c0Jake Hamby @Deprecated 13460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String MESSAGE_COUNT = "m_cnt"; 13470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 13480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 1349b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * The {@code start} of the message. 13500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * <P>Type: INTEGER</P> 1351b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * @deprecated this column is no longer supported. 1352b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * @hide 13530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 1354b47af9b263628c00b1c890f102091098a31463c0Jake Hamby @Deprecated 13550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String START = "start"; 13560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 13570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 1358b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * The {@code distribution-indicator} of the message. 13590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * <P>Type: TEXT</P> 1360b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * @deprecated this column is no longer supported. 1361b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * @hide 13620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 1363b47af9b263628c00b1c890f102091098a31463c0Jake Hamby @Deprecated 13640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String DISTRIBUTION_INDICATOR = "d_ind"; 13650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 13660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 1367b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * The {@code element-descriptor} of the message. 13680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * <P>Type: TEXT</P> 1369b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * @deprecated this column is no longer supported. 1370b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * @hide 13710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 1372b47af9b263628c00b1c890f102091098a31463c0Jake Hamby @Deprecated 13730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String ELEMENT_DESCRIPTOR = "e_des"; 13740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 13750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 1376b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * The {@code limit} of the message. 13770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * <P>Type: INTEGER</P> 1378b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * @deprecated this column is no longer supported. 1379b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * @hide 13800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 1381b47af9b263628c00b1c890f102091098a31463c0Jake Hamby @Deprecated 13820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String LIMIT = "limit"; 13830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 13840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 1385b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * The {@code recommended-retrieval-mode} of the message. 13860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * <P>Type: INTEGER</P> 1387b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * @deprecated this column is no longer supported. 1388b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * @hide 13890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 1390b47af9b263628c00b1c890f102091098a31463c0Jake Hamby @Deprecated 13910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String RECOMMENDED_RETRIEVAL_MODE = "r_r_mod"; 13920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 13930825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 1394b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * The {@code recommended-retrieval-mode-text} of the message. 13950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * <P>Type: TEXT</P> 1396b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * @deprecated this column is no longer supported. 1397b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * @hide 13980825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 1399b47af9b263628c00b1c890f102091098a31463c0Jake Hamby @Deprecated 14000825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String RECOMMENDED_RETRIEVAL_MODE_TEXT = "r_r_mod_txt"; 14010825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 14020825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 1403b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * The {@code status-text} of the message. 14040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * <P>Type: TEXT</P> 1405b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * @deprecated this column is no longer supported. 1406b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * @hide 14070825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 1408b47af9b263628c00b1c890f102091098a31463c0Jake Hamby @Deprecated 14090825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String STATUS_TEXT = "st_txt"; 14100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 14110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 1412b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * The {@code applic-id} of the message. 14130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * <P>Type: TEXT</P> 1414b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * @deprecated this column is no longer supported. 1415b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * @hide 14160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 1417b47af9b263628c00b1c890f102091098a31463c0Jake Hamby @Deprecated 14180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String APPLIC_ID = "apl_id"; 14190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 14200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 1421b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * The {@code reply-applic-id} of the message. 14220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * <P>Type: TEXT</P> 1423b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * @deprecated this column is no longer supported. 1424b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * @hide 14250825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 1426b47af9b263628c00b1c890f102091098a31463c0Jake Hamby @Deprecated 14270825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String REPLY_APPLIC_ID = "r_apl_id"; 14280825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 14290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 1430b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * The {@code aux-applic-id} of the message. 14310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * <P>Type: TEXT</P> 1432b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * @deprecated this column is no longer supported. 1433b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * @hide 14340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 1435b47af9b263628c00b1c890f102091098a31463c0Jake Hamby @Deprecated 14360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String AUX_APPLIC_ID = "aux_apl_id"; 14370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 14380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 1439b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * The {@code drm-content} of the message. 14400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * <P>Type: TEXT</P> 1441b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * @deprecated this column is no longer supported. 1442b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * @hide 14430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 1444b47af9b263628c00b1c890f102091098a31463c0Jake Hamby @Deprecated 14450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String DRM_CONTENT = "drm_c"; 14460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 14470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 1448b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * The {@code adaptation-allowed} of the message. 14490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * <P>Type: TEXT</P> 1450b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * @deprecated this column is no longer supported. 1451b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * @hide 14520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 1453b47af9b263628c00b1c890f102091098a31463c0Jake Hamby @Deprecated 14540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String ADAPTATION_ALLOWED = "adp_a"; 14550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 14560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 1457b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * The {@code replace-id} of the message. 14580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * <P>Type: TEXT</P> 1459b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * @deprecated this column is no longer supported. 1460b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * @hide 14610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 1462b47af9b263628c00b1c890f102091098a31463c0Jake Hamby @Deprecated 14630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String REPLACE_ID = "repl_id"; 14640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 14650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 1466b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * The {@code cancel-id} of the message. 14670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * <P>Type: TEXT</P> 1468b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * @deprecated this column is no longer supported. 1469b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * @hide 14700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 1471b47af9b263628c00b1c890f102091098a31463c0Jake Hamby @Deprecated 14720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String CANCEL_ID = "cl_id"; 14730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 14740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 1475b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * The {@code cancel-status} of the message. 14760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * <P>Type: INTEGER</P> 1477b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * @deprecated this column is no longer supported. 1478b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * @hide 14790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 1480b47af9b263628c00b1c890f102091098a31463c0Jake Hamby @Deprecated 14810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String CANCEL_STATUS = "cl_st"; 14820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 14830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 1484b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * Is the message locked? 14850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * <P>Type: INTEGER (boolean)</P> 14860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 14870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String LOCKED = "locked"; 14880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 14890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 14900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 1491b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * Columns for the "canonical_addresses" table used by MMS and SMS. 14920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 14930825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public interface CanonicalAddressesColumns extends BaseColumns { 14940825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 14950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * An address used in MMS or SMS. Email addresses are 14960825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * converted to lower case and are compared by string 14970825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * equality. Other addresses are compared using 14980825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * PHONE_NUMBERS_EQUAL. 14990825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * <P>Type: TEXT</P> 15000825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 15010825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String ADDRESS = "address"; 15020825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 15030825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 15040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 15050825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Columns for the "threads" table used by MMS and SMS. 15060825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 15070825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public interface ThreadsColumns extends BaseColumns { 1508b47af9b263628c00b1c890f102091098a31463c0Jake Hamby 15090825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 15100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * The date at which the thread was created. 15110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * <P>Type: INTEGER (long)</P> 15120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 15130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String DATE = "date"; 15140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 15150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 15160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * A string encoding of the recipient IDs of the recipients of 15170825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * the message, in numerical order and separated by spaces. 15180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * <P>Type: TEXT</P> 15190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 15200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String RECIPIENT_IDS = "recipient_ids"; 15210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 15220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 15230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * The message count of the thread. 15240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * <P>Type: INTEGER</P> 15250825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 15260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String MESSAGE_COUNT = "message_count"; 1527b47af9b263628c00b1c890f102091098a31463c0Jake Hamby 15280825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 15290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Indicates whether all messages of the thread have been read. 15300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * <P>Type: INTEGER</P> 15310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 15320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String READ = "read"; 15330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 15340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 15350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * The snippet of the latest message in the thread. 15360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * <P>Type: TEXT</P> 15370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 15380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String SNIPPET = "snippet"; 1539b47af9b263628c00b1c890f102091098a31463c0Jake Hamby 15400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 15410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * The charset of the snippet. 15420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * <P>Type: INTEGER</P> 15430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 15440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String SNIPPET_CHARSET = "snippet_cs"; 1545b47af9b263628c00b1c890f102091098a31463c0Jake Hamby 15460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 1547b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * Type of the thread, either {@link Threads#COMMON_THREAD} or 1548b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * {@link Threads#BROADCAST_THREAD}. 15490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * <P>Type: INTEGER</P> 15500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 15510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String TYPE = "type"; 1552b47af9b263628c00b1c890f102091098a31463c0Jake Hamby 15530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 15540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Indicates whether there is a transmission error in the thread. 15550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * <P>Type: INTEGER</P> 15560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 15570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String ERROR = "error"; 1558b47af9b263628c00b1c890f102091098a31463c0Jake Hamby 15590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 15600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Indicates whether this thread contains any attachments. 15610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * <P>Type: INTEGER</P> 15620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 15630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String HAS_ATTACHMENT = "has_attachment"; 15640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 15650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 15660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 15670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Helper functions for the "threads" table used by MMS and SMS. 15680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 15690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final class Threads implements ThreadsColumns { 1570b47af9b263628c00b1c890f102091098a31463c0Jake Hamby 15710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville private static final String[] ID_PROJECTION = { BaseColumns._ID }; 1572b47af9b263628c00b1c890f102091098a31463c0Jake Hamby 1573b47af9b263628c00b1c890f102091098a31463c0Jake Hamby /** 1574b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * Private {@code content://} style URL for this table. Used by 1575b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * {@link #getOrCreateThreadId(android.content.Context, java.util.Set)}. 1576b47af9b263628c00b1c890f102091098a31463c0Jake Hamby */ 15770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville private static final Uri THREAD_ID_CONTENT_URI = Uri.parse( 15780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville "content://mms-sms/threadID"); 1579b47af9b263628c00b1c890f102091098a31463c0Jake Hamby 1580b47af9b263628c00b1c890f102091098a31463c0Jake Hamby /** 1581b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * The {@code content://} style URL for this table, by conversation. 1582b47af9b263628c00b1c890f102091098a31463c0Jake Hamby */ 15830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final Uri CONTENT_URI = Uri.withAppendedPath( 15840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville MmsSms.CONTENT_URI, "conversations"); 1585b47af9b263628c00b1c890f102091098a31463c0Jake Hamby 1586b47af9b263628c00b1c890f102091098a31463c0Jake Hamby /** 1587b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * The {@code content://} style URL for this table, for obsolete threads. 1588b47af9b263628c00b1c890f102091098a31463c0Jake Hamby */ 15890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final Uri OBSOLETE_THREADS_URI = Uri.withAppendedPath( 15900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville CONTENT_URI, "obsolete"); 15910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 1592b47af9b263628c00b1c890f102091098a31463c0Jake Hamby /** Thread type: common thread. */ 15930825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final int COMMON_THREAD = 0; 1594b47af9b263628c00b1c890f102091098a31463c0Jake Hamby 1595b47af9b263628c00b1c890f102091098a31463c0Jake Hamby /** Thread type: broadcast thread. */ 15960825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final int BROADCAST_THREAD = 1; 15970825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 1598b47af9b263628c00b1c890f102091098a31463c0Jake Hamby /** 1599b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * Not instantiable. 1600b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * @hide 1601b47af9b263628c00b1c890f102091098a31463c0Jake Hamby */ 16020825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville private Threads() { 16030825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 16040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 16050825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 1606b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * This is a single-recipient version of {@code getOrCreateThreadId}. 1607b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * It's convenient for use with SMS messages. 1608b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * @param context the context object to use. 1609b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * @param recipient the recipient to send to. 1610b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * @hide 16110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 16120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static long getOrCreateThreadId(Context context, String recipient) { 16130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville Set<String> recipients = new HashSet<String>(); 16140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 16150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville recipients.add(recipient); 16160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return getOrCreateThreadId(context, recipients); 16170825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 16180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 16190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 16200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Given the recipients list and subject of an unsaved message, 16210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * return its thread ID. If the message starts a new thread, 16220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * allocate a new thread ID. Otherwise, use the appropriate 16230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * existing thread ID. 16240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * 1625b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * <p>Find the thread ID of the same set of recipients (in any order, 1626b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * without any additions). If one is found, return it. Otherwise, 1627b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * return a unique thread ID.</p> 1628b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * @hide 16290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 16300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static long getOrCreateThreadId( 16310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville Context context, Set<String> recipients) { 16320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville Uri.Builder uriBuilder = THREAD_ID_CONTENT_URI.buildUpon(); 16330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 16340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville for (String recipient : recipients) { 16350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville if (Mms.isEmailAddress(recipient)) { 16360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville recipient = Mms.extractAddrSpec(recipient); 16370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 16380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 16390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville uriBuilder.appendQueryParameter("recipient", recipient); 16400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 16410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 16420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville Uri uri = uriBuilder.build(); 164399c2e1d6749cfad2a8ca94a47857d8c3bfc09454Wink Saville //if (DEBUG) Rlog.v(TAG, "getOrCreateThreadId uri: " + uri); 16440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 16450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville Cursor cursor = SqliteWrapper.query(context, context.getContentResolver(), 16460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville uri, ID_PROJECTION, null, null, null); 16470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville if (cursor != null) { 16480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville try { 16490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville if (cursor.moveToFirst()) { 16500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return cursor.getLong(0); 16510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } else { 165299c2e1d6749cfad2a8ca94a47857d8c3bfc09454Wink Saville Rlog.e(TAG, "getOrCreateThreadId returned no rows!"); 16530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 16540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } finally { 16550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville cursor.close(); 16560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 16570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 16580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 165999c2e1d6749cfad2a8ca94a47857d8c3bfc09454Wink Saville Rlog.e(TAG, "getOrCreateThreadId failed with uri " + uri.toString()); 16600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville throw new IllegalArgumentException("Unable to find or allocate a thread ID."); 16610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 16620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 16630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 16640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 16650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Contains all MMS messages. 16660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 16670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final class Mms implements BaseMmsColumns { 1668b47af9b263628c00b1c890f102091098a31463c0Jake Hamby 16690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 1670b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * Not instantiable. 1671b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * @hide 1672b47af9b263628c00b1c890f102091098a31463c0Jake Hamby */ 1673b47af9b263628c00b1c890f102091098a31463c0Jake Hamby private Mms() { 1674b47af9b263628c00b1c890f102091098a31463c0Jake Hamby } 1675b47af9b263628c00b1c890f102091098a31463c0Jake Hamby 1676b47af9b263628c00b1c890f102091098a31463c0Jake Hamby /** 1677b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * The {@code content://} URI for this table. 16780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 16790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final Uri CONTENT_URI = Uri.parse("content://mms"); 16800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 1681b47af9b263628c00b1c890f102091098a31463c0Jake Hamby /** 1682b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * Content URI for getting MMS report requests. 1683b47af9b263628c00b1c890f102091098a31463c0Jake Hamby */ 16840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final Uri REPORT_REQUEST_URI = Uri.withAppendedPath( 16850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville CONTENT_URI, "report-request"); 16860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 1687b47af9b263628c00b1c890f102091098a31463c0Jake Hamby /** 1688b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * Content URI for getting MMS report status. 1689b47af9b263628c00b1c890f102091098a31463c0Jake Hamby */ 16900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final Uri REPORT_STATUS_URI = Uri.withAppendedPath( 16910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville CONTENT_URI, "report-status"); 16920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 16930825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 1694b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * The default sort order for this table. 16950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 16960825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String DEFAULT_SORT_ORDER = "date DESC"; 16970825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 16980825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 1699b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * Regex pattern for names and email addresses. 1700b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * <ul> 1701b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * <li><em>mailbox</em> = {@code name-addr}</li> 1702b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * <li><em>name-addr</em> = {@code [display-name] angle-addr}</li> 1703b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * <li><em>angle-addr</em> = {@code [CFWS] "<" addr-spec ">" [CFWS]}</li> 1704b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * </ul> 1705b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * @hide 17060825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 17070825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final Pattern NAME_ADDR_EMAIL_PATTERN = 17080825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville Pattern.compile("\\s*(\"[^\"]*\"|[^<>\"]+)\\s*<([^<>]+)>\\s*"); 17090825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 17100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 1711b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * Helper method to query this table. 1712b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * @hide 17130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 1714b47af9b263628c00b1c890f102091098a31463c0Jake Hamby public static Cursor query( 17150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville ContentResolver cr, String[] projection) { 17160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return cr.query(CONTENT_URI, projection, null, null, DEFAULT_SORT_ORDER); 17170825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 17180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 1719b47af9b263628c00b1c890f102091098a31463c0Jake Hamby /** 1720b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * Helper method to query this table. 1721b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * @hide 1722b47af9b263628c00b1c890f102091098a31463c0Jake Hamby */ 1723b47af9b263628c00b1c890f102091098a31463c0Jake Hamby public static Cursor query( 17240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville ContentResolver cr, String[] projection, 17250825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville String where, String orderBy) { 17260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return cr.query(CONTENT_URI, projection, 17270825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville where, null, orderBy == null ? DEFAULT_SORT_ORDER : orderBy); 17280825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 17290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 1730b47af9b263628c00b1c890f102091098a31463c0Jake Hamby /** 1731b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * Helper method to extract email address from address string. 1732b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * @hide 1733b47af9b263628c00b1c890f102091098a31463c0Jake Hamby */ 17340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static String extractAddrSpec(String address) { 17350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville Matcher match = NAME_ADDR_EMAIL_PATTERN.matcher(address); 17360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 17370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville if (match.matches()) { 17380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return match.group(2); 17390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 17400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return address; 17410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 17420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 17430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 1744b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * Is the specified address an email address? 17450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * 1746b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * @param address the input address to test 1747b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * @return true if address is an email address; false otherwise. 1748b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * @hide 17490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 17500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static boolean isEmailAddress(String address) { 17510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville if (TextUtils.isEmpty(address)) { 17520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return false; 17530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 17540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 17550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville String s = extractAddrSpec(address); 17560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville Matcher match = Patterns.EMAIL_ADDRESS.matcher(s); 17570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return match.matches(); 17580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 17590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 17600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 1761b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * Is the specified number a phone number? 17620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * 1763b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * @param number the input number to test 1764b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * @return true if number is a phone number; false otherwise. 1765b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * @hide 17660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 17670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static boolean isPhoneNumber(String number) { 17680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville if (TextUtils.isEmpty(number)) { 17690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return false; 17700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 17710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 17720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville Matcher match = Patterns.PHONE.matcher(number); 17730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return match.matches(); 17740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 17750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 17760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 1777b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * Contains all MMS messages in the MMS app inbox. 17780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 17790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final class Inbox implements BaseMmsColumns { 1780b47af9b263628c00b1c890f102091098a31463c0Jake Hamby 1781b47af9b263628c00b1c890f102091098a31463c0Jake Hamby /** 1782b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * Not instantiable. 1783b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * @hide 1784b47af9b263628c00b1c890f102091098a31463c0Jake Hamby */ 1785b47af9b263628c00b1c890f102091098a31463c0Jake Hamby private Inbox() { 1786b47af9b263628c00b1c890f102091098a31463c0Jake Hamby } 1787b47af9b263628c00b1c890f102091098a31463c0Jake Hamby 17880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 1789b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * The {@code content://} style URL for this table. 17900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 17910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final Uri 17920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville CONTENT_URI = Uri.parse("content://mms/inbox"); 17930825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 17940825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 1795b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * The default sort order for this table. 17960825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 17970825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String DEFAULT_SORT_ORDER = "date DESC"; 17980825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 17990825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 18000825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 1801b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * Contains all MMS messages in the MMS app sent folder. 18020825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 18030825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final class Sent implements BaseMmsColumns { 1804b47af9b263628c00b1c890f102091098a31463c0Jake Hamby 18050825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 1806b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * Not instantiable. 1807b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * @hide 1808b47af9b263628c00b1c890f102091098a31463c0Jake Hamby */ 1809b47af9b263628c00b1c890f102091098a31463c0Jake Hamby private Sent() { 1810b47af9b263628c00b1c890f102091098a31463c0Jake Hamby } 1811b47af9b263628c00b1c890f102091098a31463c0Jake Hamby 1812b47af9b263628c00b1c890f102091098a31463c0Jake Hamby /** 1813b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * The {@code content://} style URL for this table. 18140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 18150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final Uri 18160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville CONTENT_URI = Uri.parse("content://mms/sent"); 18170825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 18180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 1819b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * The default sort order for this table. 18200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 18210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String DEFAULT_SORT_ORDER = "date DESC"; 18220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 18230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 18240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 1825b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * Contains all MMS messages in the MMS app drafts folder. 18260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 18270825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final class Draft implements BaseMmsColumns { 1828b47af9b263628c00b1c890f102091098a31463c0Jake Hamby 18290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 1830b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * Not instantiable. 1831b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * @hide 1832b47af9b263628c00b1c890f102091098a31463c0Jake Hamby */ 1833b47af9b263628c00b1c890f102091098a31463c0Jake Hamby private Draft() { 1834b47af9b263628c00b1c890f102091098a31463c0Jake Hamby } 1835b47af9b263628c00b1c890f102091098a31463c0Jake Hamby 1836b47af9b263628c00b1c890f102091098a31463c0Jake Hamby /** 1837b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * The {@code content://} style URL for this table. 18380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 18390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final Uri 18400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville CONTENT_URI = Uri.parse("content://mms/drafts"); 18410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 18420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 1843b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * The default sort order for this table. 18440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 18450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String DEFAULT_SORT_ORDER = "date DESC"; 18460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 18470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 18480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 1849b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * Contains all MMS messages in the MMS app outbox. 18500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 18510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final class Outbox implements BaseMmsColumns { 1852b47af9b263628c00b1c890f102091098a31463c0Jake Hamby 18530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 1854b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * Not instantiable. 1855b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * @hide 1856b47af9b263628c00b1c890f102091098a31463c0Jake Hamby */ 1857b47af9b263628c00b1c890f102091098a31463c0Jake Hamby private Outbox() { 1858b47af9b263628c00b1c890f102091098a31463c0Jake Hamby } 1859b47af9b263628c00b1c890f102091098a31463c0Jake Hamby 1860b47af9b263628c00b1c890f102091098a31463c0Jake Hamby /** 1861b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * The {@code content://} style URL for this table. 18620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 18630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final Uri 18640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville CONTENT_URI = Uri.parse("content://mms/outbox"); 18650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 18660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 1867b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * The default sort order for this table. 18680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 18690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String DEFAULT_SORT_ORDER = "date DESC"; 18700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 18710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 1872b47af9b263628c00b1c890f102091098a31463c0Jake Hamby /** 1873b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * Contains address information for an MMS message. 1874b47af9b263628c00b1c890f102091098a31463c0Jake Hamby */ 18750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final class Addr implements BaseColumns { 1876b47af9b263628c00b1c890f102091098a31463c0Jake Hamby 1877b47af9b263628c00b1c890f102091098a31463c0Jake Hamby /** 1878b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * Not instantiable. 1879b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * @hide 1880b47af9b263628c00b1c890f102091098a31463c0Jake Hamby */ 1881b47af9b263628c00b1c890f102091098a31463c0Jake Hamby private Addr() { 1882b47af9b263628c00b1c890f102091098a31463c0Jake Hamby } 1883b47af9b263628c00b1c890f102091098a31463c0Jake Hamby 18840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 18850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * The ID of MM which this address entry belongs to. 1886b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * <P>Type: INTEGER (long)</P> 18870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 18880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String MSG_ID = "msg_id"; 18890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 18900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 18910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * The ID of contact entry in Phone Book. 1892b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * <P>Type: INTEGER (long)</P> 18930825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 18940825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String CONTACT_ID = "contact_id"; 18950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 18960825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 18970825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * The address text. 1898b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * <P>Type: TEXT</P> 18990825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 19000825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String ADDRESS = "address"; 19010825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 19020825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 1903b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * Type of address: must be one of {@code PduHeaders.BCC}, 1904b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * {@code PduHeaders.CC}, {@code PduHeaders.FROM}, {@code PduHeaders.TO}. 1905b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * <P>Type: INTEGER</P> 19060825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 19070825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String TYPE = "type"; 19080825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 19090825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 1910b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * Character set of this entry (MMS charset value). 1911b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * <P>Type: INTEGER</P> 19120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 19130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String CHARSET = "charset"; 19140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 19150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 1916b47af9b263628c00b1c890f102091098a31463c0Jake Hamby /** 1917b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * Contains message parts. 1918b47af9b263628c00b1c890f102091098a31463c0Jake Hamby */ 19190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final class Part implements BaseColumns { 1920b47af9b263628c00b1c890f102091098a31463c0Jake Hamby 1921b47af9b263628c00b1c890f102091098a31463c0Jake Hamby /** 1922b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * Not instantiable. 1923b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * @hide 1924b47af9b263628c00b1c890f102091098a31463c0Jake Hamby */ 1925b47af9b263628c00b1c890f102091098a31463c0Jake Hamby private Part() { 1926b47af9b263628c00b1c890f102091098a31463c0Jake Hamby } 1927b47af9b263628c00b1c890f102091098a31463c0Jake Hamby 19280825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 19290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * The identifier of the message which this part belongs to. 19300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * <P>Type: INTEGER</P> 19310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 19320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String MSG_ID = "mid"; 19330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 19340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 19350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * The order of the part. 19360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * <P>Type: INTEGER</P> 19370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 19380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String SEQ = "seq"; 19390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 19400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 19410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * The content type of the part. 19420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * <P>Type: TEXT</P> 19430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 19440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String CONTENT_TYPE = "ct"; 19450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 19460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 19470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * The name of the part. 19480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * <P>Type: TEXT</P> 19490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 19500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String NAME = "name"; 19510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 19520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 19530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * The charset of the part. 19540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * <P>Type: TEXT</P> 19550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 19560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String CHARSET = "chset"; 19570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 19580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 19590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * The file name of the part. 19600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * <P>Type: TEXT</P> 19610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 19620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String FILENAME = "fn"; 19630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 19640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 19650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * The content disposition of the part. 19660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * <P>Type: TEXT</P> 19670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 19680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String CONTENT_DISPOSITION = "cd"; 19690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 19700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 19710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * The content ID of the part. 19720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * <P>Type: INTEGER</P> 19730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 19740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String CONTENT_ID = "cid"; 19750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 19760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 19770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * The content location of the part. 19780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * <P>Type: INTEGER</P> 19790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 19800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String CONTENT_LOCATION = "cl"; 19810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 19820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 19830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * The start of content-type of the message. 19840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * <P>Type: INTEGER</P> 19850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 19860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String CT_START = "ctt_s"; 19870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 19880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 19890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * The type of content-type of the message. 19900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * <P>Type: TEXT</P> 19910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 19920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String CT_TYPE = "ctt_t"; 19930825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 19940825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 1995b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * The location (on filesystem) of the binary data of the part. 19960825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * <P>Type: INTEGER</P> 19970825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 19980825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String _DATA = "_data"; 19990825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 2000b47af9b263628c00b1c890f102091098a31463c0Jake Hamby /** 2001b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * The message text. 2002b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * <P>Type: TEXT</P> 2003b47af9b263628c00b1c890f102091098a31463c0Jake Hamby */ 20040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String TEXT = "text"; 20050825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 20060825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 2007b47af9b263628c00b1c890f102091098a31463c0Jake Hamby /** 2008b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * Message send rate table. 2009b47af9b263628c00b1c890f102091098a31463c0Jake Hamby */ 20100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final class Rate { 2011b47af9b263628c00b1c890f102091098a31463c0Jake Hamby 2012b47af9b263628c00b1c890f102091098a31463c0Jake Hamby /** 2013b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * Not instantiable. 2014b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * @hide 2015b47af9b263628c00b1c890f102091098a31463c0Jake Hamby */ 2016b47af9b263628c00b1c890f102091098a31463c0Jake Hamby private Rate() { 2017b47af9b263628c00b1c890f102091098a31463c0Jake Hamby } 2018b47af9b263628c00b1c890f102091098a31463c0Jake Hamby 2019b47af9b263628c00b1c890f102091098a31463c0Jake Hamby /** 2020b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * The {@code content://} style URL for this table. 2021b47af9b263628c00b1c890f102091098a31463c0Jake Hamby */ 20220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final Uri CONTENT_URI = Uri.withAppendedPath( 20230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville Mms.CONTENT_URI, "rate"); 2024b47af9b263628c00b1c890f102091098a31463c0Jake Hamby 20250825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 20260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * When a message was successfully sent. 2027b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * <P>Type: INTEGER (long)</P> 20280825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 20290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String SENT_TIME = "sent_time"; 20300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 20310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 2032b47af9b263628c00b1c890f102091098a31463c0Jake Hamby /** 2033b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * Intents class. 2034b47af9b263628c00b1c890f102091098a31463c0Jake Hamby */ 20350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final class Intents { 20360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 20370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 2038b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * Not instantiable. 2039b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * @hide 20400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 2041b47af9b263628c00b1c890f102091098a31463c0Jake Hamby private Intents() { 2042b47af9b263628c00b1c890f102091098a31463c0Jake Hamby } 2043b47af9b263628c00b1c890f102091098a31463c0Jake Hamby 20440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 20450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Indicates that the contents of specified URIs were changed. 20460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * The application which is showing or caching these contents 20470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * should be updated. 20480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 2049b47af9b263628c00b1c890f102091098a31463c0Jake Hamby @SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION) 2050b47af9b263628c00b1c890f102091098a31463c0Jake Hamby public static final String CONTENT_CHANGED_ACTION 2051b47af9b263628c00b1c890f102091098a31463c0Jake Hamby = "android.intent.action.CONTENT_CHANGED"; 2052b47af9b263628c00b1c890f102091098a31463c0Jake Hamby 20530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 20540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * An extra field which stores the URI of deleted contents. 20550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 20560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String DELETED_CONTENTS = "deleted_contents"; 20570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 20580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 20590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 20600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 20610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Contains all MMS and SMS messages. 20620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 20630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final class MmsSms implements BaseColumns { 2064b47af9b263628c00b1c890f102091098a31463c0Jake Hamby 2065b47af9b263628c00b1c890f102091098a31463c0Jake Hamby /** 2066b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * Not instantiable. 2067b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * @hide 2068b47af9b263628c00b1c890f102091098a31463c0Jake Hamby */ 2069b47af9b263628c00b1c890f102091098a31463c0Jake Hamby private MmsSms() { 2070b47af9b263628c00b1c890f102091098a31463c0Jake Hamby } 2071b47af9b263628c00b1c890f102091098a31463c0Jake Hamby 20720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 2073b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * The column to distinguish SMS and MMS messages in query results. 20740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 20750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String TYPE_DISCRIMINATOR_COLUMN = 20760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville "transport_type"; 20770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 2078b47af9b263628c00b1c890f102091098a31463c0Jake Hamby /** 2079b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * The {@code content://} style URL for this table. 2080b47af9b263628c00b1c890f102091098a31463c0Jake Hamby */ 20810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final Uri CONTENT_URI = Uri.parse("content://mms-sms/"); 20820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 2083b47af9b263628c00b1c890f102091098a31463c0Jake Hamby /** 2084b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * The {@code content://} style URL for this table, by conversation. 2085b47af9b263628c00b1c890f102091098a31463c0Jake Hamby */ 20860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final Uri CONTENT_CONVERSATIONS_URI = Uri.parse( 20870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville "content://mms-sms/conversations"); 20880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 2089b47af9b263628c00b1c890f102091098a31463c0Jake Hamby /** 2090b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * The {@code content://} style URL for this table, by phone number. 2091b47af9b263628c00b1c890f102091098a31463c0Jake Hamby */ 20920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final Uri CONTENT_FILTER_BYPHONE_URI = Uri.parse( 20930825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville "content://mms-sms/messages/byphone"); 20940825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 2095b47af9b263628c00b1c890f102091098a31463c0Jake Hamby /** 2096b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * The {@code content://} style URL for undelivered messages in this table. 2097b47af9b263628c00b1c890f102091098a31463c0Jake Hamby */ 20980825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final Uri CONTENT_UNDELIVERED_URI = Uri.parse( 20990825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville "content://mms-sms/undelivered"); 21000825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 2101b47af9b263628c00b1c890f102091098a31463c0Jake Hamby /** 2102b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * The {@code content://} style URL for draft messages in this table. 2103b47af9b263628c00b1c890f102091098a31463c0Jake Hamby */ 21040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final Uri CONTENT_DRAFT_URI = Uri.parse( 21050825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville "content://mms-sms/draft"); 21060825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 2107b47af9b263628c00b1c890f102091098a31463c0Jake Hamby /** 2108b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * The {@code content://} style URL for locked messages in this table. 2109b47af9b263628c00b1c890f102091098a31463c0Jake Hamby */ 21100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final Uri CONTENT_LOCKED_URI = Uri.parse( 21110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville "content://mms-sms/locked"); 21120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 2113b47af9b263628c00b1c890f102091098a31463c0Jake Hamby /** 2114b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * Pass in a query parameter called "pattern" which is the text to search for. 2115b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * The sort order is fixed to be: {@code thread_id ASC, date DESC}. 21160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 21170825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final Uri SEARCH_URI = Uri.parse( 21180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville "content://mms-sms/search"); 21190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 21200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville // Constants for message protocol types. 2121b47af9b263628c00b1c890f102091098a31463c0Jake Hamby 2122b47af9b263628c00b1c890f102091098a31463c0Jake Hamby /** SMS protocol type. */ 21230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final int SMS_PROTO = 0; 2124b47af9b263628c00b1c890f102091098a31463c0Jake Hamby 2125b47af9b263628c00b1c890f102091098a31463c0Jake Hamby /** MMS protocol type. */ 21260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final int MMS_PROTO = 1; 21270825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 21280825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville // Constants for error types of pending messages. 2129b47af9b263628c00b1c890f102091098a31463c0Jake Hamby 2130b47af9b263628c00b1c890f102091098a31463c0Jake Hamby /** Error type: no error. */ 21310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final int NO_ERROR = 0; 2132b47af9b263628c00b1c890f102091098a31463c0Jake Hamby 2133b47af9b263628c00b1c890f102091098a31463c0Jake Hamby /** Error type: generic transient error. */ 21340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final int ERR_TYPE_GENERIC = 1; 2135b47af9b263628c00b1c890f102091098a31463c0Jake Hamby 2136b47af9b263628c00b1c890f102091098a31463c0Jake Hamby /** Error type: SMS protocol transient error. */ 21370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final int ERR_TYPE_SMS_PROTO_TRANSIENT = 2; 2138b47af9b263628c00b1c890f102091098a31463c0Jake Hamby 2139b47af9b263628c00b1c890f102091098a31463c0Jake Hamby /** Error type: MMS protocol transient error. */ 21400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final int ERR_TYPE_MMS_PROTO_TRANSIENT = 3; 2141b47af9b263628c00b1c890f102091098a31463c0Jake Hamby 2142b47af9b263628c00b1c890f102091098a31463c0Jake Hamby /** Error type: transport failure. */ 21430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final int ERR_TYPE_TRANSPORT_FAILURE = 4; 2144b47af9b263628c00b1c890f102091098a31463c0Jake Hamby 2145b47af9b263628c00b1c890f102091098a31463c0Jake Hamby /** Error type: permanent error (along with all higher error values). */ 21460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final int ERR_TYPE_GENERIC_PERMANENT = 10; 2147b47af9b263628c00b1c890f102091098a31463c0Jake Hamby 2148b47af9b263628c00b1c890f102091098a31463c0Jake Hamby /** Error type: SMS protocol permanent error. */ 21490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final int ERR_TYPE_SMS_PROTO_PERMANENT = 11; 2150b47af9b263628c00b1c890f102091098a31463c0Jake Hamby 2151b47af9b263628c00b1c890f102091098a31463c0Jake Hamby /** Error type: MMS protocol permanent error. */ 21520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final int ERR_TYPE_MMS_PROTO_PERMANENT = 12; 21530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 2154b47af9b263628c00b1c890f102091098a31463c0Jake Hamby /** 2155b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * Contains pending messages info. 2156b47af9b263628c00b1c890f102091098a31463c0Jake Hamby */ 21570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final class PendingMessages implements BaseColumns { 2158b47af9b263628c00b1c890f102091098a31463c0Jake Hamby 2159b47af9b263628c00b1c890f102091098a31463c0Jake Hamby /** 2160b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * Not instantiable. 2161b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * @hide 2162b47af9b263628c00b1c890f102091098a31463c0Jake Hamby */ 2163b47af9b263628c00b1c890f102091098a31463c0Jake Hamby private PendingMessages() { 2164b47af9b263628c00b1c890f102091098a31463c0Jake Hamby } 2165b47af9b263628c00b1c890f102091098a31463c0Jake Hamby 21660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final Uri CONTENT_URI = Uri.withAppendedPath( 21670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville MmsSms.CONTENT_URI, "pending"); 2168b47af9b263628c00b1c890f102091098a31463c0Jake Hamby 21690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 2170b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * The type of transport protocol (MMS or SMS). 21710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * <P>Type: INTEGER</P> 21720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 21730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String PROTO_TYPE = "proto_type"; 2174b47af9b263628c00b1c890f102091098a31463c0Jake Hamby 21750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 21760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * The ID of the message to be sent or downloaded. 2177b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * <P>Type: INTEGER (long)</P> 21780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 21790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String MSG_ID = "msg_id"; 2180b47af9b263628c00b1c890f102091098a31463c0Jake Hamby 21810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 21820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * The type of the message to be sent or downloaded. 2183b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * This field is only valid for MM. For SM, its value is always set to 0. 2184b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * <P>Type: INTEGER</P> 21850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 21860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String MSG_TYPE = "msg_type"; 2187b47af9b263628c00b1c890f102091098a31463c0Jake Hamby 21880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 21890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * The type of the error code. 21900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * <P>Type: INTEGER</P> 21910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 21920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String ERROR_TYPE = "err_type"; 2193b47af9b263628c00b1c890f102091098a31463c0Jake Hamby 21940825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 21950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * The error code of sending/retrieving process. 2196b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * <P>Type: INTEGER</P> 21970825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 21980825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String ERROR_CODE = "err_code"; 2199b47af9b263628c00b1c890f102091098a31463c0Jake Hamby 22000825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 22010825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * How many times we tried to send or download the message. 2202b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * <P>Type: INTEGER</P> 22030825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 22040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String RETRY_INDEX = "retry_index"; 2205b47af9b263628c00b1c890f102091098a31463c0Jake Hamby 22060825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 22070825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * The time to do next retry. 2208b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * <P>Type: INTEGER (long)</P> 22090825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 22100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String DUE_TIME = "due_time"; 2211b47af9b263628c00b1c890f102091098a31463c0Jake Hamby 22120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 22130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * The time we last tried to send or download the message. 2214b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * <P>Type: INTEGER (long)</P> 22150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 22160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String LAST_TRY = "last_try"; 22170825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 22180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 2219b47af9b263628c00b1c890f102091098a31463c0Jake Hamby /** 2220b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * Words table used by provider for full-text searches. 2221b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * @hide 2222b47af9b263628c00b1c890f102091098a31463c0Jake Hamby */ 22230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final class WordsTable { 2224b47af9b263628c00b1c890f102091098a31463c0Jake Hamby 2225b47af9b263628c00b1c890f102091098a31463c0Jake Hamby /** 2226b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * Not instantiable. 2227b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * @hide 2228b47af9b263628c00b1c890f102091098a31463c0Jake Hamby */ 2229b47af9b263628c00b1c890f102091098a31463c0Jake Hamby private WordsTable() {} 2230b47af9b263628c00b1c890f102091098a31463c0Jake Hamby 2231b47af9b263628c00b1c890f102091098a31463c0Jake Hamby /** 2232b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * Primary key. 2233b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * <P>Type: INTEGER (long)</P> 2234b47af9b263628c00b1c890f102091098a31463c0Jake Hamby */ 22350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String ID = "_id"; 2236b47af9b263628c00b1c890f102091098a31463c0Jake Hamby 2237b47af9b263628c00b1c890f102091098a31463c0Jake Hamby /** 2238b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * Source row ID. 2239b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * <P>Type: INTEGER (long)</P> 2240b47af9b263628c00b1c890f102091098a31463c0Jake Hamby */ 22410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String SOURCE_ROW_ID = "source_id"; 2242b47af9b263628c00b1c890f102091098a31463c0Jake Hamby 2243b47af9b263628c00b1c890f102091098a31463c0Jake Hamby /** 2244b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * Table ID (either 1 or 2). 2245b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * <P>Type: INTEGER</P> 2246b47af9b263628c00b1c890f102091098a31463c0Jake Hamby */ 22470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String TABLE_ID = "table_to_use"; 2248b47af9b263628c00b1c890f102091098a31463c0Jake Hamby 2249b47af9b263628c00b1c890f102091098a31463c0Jake Hamby /** 2250b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * The words to index. 2251b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * <P>Type: TEXT</P> 2252b47af9b263628c00b1c890f102091098a31463c0Jake Hamby */ 22530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String INDEXED_TEXT = "index_text"; 22540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 22550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 22560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 2257b47af9b263628c00b1c890f102091098a31463c0Jake Hamby /** 2258b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * Carriers class contains information about APNs, including MMSC information. 2259b47af9b263628c00b1c890f102091098a31463c0Jake Hamby */ 22600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final class Carriers implements BaseColumns { 2261b47af9b263628c00b1c890f102091098a31463c0Jake Hamby 2262b47af9b263628c00b1c890f102091098a31463c0Jake Hamby /** 2263b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * Not instantiable. 2264b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * @hide 2265b47af9b263628c00b1c890f102091098a31463c0Jake Hamby */ 2266b47af9b263628c00b1c890f102091098a31463c0Jake Hamby private Carriers() {} 2267b47af9b263628c00b1c890f102091098a31463c0Jake Hamby 22680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 2269b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * The {@code content://} style URL for this table. 22700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 2271b47af9b263628c00b1c890f102091098a31463c0Jake Hamby public static final Uri CONTENT_URI = Uri.parse("content://telephony/carriers"); 22720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 22730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 2274b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * The default sort order for this table. 22750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 22760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String DEFAULT_SORT_ORDER = "name ASC"; 22770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 2278b47af9b263628c00b1c890f102091098a31463c0Jake Hamby /** 2279b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * Entry name. 2280b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * <P>Type: TEXT</P> 2281b47af9b263628c00b1c890f102091098a31463c0Jake Hamby */ 22820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String NAME = "name"; 22830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 2284b47af9b263628c00b1c890f102091098a31463c0Jake Hamby /** 2285b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * APN name. 2286b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * <P>Type: TEXT</P> 2287b47af9b263628c00b1c890f102091098a31463c0Jake Hamby */ 22880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String APN = "apn"; 22890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 2290b47af9b263628c00b1c890f102091098a31463c0Jake Hamby /** 2291b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * Proxy address. 2292b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * <P>Type: TEXT</P> 2293b47af9b263628c00b1c890f102091098a31463c0Jake Hamby */ 22940825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String PROXY = "proxy"; 22950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 2296b47af9b263628c00b1c890f102091098a31463c0Jake Hamby /** 2297b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * Proxy port. 2298b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * <P>Type: TEXT</P> 2299b47af9b263628c00b1c890f102091098a31463c0Jake Hamby */ 23000825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String PORT = "port"; 23010825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 2302b47af9b263628c00b1c890f102091098a31463c0Jake Hamby /** 2303b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * MMS proxy address. 2304b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * <P>Type: TEXT</P> 2305b47af9b263628c00b1c890f102091098a31463c0Jake Hamby */ 23060825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String MMSPROXY = "mmsproxy"; 23070825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 2308b47af9b263628c00b1c890f102091098a31463c0Jake Hamby /** 2309b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * MMS proxy port. 2310b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * <P>Type: TEXT</P> 2311b47af9b263628c00b1c890f102091098a31463c0Jake Hamby */ 23120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String MMSPORT = "mmsport"; 23130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 2314b47af9b263628c00b1c890f102091098a31463c0Jake Hamby /** 2315b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * Server address. 2316b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * <P>Type: TEXT</P> 2317b47af9b263628c00b1c890f102091098a31463c0Jake Hamby */ 23180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String SERVER = "server"; 23190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 2320b47af9b263628c00b1c890f102091098a31463c0Jake Hamby /** 2321b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * APN username. 2322b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * <P>Type: TEXT</P> 2323b47af9b263628c00b1c890f102091098a31463c0Jake Hamby */ 23240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String USER = "user"; 23250825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 2326b47af9b263628c00b1c890f102091098a31463c0Jake Hamby /** 2327b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * APN password. 2328b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * <P>Type: TEXT</P> 2329b47af9b263628c00b1c890f102091098a31463c0Jake Hamby */ 23300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String PASSWORD = "password"; 23310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 2332b47af9b263628c00b1c890f102091098a31463c0Jake Hamby /** 2333b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * MMSC URL. 2334b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * <P>Type: TEXT</P> 2335b47af9b263628c00b1c890f102091098a31463c0Jake Hamby */ 23360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String MMSC = "mmsc"; 23370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 2338b47af9b263628c00b1c890f102091098a31463c0Jake Hamby /** 2339b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * Mobile Country Code (MCC). 2340b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * <P>Type: TEXT</P> 2341b47af9b263628c00b1c890f102091098a31463c0Jake Hamby */ 23420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String MCC = "mcc"; 23430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 2344b47af9b263628c00b1c890f102091098a31463c0Jake Hamby /** 2345b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * Mobile Network Code (MNC). 2346b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * <P>Type: TEXT</P> 2347b47af9b263628c00b1c890f102091098a31463c0Jake Hamby */ 23480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String MNC = "mnc"; 23490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 2350b47af9b263628c00b1c890f102091098a31463c0Jake Hamby /** 2351b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * Numeric operator ID (as String). Usually {@code MCC + MNC}. 2352b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * <P>Type: TEXT</P> 2353b47af9b263628c00b1c890f102091098a31463c0Jake Hamby */ 23540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String NUMERIC = "numeric"; 23550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 2356b47af9b263628c00b1c890f102091098a31463c0Jake Hamby /** 2357b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * Authentication type. 2358b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * <P>Type: INTEGER</P> 2359b47af9b263628c00b1c890f102091098a31463c0Jake Hamby */ 23600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String AUTH_TYPE = "authtype"; 23610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 2362b47af9b263628c00b1c890f102091098a31463c0Jake Hamby /** 2363b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * Comma-delimited list of APN types. 2364b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * <P>Type: TEXT</P> 2365b47af9b263628c00b1c890f102091098a31463c0Jake Hamby */ 23660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String TYPE = "type"; 23670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 23680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 2369b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * The protocol to use to connect to this APN. 23700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * 2371b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * One of the {@code PDP_type} values in TS 27.007 section 10.1.1. 2372b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * For example: {@code IP}, {@code IPV6}, {@code IPV4V6}, or {@code PPP}. 2373b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * <P>Type: TEXT</P> 23740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 23750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String PROTOCOL = "protocol"; 23760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 23770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 2378b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * The protocol to use to connect to this APN when roaming. 2379b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * The syntax is the same as protocol. 2380b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * <P>Type: TEXT</P> 2381b47af9b263628c00b1c890f102091098a31463c0Jake Hamby */ 23820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String ROAMING_PROTOCOL = "roaming_protocol"; 23830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 2384b47af9b263628c00b1c890f102091098a31463c0Jake Hamby /** 2385b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * Is this the current APN? 2386b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * <P>Type: INTEGER (boolean)</P> 2387b47af9b263628c00b1c890f102091098a31463c0Jake Hamby */ 23880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String CURRENT = "current"; 23890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 23900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 2391b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * Is this APN enabled? 2392b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * <P>Type: INTEGER (boolean)</P> 2393b47af9b263628c00b1c890f102091098a31463c0Jake Hamby */ 23940825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String CARRIER_ENABLED = "carrier_enabled"; 23950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 23960825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 2397b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * Radio Access Technology info. 2398b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * To check what values are allowed, refer to {@link android.telephony.ServiceState}. 2399b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * This should be spread to other technologies, 2400b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * but is currently only used for LTE (14) and eHRPD (13). 2401b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * <P>Type: INTEGER</P> 2402b47af9b263628c00b1c890f102091098a31463c0Jake Hamby */ 24030825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String BEARER = "bearer"; 2404a796ca5b3f8501630405f1ce2635dde9011b7373Sungmin Choi 2405a796ca5b3f8501630405f1ce2635dde9011b7373Sungmin Choi /** 2406b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * MVNO type: 2407b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * {@code SPN (Service Provider Name), IMSI, GID (Group Identifier Level 1)}. 2408b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * <P>Type: TEXT</P> 2409b47af9b263628c00b1c890f102091098a31463c0Jake Hamby */ 2410a796ca5b3f8501630405f1ce2635dde9011b7373Sungmin Choi public static final String MVNO_TYPE = "mvno_type"; 2411a796ca5b3f8501630405f1ce2635dde9011b7373Sungmin Choi 2412a796ca5b3f8501630405f1ce2635dde9011b7373Sungmin Choi /** 2413b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * MVNO data. 2414b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * Use the following examples. 2415b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * <ul> 2416b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * <li>SPN: A MOBILE, BEN NL, ...</li> 2417b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * <li>IMSI: 302720x94, 2060188, ...</li> 2418b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * <li>GID: 4E, 33, ...</li> 2419b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * </ul> 2420b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * <P>Type: TEXT</P> 2421b47af9b263628c00b1c890f102091098a31463c0Jake Hamby */ 2422a796ca5b3f8501630405f1ce2635dde9011b7373Sungmin Choi public static final String MVNO_MATCH_DATA = "mvno_match_data"; 24230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 24240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 24250825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 24260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Contains received SMS cell broadcast messages. 2427b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * @hide 24280825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 24290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final class CellBroadcasts implements BaseColumns { 24300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 2431b47af9b263628c00b1c890f102091098a31463c0Jake Hamby /** 2432b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * Not instantiable. 2433b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * @hide 2434b47af9b263628c00b1c890f102091098a31463c0Jake Hamby */ 24350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville private CellBroadcasts() {} 24360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 24370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 2438b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * The {@code content://} URI for this table. 24390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 2440b47af9b263628c00b1c890f102091098a31463c0Jake Hamby public static final Uri CONTENT_URI = Uri.parse("content://cellbroadcasts"); 24410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 24420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 24430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Message geographical scope. 24440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * <P>Type: INTEGER</P> 24450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 24460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String GEOGRAPHICAL_SCOPE = "geo_scope"; 24470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 24480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 24490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Message serial number. 24500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * <P>Type: INTEGER</P> 24510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 24520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String SERIAL_NUMBER = "serial_number"; 24530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 24540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 2455b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * PLMN of broadcast sender. {@code SERIAL_NUMBER + PLMN + LAC + CID} uniquely identifies 2456b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * a broadcast for duplicate detection purposes. 24570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * <P>Type: TEXT</P> 24580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 24590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String PLMN = "plmn"; 24600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 24610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 24620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Location Area (GSM) or Service Area (UMTS) of broadcast sender. Unused for CDMA. 24630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Only included if Geographical Scope of message is not PLMN wide (01). 24640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * <P>Type: INTEGER</P> 24650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 24660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String LAC = "lac"; 24670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 24680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 24690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Cell ID of message sender (GSM/UMTS). Unused for CDMA. Only included when the 24700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Geographical Scope of message is cell wide (00 or 11). 24710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * <P>Type: INTEGER</P> 24720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 24730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String CID = "cid"; 24740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 24750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 2476b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * Message code. <em>OBSOLETE: merged into SERIAL_NUMBER.</em> 24770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * <P>Type: INTEGER</P> 24780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 24790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String V1_MESSAGE_CODE = "message_code"; 24800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 24810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 2482b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * Message identifier. <em>OBSOLETE: renamed to SERVICE_CATEGORY.</em> 24830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * <P>Type: INTEGER</P> 24840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 24850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String V1_MESSAGE_IDENTIFIER = "message_id"; 24860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 24870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 2488b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * Service category (GSM/UMTS: message identifier; CDMA: service category). 24890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * <P>Type: INTEGER</P> 24900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 24910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String SERVICE_CATEGORY = "service_category"; 24920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 24930825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 24940825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Message language code. 24950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * <P>Type: TEXT</P> 24960825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 24970825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String LANGUAGE_CODE = "language"; 24980825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 24990825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 25000825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Message body. 25010825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * <P>Type: TEXT</P> 25020825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 25030825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String MESSAGE_BODY = "body"; 25040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 25050825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 25060825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Message delivery time. 25070825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * <P>Type: INTEGER (long)</P> 25080825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 25090825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String DELIVERY_TIME = "date"; 25100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 25110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 25120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Has the message been viewed? 25130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * <P>Type: INTEGER (boolean)</P> 25140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 25150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String MESSAGE_READ = "read"; 25160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 25170825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 25180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Message format (3GPP or 3GPP2). 25190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * <P>Type: INTEGER</P> 25200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 25210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String MESSAGE_FORMAT = "format"; 25220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 25230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 25240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Message priority (including emergency). 25250825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * <P>Type: INTEGER</P> 25260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 25270825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String MESSAGE_PRIORITY = "priority"; 25280825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 25290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 25300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * ETWS warning type (ETWS alerts only). 25310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * <P>Type: INTEGER</P> 25320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 25330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String ETWS_WARNING_TYPE = "etws_warning_type"; 25340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 25350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 25360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * CMAS message class (CMAS alerts only). 25370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * <P>Type: INTEGER</P> 25380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 25390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String CMAS_MESSAGE_CLASS = "cmas_message_class"; 25400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 25410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 25420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * CMAS category (CMAS alerts only). 25430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * <P>Type: INTEGER</P> 25440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 25450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String CMAS_CATEGORY = "cmas_category"; 25460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 25470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 25480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * CMAS response type (CMAS alerts only). 25490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * <P>Type: INTEGER</P> 25500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 25510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String CMAS_RESPONSE_TYPE = "cmas_response_type"; 25520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 25530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 25540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * CMAS severity (CMAS alerts only). 25550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * <P>Type: INTEGER</P> 25560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 25570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String CMAS_SEVERITY = "cmas_severity"; 25580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 25590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 25600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * CMAS urgency (CMAS alerts only). 25610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * <P>Type: INTEGER</P> 25620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 25630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String CMAS_URGENCY = "cmas_urgency"; 25640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 25650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 25660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * CMAS certainty (CMAS alerts only). 25670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * <P>Type: INTEGER</P> 25680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 25690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String CMAS_CERTAINTY = "cmas_certainty"; 25700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 2571b47af9b263628c00b1c890f102091098a31463c0Jake Hamby /** The default sort order for this table. */ 25720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String DEFAULT_SORT_ORDER = DELIVERY_TIME + " DESC"; 25730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 25740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 25750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Query columns for instantiating {@link android.telephony.CellBroadcastMessage} objects. 25760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 25770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final String[] QUERY_COLUMNS = { 25780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville _ID, 25790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville GEOGRAPHICAL_SCOPE, 25800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville PLMN, 25810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville LAC, 25820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville CID, 25830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville SERIAL_NUMBER, 25840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville SERVICE_CATEGORY, 25850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville LANGUAGE_CODE, 25860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville MESSAGE_BODY, 25870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville DELIVERY_TIME, 25880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville MESSAGE_READ, 25890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville MESSAGE_FORMAT, 25900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville MESSAGE_PRIORITY, 25910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville ETWS_WARNING_TYPE, 25920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville CMAS_MESSAGE_CLASS, 25930825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville CMAS_CATEGORY, 25940825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville CMAS_RESPONSE_TYPE, 25950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville CMAS_SEVERITY, 25960825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville CMAS_URGENCY, 25970825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville CMAS_CERTAINTY 25980825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville }; 25990825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 26000825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville} 2601