Home | History | Annotate | Download | only in wifi
      1 /*
      2  * Copyright (C) 2016 The Android Open Source Project
      3  *
      4  * Licensed under the Apache License, Version 2.0 (the "License");
      5  * you may not use this file except in compliance with the License.
      6  * You may obtain a copy of the License at
      7  *
      8  *      http://www.apache.org/licenses/LICENSE-2.0
      9  *
     10  * Unless required by applicable law or agreed to in writing, software
     11  * distributed under the License is distributed on an "AS IS" BASIS,
     12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     13  * See the License for the specific language governing permissions and
     14  * limitations under the License.
     15  */
     16 
     17 package android.net.wifi;
     18 
     19 import android.net.wifi.IApInterface;
     20 import android.net.wifi.IClientInterface;
     21 import android.net.wifi.IInterfaceEventCallback;
     22 
     23 // Service interface that exposes primitives for controlling the WiFi
     24 // subsystems of a device.
     25 interface IWificond {
     26 
     27     // Create a network interface suitable for use as an AP.
     28     @nullable IApInterface createApInterface(@utf8InCpp String iface_name);
     29 
     30     // Create a network interface suitable for use as a WiFi client.
     31     @nullable IClientInterface createClientInterface(@utf8InCpp String iface_name);
     32 
     33     // Remove a previously created AP network interface.
     34     boolean tearDownApInterface(@utf8InCpp String iface_name);
     35 
     36     // Remove a previously created STA network interface.
     37     boolean tearDownClientInterface(@utf8InCpp String iface_name);
     38 
     39     // Tear down all existing interfaces.  This should enable clients to create
     40     // future interfaces immediately after this method returns.
     41     void tearDownInterfaces();
     42 
     43     // @return list of the currently configured IClientInterface instances.
     44     List<IBinder> GetClientInterfaces();
     45 
     46     // @return list of the currently configured IApInterface instances.
     47     List<IBinder> GetApInterfaces();
     48 
     49     // Returns an array of available frequencies for 2.4GHz channels.
     50     // Returrns null on failure.
     51     @nullable int[] getAvailable2gChannels();
     52 
     53     // Returns an array of available frequencies for 5GHz non-DFS channels.
     54     // Returrns null on failure.
     55     @nullable int[] getAvailable5gNonDFSChannels();
     56 
     57     // Returns an array of available frequencies for DFS channels.
     58     // This also includes passive only frequecies which are not for DFS channels.
     59     // Returrns null on failure.
     60     @nullable int[] getAvailableDFSChannels();
     61 
     62     // Enable wpa_supplicant.
     63     // Returns true if supplicant was successfully enabled,
     64     // or is already enabled.
     65     boolean enableSupplicant();
     66 
     67     // Disable wpa_supplicant.
     68     // Returns true if supplicant was successfully disabled,
     69     // or is already disabled.
     70     boolean disableSupplicant();
     71 
     72     // Register a callback to receive interface status updates.
     73     //
     74     // Multiple callbacks can be registered simultaneously.
     75     // Duplicate registrations of the same callback will be ignored.
     76     //
     77     // @param callback object to add to the set of registered callbacks.
     78     oneway void RegisterCallback(IInterfaceEventCallback callback);
     79 
     80     // Remove a callback from the set of registered callbacks.
     81     //
     82     // This must be the same instance as previously registered.
     83     // Requests to remove unknown callbacks will be ignored.
     84     //
     85     // @param callback object to remove from the set of registered callbacks.
     86     oneway void UnregisterCallback(IInterfaceEventCallback callback);
     87 }
     88