diff --git a/samples/MediaRoutingDemo/src/main/java/com/example/androidx/mediarouting/activities/systemrouting/SystemRouteUtils.java b/samples/MediaRoutingDemo/src/main/java/com/example/androidx/mediarouting/activities/systemrouting/SystemRouteUtils.java
deleted file mode 100644
index 4c93b56..0000000
--- a/samples/MediaRoutingDemo/src/main/java/com/example/androidx/mediarouting/activities/systemrouting/SystemRouteUtils.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * Copyright 2023 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.example.androidx.mediarouting.activities.systemrouting;
-
-import android.media.MediaRouter;
-
-import androidx.annotation.NonNull;
-
-/**
- * Utils for {@link SystemRouteItem}.
- */
-public final class SystemRouteUtils {
-
-    private SystemRouteUtils() {
-        // Private on purpose.
-    }
-
-    /**
-     * Checks whether {@link MediaRouter.RouteInfo} is a system route or not.
-     */
-    public static boolean isSystemMediaRouterRoute(@NonNull MediaRouter.RouteInfo routeInfo) {
-        return routeInfo.getClass() == MediaRouter.RouteInfo.class;
-    }
-}
diff --git a/samples/MediaRoutingDemo/src/main/java/com/example/androidx/mediarouting/activities/systemrouting/source/MediaRouterSystemRoutesSource.java b/samples/MediaRoutingDemo/src/main/java/com/example/androidx/mediarouting/activities/systemrouting/source/MediaRouterSystemRoutesSource.java
index 6d9d335c..438ccfc 100644
--- a/samples/MediaRoutingDemo/src/main/java/com/example/androidx/mediarouting/activities/systemrouting/source/MediaRouterSystemRoutesSource.java
+++ b/samples/MediaRoutingDemo/src/main/java/com/example/androidx/mediarouting/activities/systemrouting/source/MediaRouterSystemRoutesSource.java
@@ -22,7 +22,6 @@
 import androidx.annotation.NonNull;
 
 import com.example.androidx.mediarouting.activities.systemrouting.SystemRouteItem;
-import com.example.androidx.mediarouting.activities.systemrouting.SystemRouteUtils;
 import com.example.androidx.mediarouting.activities.systemrouting.SystemRoutesSourceItem;
 
 import java.util.ArrayList;
@@ -86,12 +85,10 @@
 
         for (int i = 0; i < count; i++) {
             MediaRouter.RouteInfo info = mMediaRouter.getRouteAt(i);
-
-            if (!SystemRouteUtils.isSystemMediaRouterRoute(info)) {
-                continue;
+            if (info.getPlaybackType() == MediaRouter.RouteInfo.PLAYBACK_TYPE_LOCAL) {
+                // We are only interested in system routes.
+                out.add(createRouteItemFor(info));
             }
-
-            out.add(createRouteItemFor(info));
         }
 
         return out;
