diff --git a/src/com/android/phone/PhoneInterfaceManager.java b/src/com/android/phone/PhoneInterfaceManager.java
index 44b5eb2..b70ef02 100644
--- a/src/com/android/phone/PhoneInterfaceManager.java
+++ b/src/com/android/phone/PhoneInterfaceManager.java
@@ -34,8 +34,10 @@
 import android.os.Binder;
 import android.os.Bundle;
 import android.os.Handler;
+import android.os.IBinder;
 import android.os.Looper;
 import android.os.Message;
+import android.os.Messenger;
 import android.os.Process;
 import android.os.ResultReceiver;
 import android.os.ServiceManager;
@@ -54,6 +56,7 @@
 import android.telephony.IccOpenLogicalChannelResponse;
 import android.telephony.ModemActivityInfo;
 import android.telephony.NeighboringCellInfo;
+import android.telephony.NetworkScanRequest;
 import android.telephony.RadioAccessFamily;
 import android.telephony.ServiceState;
 import android.telephony.SmsManager;
@@ -2634,6 +2637,27 @@
     }
 
     /**
+     * Performs a new network scan and returns the id of this scan.
+     *
+     * @return the id of the requested scan which can be used to stop the scan.
+     */
+    @Override
+    public int requestNetworkScan(int subId, NetworkScanRequest request, Messenger messenger,
+            IBinder binder) {
+        // TODO(yinxu): Implement this method.
+        throw new UnsupportedOperationException("To be implemented...");
+    }
+
+    /**
+     * Stops an existing network scan with the given scanId.
+     */
+    @Override
+    public void stopNetworkScan(int subId, int scanId) {
+        // TODO(yinxu): Implement this method.
+        throw new UnsupportedOperationException("To be implemented...");
+    }
+
+    /**
      * Get the calculated preferred network type.
      * Used for debugging incorrect network type.
      *
