diff --git a/java/com/android/dialer/assisteddialing/AssistedDialingMediator.java b/java/com/android/dialer/assisteddialing/AssistedDialingMediator.java
index 4dc87a7..004d2f7 100644
--- a/java/com/android/dialer/assisteddialing/AssistedDialingMediator.java
+++ b/java/com/android/dialer/assisteddialing/AssistedDialingMediator.java
@@ -24,6 +24,9 @@
 /** The core interface for the AssistedDialingMediator. */
 public interface AssistedDialingMediator {
 
+  /** Returns {@code true} if the current client platform supports Assisted Dialing. */
+  public boolean isPlatformEligible();
+
   @SuppressWarnings("AndroidApiChecker") // Use of optional
   @TargetApi(VERSION_CODES.N)
   public Optional<TransformationInfo> attemptAssistedDial(@NonNull String numberToTransform);
diff --git a/java/com/android/dialer/assisteddialing/AssistedDialingMediatorImpl.java b/java/com/android/dialer/assisteddialing/AssistedDialingMediatorImpl.java
index 1692614..2027607 100644
--- a/java/com/android/dialer/assisteddialing/AssistedDialingMediatorImpl.java
+++ b/java/com/android/dialer/assisteddialing/AssistedDialingMediatorImpl.java
@@ -17,6 +17,7 @@
 package com.android.dialer.assisteddialing;
 
 import android.annotation.TargetApi;
+import android.os.Build;
 import android.os.Build.VERSION_CODES;
 import android.support.annotation.NonNull;
 import com.android.dialer.common.LogUtil;
@@ -47,6 +48,12 @@
     this.numberTransformer = numberTransformer;
   }
 
+  @Override
+  public boolean isPlatformEligible() {
+    return Build.VERSION.SDK_INT >= Build.VERSION_CODES.N
+        && Build.VERSION.SDK_INT <= Build.VERSION_CODES.O;
+  }
+
   /**
    * Returns an Optional of type String containing the transformed number that was provided. The
    * transformed number should be capable of dialing out of the User's current country and
diff --git a/java/com/android/dialer/assisteddialing/AssistedDialingMediatorStub.java b/java/com/android/dialer/assisteddialing/AssistedDialingMediatorStub.java
index c7a8212..fe32e2c 100644
--- a/java/com/android/dialer/assisteddialing/AssistedDialingMediatorStub.java
+++ b/java/com/android/dialer/assisteddialing/AssistedDialingMediatorStub.java
@@ -31,4 +31,9 @@
   public Optional<TransformationInfo> attemptAssistedDial(@NonNull String numberToTransform) {
     return Optional.empty();
   }
+
+  @Override
+  public boolean isPlatformEligible() {
+    return false;
+  }
 }
diff --git a/java/com/android/dialer/callintent/CallIntentBuilder.java b/java/com/android/dialer/callintent/CallIntentBuilder.java
index dc239dc..2bbd124 100644
--- a/java/com/android/dialer/callintent/CallIntentBuilder.java
+++ b/java/com/android/dialer/callintent/CallIntentBuilder.java
@@ -126,7 +126,9 @@
     Intent intent = new Intent(Intent.ACTION_CALL, uri);
     Bundle extras = new Bundle();
 
-    if (allowAssistedDial && this.assistedDialingMediator != null) {
+    if (allowAssistedDial
+        && this.assistedDialingMediator != null
+        && this.assistedDialingMediator.isPlatformEligible()) {
       intent = buildAssistedDialingParameters(intent, extras);
     }
     intent.putExtra(
