Update API used to determine default SMS app.
David Braun [Mon, 23 Sep 2013 17:16:16 +0000 (10:16 -0700)]
In order to direct intents that make sense to send only to the default SMS
app, we need to update the API to return the package rather than just
having it check the package name.

Bug: 10870624 System should direct "SENDTO" intent with "sms" and "mms" schemes to the default SMS app
Change-Id: I1aa44a8a1113c42a13b4cb1f813fcaed347c1f47

src/java/android/provider/Telephony.java

index d1eb4fd..e1a6d82 100644 (file)
@@ -69,7 +69,6 @@ public final class Telephony {
         public static final int MESSAGE_TYPE_FAILED = 5; // for failed outgoing messages
         public static final int MESSAGE_TYPE_QUEUED = 6; // for messages to send later
 
-
         /**
          * The thread ID of the message
          * <P>Type: INTEGER</P>
@@ -182,6 +181,19 @@ public final class Telephony {
      * Contains all text based SMS messages.
      */
     public static final class Sms implements BaseColumns, TextBasedSmsColumns {
+        /**
+         * Used to determine the currently configured default SMS package.
+         * @param context context of the requesting application
+         * @return package name for the default SMS package or null
+         */
+        public static String getDefaultSmsPackage(Context context) {
+            ComponentName component = SmsApplication.getDefaultSmsApplication(context, false);
+            if (component != null) {
+                return component.getPackageName();
+            }
+            return null;
+        }
+
         public static final Cursor query(ContentResolver cr, String[] projection) {
             return cr.query(CONTENT_URI, projection, null, null, DEFAULT_SORT_ORDER);
         }
@@ -546,20 +558,6 @@ public final class Telephony {
             public static final String EXTRA_PACKAGE_NAME = "package";
 
             /**
-             * Used by applications to determine if they are the current default sms package.
-             * @param context context of the requesting application
-             * @param packageName name of the package to check.
-             * @return true if the specified package is the current default SMS app.
-             */
-            public static boolean isDefaultSmsPackage(Context context, String packageName) {
-                ComponentName component = SmsApplication.getDefaultSmsApplication(context, false);
-                if (component != null && component.getPackageName().equals(packageName)) {
-                    return true;
-                }
-                return false;
-            }
-
-            /**
              * Broadcast Action: A new text based SMS message has been received
              * by the device. This intent will only be delivered to the default
              * sms app. That app is responsible for writing the message and notifying