summaryrefslogtreecommitdiffstats
path: root/wifi/java/android/net/wifi/ScanSettings.java
diff options
context:
space:
mode:
authorYuhao Zheng <yuhaozheng@google.com>2014-02-05 19:20:23 -0800
committerYuhao Zheng <yuhaozheng@google.com>2014-02-18 15:26:29 -0800
commit738803fee62a98f244250996380820c4923e7f7b (patch)
tree3cda4da835fa6f5af50a3c17f7855e96032a7305 /wifi/java/android/net/wifi/ScanSettings.java
parentf556adf45e7fd925259b5c6bc87d23f0400a51c1 (diff)
downloadframeworks_base-738803fee62a98f244250996380820c4923e7f7b.zip
frameworks_base-738803fee62a98f244250996380820c4923e7f7b.tar.gz
frameworks_base-738803fee62a98f244250996380820c4923e7f7b.tar.bz2
Add new API to scan a given channel set
Create new (hidden) APIs to scan a specified channel set. This is mainly for location service for now, as doing frequent full scans (including DFS channel) kills battery. This set of new APIs contains: - API to query available channel list for scanning, and DFS channels are marked - API to scan a specified channel set Selective scan results are returned in the same way as normal full scan ones. In order not to intrude full scan results, BSS_FLUSH is NOT performed before a selective scan. Therefore, selective scan results may contain results that's not in the given channel set, and post-filtering may be required for location service use. Bug: 12610436 Change-Id: Icced18dd9b54f6dd92c0c2874d31518d56af8163
Diffstat (limited to 'wifi/java/android/net/wifi/ScanSettings.java')
-rw-r--r--wifi/java/android/net/wifi/ScanSettings.java87
1 files changed, 87 insertions, 0 deletions
diff --git a/wifi/java/android/net/wifi/ScanSettings.java b/wifi/java/android/net/wifi/ScanSettings.java
new file mode 100644
index 0000000..094ce34
--- /dev/null
+++ b/wifi/java/android/net/wifi/ScanSettings.java
@@ -0,0 +1,87 @@
+/*
+ * Copyright (c) 2014, 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 android.net.wifi;
+
+import android.os.Parcel;
+import android.os.Parcelable;
+
+import java.util.ArrayList;
+import java.util.Collection;
+
+/**
+ * Bundle of customized scan settings
+ *
+ * @see WifiManager#startCustomizedScan
+ *
+ * @hide
+ */
+public class ScanSettings implements Parcelable {
+
+ /** channel set to scan. this can be null or empty, indicating a full scan */
+ public Collection<WifiChannel> channelSet;
+
+ /** public constructor */
+ public ScanSettings() { }
+
+ /** copy constructor */
+ public ScanSettings(ScanSettings source) {
+ if (source.channelSet != null)
+ channelSet = new ArrayList<WifiChannel>(source.channelSet);
+ }
+
+ /** check for validity */
+ public boolean isValid() {
+ for (WifiChannel channel : channelSet)
+ if (!channel.isValid()) return false;
+ return true;
+ }
+
+ /** implement Parcelable interface */
+ @Override
+ public int describeContents() {
+ return 0;
+ }
+
+ /** implement Parcelable interface */
+ @Override
+ public void writeToParcel(Parcel out, int flags) {
+ out.writeInt(channelSet == null ? 0 : channelSet.size());
+ if (channelSet != null)
+ for (WifiChannel channel : channelSet) channel.writeToParcel(out, flags);
+ }
+
+ /** implement Parcelable interface */
+ public static final Parcelable.Creator<ScanSettings> CREATOR =
+ new Parcelable.Creator<ScanSettings>() {
+ @Override
+ public ScanSettings createFromParcel(Parcel in) {
+ ScanSettings settings = new ScanSettings();
+ int size = in.readInt();
+ if (size > 0) {
+ settings.channelSet = new ArrayList<WifiChannel>(size);
+ while (size-- > 0)
+ settings.channelSet.add(WifiChannel.CREATOR.createFromParcel(in));
+ }
+ return settings;
+ }
+
+ @Override
+ public ScanSettings[] newArray(int size) {
+ return new ScanSettings[size];
+ }
+ };
+}