From 84b0a3f54cb32fd8454cf665bc50957e5af203b9 Mon Sep 17 00:00:00 2001 From: Etan Cohen Date: Fri, 8 Dec 2017 13:20:41 -0800 Subject: [PATCH] [AWARE] Check for RTT feature presence for Aware discovery with ranging When configuring Aware discovery with ranging validate that the RTT feature is present on the device. Bug: 63906015 Test: unit tests, integration tests Change-Id: Ie12feaf84f17c075f0e60bdacfc14af3703124c3 --- wifi/java/android/net/wifi/aware/PublishConfig.java | 9 ++++++++- .../java/android/net/wifi/aware/SubscribeConfig.java | 12 +++++++++++- 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/wifi/java/android/net/wifi/aware/PublishConfig.java b/wifi/java/android/net/wifi/aware/PublishConfig.java index e60f52f88f9e6..7a5049d731f1d 100644 --- a/wifi/java/android/net/wifi/aware/PublishConfig.java +++ b/wifi/java/android/net/wifi/aware/PublishConfig.java @@ -182,7 +182,7 @@ public final class PublishConfig implements Parcelable { * * @hide */ - public void assertValid(Characteristics characteristics) + public void assertValid(Characteristics characteristics, boolean rttSupported) throws IllegalArgumentException { WifiAwareUtils.validateServiceName(mServiceName); @@ -216,6 +216,10 @@ public final class PublishConfig implements Parcelable { "Match filter longer than supported by device characteristics"); } } + + if (!rttSupported && mEnableRanging) { + throw new IllegalArgumentException("Ranging is not supported"); + } } /** @@ -364,6 +368,9 @@ public final class PublishConfig implements Parcelable { * Optional. Disabled by default - i.e. any peer which attempts to measure distance to this * device will be refused. If the peer has ranging enabled (using the * {@link SubscribeConfig} APIs listed above, it will never discover this device. + *

+ * The device must support Wi-Fi RTT for this feature to be used. Feature support is checked + * as described in {@link android.net.wifi.rtt}. * * @param enable If true, ranging is supported on request of the peer. * diff --git a/wifi/java/android/net/wifi/aware/SubscribeConfig.java b/wifi/java/android/net/wifi/aware/SubscribeConfig.java index f6552a767f4fd..91f8e5207357d 100644 --- a/wifi/java/android/net/wifi/aware/SubscribeConfig.java +++ b/wifi/java/android/net/wifi/aware/SubscribeConfig.java @@ -224,7 +224,7 @@ public final class SubscribeConfig implements Parcelable { * * @hide */ - public void assertValid(Characteristics characteristics) + public void assertValid(Characteristics characteristics, boolean rttSupported) throws IllegalArgumentException { WifiAwareUtils.validateServiceName(mServiceName); @@ -269,6 +269,10 @@ public final class SubscribeConfig implements Parcelable { throw new IllegalArgumentException( "Maximum distance must be greater than minimum distance"); } + + if (!rttSupported && (mMinDistanceMmSet || mMaxDistanceMmSet)) { + throw new IllegalArgumentException("Ranging is not supported"); + } } /** @@ -422,6 +426,9 @@ public final class SubscribeConfig implements Parcelable { * peer must enable ranging using * {@link PublishConfig.Builder#setRangingEnabled(boolean)}. Otherwise discovery will * never be triggered. + *

+ * The device must support Wi-Fi RTT for this feature to be used. Feature support is checked + * as described in {@link android.net.wifi.rtt}. * * @param minDistanceMm Minimum distance, in mm, to the publisher above which to trigger * discovery. @@ -450,6 +457,9 @@ public final class SubscribeConfig implements Parcelable { * peer must enable ranging using * {@link PublishConfig.Builder#setRangingEnabled(boolean)}. Otherwise discovery will * never be triggered. + *

+ * The device must support Wi-Fi RTT for this feature to be used. Feature support is checked + * as described in {@link android.net.wifi.rtt}. * * @param maxDistanceMm Maximum distance, in mm, to the publisher below which to trigger * discovery.