diff --git a/src/com/android/mms/service/MmsService.java b/src/com/android/mms/service/MmsService.java
index c752120..d227b3c 100644
--- a/src/com/android/mms/service/MmsService.java
+++ b/src/com/android/mms/service/MmsService.java
@@ -207,7 +207,7 @@
         @Override
         public void sendMessage(int subId, String callingPkg, Uri contentUri,
                 String locationUrl, Bundle configOverrides, PendingIntent sentIntent,
-                long messageId) {
+                long messageId, String attributionTag) {
             LogUtil.d("sendMessage " + formatCrossStackMessageId(messageId));
             enforceSystemUid();
 
@@ -278,8 +278,8 @@
 
         @Override
         public void downloadMessage(int subId, String callingPkg, String locationUrl,
-                Uri contentUri, Bundle configOverrides,
-                PendingIntent downloadedIntent, long messageId) {
+                Uri contentUri, Bundle configOverrides, PendingIntent downloadedIntent,
+                long messageId, String attributionTag) {
             // If the subId is no longer active it could be caused by an MVNO using multiple
             // subIds, so we should try to download anyway.
             // TODO: Fail fast when downloading will fail (i.e. SIM swapped)
diff --git a/tests/robotests/src/com/android/mms/service/MmsServiceRoboTest.java b/tests/robotests/src/com/android/mms/service/MmsServiceRoboTest.java
index c43fa74..b59e92e 100644
--- a/tests/robotests/src/com/android/mms/service/MmsServiceRoboTest.java
+++ b/tests/robotests/src/com/android/mms/service/MmsServiceRoboTest.java
@@ -57,7 +57,7 @@
         ShadowBinder.setCallingUid(Process.SYSTEM_UID);
         binder.sendMessage(/* subId= */ 0, "callingPkg", Uri.parse("contentUri"),
                 "locationUrl", /* configOverrides= */ null, /* sentIntent= */ null,
-                /* messageId= */ 0L);
+                /* messageId= */ 0L, /* attributionTag= */ null);
     }
 
     @Test
@@ -65,6 +65,6 @@
         assertThrows(SecurityException.class,
                 () -> binder.sendMessage(/* subId= */ 0, "callingPkg", Uri.parse("contentUri"),
                         "locationUrl", /* configOverrides= */ null, /* sentIntent= */ null,
-                        /* messageId= */ 0L));
+                        /* messageId= */ 0L, /* attributionTag= */ null));
     }
 }
