19066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/**
29066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Copyright (c) 2008, The Android Open Source Project
39066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *
4227bec49157bc496f7c9e8e8f63c12728a448922Irfan Sheriff * Licensed under the Apache License, Version 2.0 (the "License");
5227bec49157bc496f7c9e8e8f63c12728a448922Irfan Sheriff * you may not use this file except in compliance with the License.
6227bec49157bc496f7c9e8e8f63c12728a448922Irfan Sheriff * You may obtain a copy of the License at
79066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *
8227bec49157bc496f7c9e8e8f63c12728a448922Irfan Sheriff *     http://www.apache.org/licenses/LICENSE-2.0
99066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *
10227bec49157bc496f7c9e8e8f63c12728a448922Irfan Sheriff * Unless required by applicable law or agreed to in writing, software
11227bec49157bc496f7c9e8e8f63c12728a448922Irfan Sheriff * distributed under the License is distributed on an "AS IS" BASIS,
12227bec49157bc496f7c9e8e8f63c12728a448922Irfan Sheriff * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13227bec49157bc496f7c9e8e8f63c12728a448922Irfan Sheriff * See the License for the specific language governing permissions and
149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * limitations under the License.
159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */
169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectpackage android.net.wifi;
189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.net.wifi.WifiInfo;
209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.net.wifi.WifiConfiguration;
219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.net.wifi.ScanResult;
229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.net.DhcpInfo;
239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
24227bec49157bc496f7c9e8e8f63c12728a448922Irfan Sheriffimport android.os.Messenger;
257e9f4eb2608148436cef36c9969bf8a599b39e72Dianne Hackbornimport android.os.WorkSource;
267e9f4eb2608148436cef36c9969bf8a599b39e72Dianne Hackborn
279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/**
289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Interface that allows controlling and querying Wi-Fi connectivity.
299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *
309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * {@hide}
319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */
329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectinterface IWifiManager
339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{
349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    List<WifiConfiguration> getConfiguredNetworks();
355321aef4a22daef6ed01ed48d936cdd82f2e38b7Irfan Sheriff
369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    int addOrUpdateNetwork(in WifiConfiguration config);
379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    boolean removeNetwork(int netId);
399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    boolean enableNetwork(int netId, boolean disableOthers);
419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    boolean disableNetwork(int netId);
439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    boolean pingSupplicant();
459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
46e498475b187277309c81b38240c7e71ec049e369Irfan Sheriff    void startScan(boolean forceActive);
479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    List<ScanResult> getScanResults();
499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
50e498475b187277309c81b38240c7e71ec049e369Irfan Sheriff    void disconnect();
519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
52e498475b187277309c81b38240c7e71ec049e369Irfan Sheriff    void reconnect();
535321aef4a22daef6ed01ed48d936cdd82f2e38b7Irfan Sheriff
54e498475b187277309c81b38240c7e71ec049e369Irfan Sheriff    void reassociate();
559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    WifiInfo getConnectionInfo();
579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    boolean setWifiEnabled(boolean enable);
599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    int getWifiEnabledState();
619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
62ed4f28b492da3ff140bbaabbbda798a08c40ea5bIrfan Sheriff    void setCountryCode(String country, boolean persist);
635321aef4a22daef6ed01ed48d936cdd82f2e38b7Irfan Sheriff
6436f7413dabfab50699135019ba55151e9227f59dIrfan Sheriff    void setFrequencyBand(int band, boolean persist);
6536f7413dabfab50699135019ba55151e9227f59dIrfan Sheriff
6636f7413dabfab50699135019ba55151e9227f59dIrfan Sheriff    int getFrequencyBand();
6736f7413dabfab50699135019ba55151e9227f59dIrfan Sheriff
6836f7413dabfab50699135019ba55151e9227f59dIrfan Sheriff    boolean isDualBandSupported();
6936f7413dabfab50699135019ba55151e9227f59dIrfan Sheriff
709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    boolean saveConfiguration();
719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    DhcpInfo getDhcpInfo();
739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
747e9f4eb2608148436cef36c9969bf8a599b39e72Dianne Hackborn    boolean acquireWifiLock(IBinder lock, int lockType, String tag, in WorkSource ws);
757e9f4eb2608148436cef36c9969bf8a599b39e72Dianne Hackborn
767e9f4eb2608148436cef36c9969bf8a599b39e72Dianne Hackborn    void updateWifiLockWorkSource(IBinder lock, in WorkSource ws);
779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    boolean releaseWifiLock(IBinder lock);
795347bd4cda2b6afc18f8acab48e52131f35ed13cRobert Greenwalt
80e2d155a51e68694e17fa6e27d05c928215a5dbcfRobert Greenwalt    void initializeMulticastFiltering();
81e2d155a51e68694e17fa6e27d05c928215a5dbcfRobert Greenwalt
8258ff0217a617d5b03d18f0ef532f254f8ba6de2bRobert Greenwalt    boolean isMulticastEnabled();
835347bd4cda2b6afc18f8acab48e52131f35ed13cRobert Greenwalt
84fc1b15cfbfc5f69235ec1f367abd7a909381cd05Robert Greenwalt    void acquireMulticastLock(IBinder binder, String tag);
855347bd4cda2b6afc18f8acab48e52131f35ed13cRobert Greenwalt
86fc1b15cfbfc5f69235ec1f367abd7a909381cd05Robert Greenwalt    void releaseMulticastLock();
875321aef4a22daef6ed01ed48d936cdd82f2e38b7Irfan Sheriff
88ffcea7ae7316ab748a49f5e8f6c6798356f35719Irfan Sheriff    void setWifiApEnabled(in WifiConfiguration wifiConfig, boolean enable);
895321aef4a22daef6ed01ed48d936cdd82f2e38b7Irfan Sheriff
905321aef4a22daef6ed01ed48d936cdd82f2e38b7Irfan Sheriff    int getWifiApEnabledState();
919ab518ad793385f8405edf19363fe825fb64f5f8Irfan Sheriff
929ab518ad793385f8405edf19363fe825fb64f5f8Irfan Sheriff    WifiConfiguration getWifiApConfiguration();
9317b232b5b59ab91ab543b87e849583678a000f9bIrfan Sheriff
9417b232b5b59ab91ab543b87e849583678a000f9bIrfan Sheriff    void setWifiApConfiguration(in WifiConfiguration wifiConfig);
950d25534fed91f636def5776ddc4605005bd7471cIrfan Sheriff
960d25534fed91f636def5776ddc4605005bd7471cIrfan Sheriff    void startWifi();
970d25534fed91f636def5776ddc4605005bd7471cIrfan Sheriff
980d25534fed91f636def5776ddc4605005bd7471cIrfan Sheriff    void stopWifi();
990d25534fed91f636def5776ddc4605005bd7471cIrfan Sheriff
1000d25534fed91f636def5776ddc4605005bd7471cIrfan Sheriff    void addToBlacklist(String bssid);
1010d25534fed91f636def5776ddc4605005bd7471cIrfan Sheriff
1020d25534fed91f636def5776ddc4605005bd7471cIrfan Sheriff    void clearBlacklist();
103e04653cbd0e8303eba92088344312b827e6b0babIrfan Sheriff
10407573b32494acbabd21979d8b9584c1ed3f7a6adIrfan Sheriff    Messenger getWifiServiceMessenger();
10507573b32494acbabd21979d8b9584c1ed3f7a6adIrfan Sheriff
10607573b32494acbabd21979d8b9584c1ed3f7a6adIrfan Sheriff    Messenger getWifiStateMachineMessenger();
1074aeca7c5908387bc7efb0785830aea1053264062Irfan Sheriff
1084aeca7c5908387bc7efb0785830aea1053264062Irfan Sheriff    String getConfigFile();
109da6da0907b28d4704aabbdb1bbeb4300954670d1Irfan Sheriff
110da6da0907b28d4704aabbdb1bbeb4300954670d1Irfan Sheriff    void captivePortalCheckComplete();
1119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
1129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
113