diff --git a/tests/cts/net/src/android/net/wifi/aware/cts/SingleDeviceTest.java b/tests/cts/net/src/android/net/wifi/aware/cts/SingleDeviceTest.java index d4982a51b1..87e22d82b7 100644 --- a/tests/cts/net/src/android/net/wifi/aware/cts/SingleDeviceTest.java +++ b/tests/cts/net/src/android/net/wifi/aware/cts/SingleDeviceTest.java @@ -37,7 +37,9 @@ import android.net.wifi.aware.WifiAwareManager; import android.net.wifi.aware.WifiAwareSession; import android.os.Handler; import android.os.HandlerThread; +import android.provider.Settings; import android.test.AndroidTestCase; +import android.util.Log; import java.util.ArrayDeque; import java.util.ArrayList; @@ -74,6 +76,13 @@ public class SingleDeviceTest extends AndroidTestCase { // used to store any WifiAwareSession allocated during tests - will clean-up after tests private List mSessions = new ArrayList<>(); + // Return true if location is enabled. + private boolean isLocationEnabled() { + return Settings.Secure.getInt(getContext().getContentResolver(), + Settings.Secure.LOCATION_MODE, Settings.Secure.LOCATION_MODE_OFF) != + Settings.Secure.LOCATION_MODE_OFF; + } + private class WifiAwareBroadcastReceiver extends BroadcastReceiver { private CountDownLatch mBlocker = new CountDownLatch(1); @@ -422,6 +431,18 @@ public class SingleDeviceTest extends AndroidTestCase { return; } + if (isLocationEnabled()) { + /* Can't execute this test with location on since it means that Aware will not get + * disabled even if we disable Wi-Fi (which when location is enabled does not correspond + * to disabling the Wi-Fi chip). + * + * Considering other tests may require locationing to be enable we can't also fail the + * test in such a case. Hence it is skipped. + */ + Log.d(TAG, "Skipping test since location scans are enabled"); + return; + } + IntentFilter intentFilter = new IntentFilter(); intentFilter.addAction(WifiAwareManager.ACTION_WIFI_AWARE_STATE_CHANGED);