diff --git a/src/com/android/settings/development/CbrsDataSwitchPreferenceController.java b/src/com/android/settings/development/CbrsDataSwitchPreferenceController.java
index ec1f8e0..d5c78e8 100644
--- a/src/com/android/settings/development/CbrsDataSwitchPreferenceController.java
+++ b/src/com/android/settings/development/CbrsDataSwitchPreferenceController.java
@@ -54,12 +54,12 @@
     @Override
     public boolean onPreferenceChange(Preference preference, Object newValue) {
         boolean state = (Boolean)newValue;
-        return mTelephonyManager.setAlternativeNetworkAccessState(state);
+        return mTelephonyManager.setAlternativeNetworkState(state);
     }
 
     @Override
     public void updateState(Preference preference) {
-        boolean state = mTelephonyManager.isAlternativeNetworkAccessEnabled();
+        boolean state = mTelephonyManager.isAlternativeNetworkEnabled();
         ((SwitchPreference) mPreference).setChecked(state);
     }
 
diff --git a/tests/robotests/src/com/android/settings/development/CbrsDataSwitchPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/development/CbrsDataSwitchPreferenceControllerTest.java
index be9b123..0f22390 100644
--- a/tests/robotests/src/com/android/settings/development/CbrsDataSwitchPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/development/CbrsDataSwitchPreferenceControllerTest.java
@@ -62,19 +62,19 @@
     public void onPreferenceChanged_settingEnabled_shouldEnableANAS() {
         mController.onPreferenceChange(mPreference, true);
 
-        assertThat(mTelephonyManager.isAlternativeNetworkAccessEnabled()).isTrue();
+        assertThat(mTelephonyManager.isAlternativeNetworkEnabled()).isTrue();
     }
 
     @Test
     public void onPreferenceChanged_settingDisabled_shouldDisableANAS() {
         mController.onPreferenceChange(mPreference, false);
 
-        assertThat(mTelephonyManager.isAlternativeNetworkAccessEnabled()).isFalse();
+        assertThat(mTelephonyManager.isAlternativeNetworkEnabled()).isFalse();
     }
 
     @Test
     public void updateState_settingEnabled_shouldEnablePreference() {
-        mTelephonyManager.setAlternativeNetworkAccessState(true);
+        mTelephonyManager.setAlternativeNetworkState(true);
         mController.updateState(mPreference);
 
         assertThat(mPreference.isChecked()).isTrue();
@@ -82,7 +82,7 @@
 
     @Test
     public void updateState_settingDisabled_shouldDisablePreference() {
-        mTelephonyManager.setAlternativeNetworkAccessState(false);
+        mTelephonyManager.setAlternativeNetworkState(false);
         mController.updateState(mPreference);
 
         assertThat(mPreference.isChecked()).isFalse();
