IWificond.aidl revision e5f2ed5f5892753d7d3ecb43df25773af47490f5
1fa9619e3efeb8afab8be0a71f77cda26261622cbNingyuan Wang/* 2fa9619e3efeb8afab8be0a71f77cda26261622cbNingyuan Wang * Copyright (C) 2016 The Android Open Source Project 3fa9619e3efeb8afab8be0a71f77cda26261622cbNingyuan Wang * 4fa9619e3efeb8afab8be0a71f77cda26261622cbNingyuan Wang * Licensed under the Apache License, Version 2.0 (the "License"); 5fa9619e3efeb8afab8be0a71f77cda26261622cbNingyuan Wang * you may not use this file except in compliance with the License. 6fa9619e3efeb8afab8be0a71f77cda26261622cbNingyuan Wang * You may obtain a copy of the License at 7fa9619e3efeb8afab8be0a71f77cda26261622cbNingyuan Wang * 8fa9619e3efeb8afab8be0a71f77cda26261622cbNingyuan Wang * http://www.apache.org/licenses/LICENSE-2.0 9fa9619e3efeb8afab8be0a71f77cda26261622cbNingyuan Wang * 10fa9619e3efeb8afab8be0a71f77cda26261622cbNingyuan Wang * Unless required by applicable law or agreed to in writing, software 11fa9619e3efeb8afab8be0a71f77cda26261622cbNingyuan Wang * distributed under the License is distributed on an "AS IS" BASIS, 12fa9619e3efeb8afab8be0a71f77cda26261622cbNingyuan Wang * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13fa9619e3efeb8afab8be0a71f77cda26261622cbNingyuan Wang * See the License for the specific language governing permissions and 14fa9619e3efeb8afab8be0a71f77cda26261622cbNingyuan Wang * limitations under the License. 15fa9619e3efeb8afab8be0a71f77cda26261622cbNingyuan Wang */ 16fa9619e3efeb8afab8be0a71f77cda26261622cbNingyuan Wang 17f771ca1e6e0961f7a9296f140f4df0eaea9dcaddChristopher Wileypackage android.net.wifi; 18f771ca1e6e0961f7a9296f140f4df0eaea9dcaddChristopher Wiley 19f229bbe6676ac7d12f4aa22a902eb2eefb2fc5c6Christopher Wileyimport android.net.wifi.IApInterface; 20c139fbf821d3c62523afbcf0950ebc2d1abaa93dChristopher Wileyimport android.net.wifi.IClientInterface; 21dea7ebe3078dc347ef4d49d2293b391a479242cfNingyuan Wangimport android.net.wifi.IInterfaceEventCallback; 22f229bbe6676ac7d12f4aa22a902eb2eefb2fc5c6Christopher Wiley 23f771ca1e6e0961f7a9296f140f4df0eaea9dcaddChristopher Wiley// Service interface that exposes primitives for controlling the WiFi 24fb2880c1108cf2b68599f3a879bf2f97dce6a3d4Christopher Wiley// subsystems of a device. 25f771ca1e6e0961f7a9296f140f4df0eaea9dcaddChristopher Wileyinterface IWificond { 26f771ca1e6e0961f7a9296f140f4df0eaea9dcaddChristopher Wiley 2730b1d2976873e3fe3cf7b8c5f381848c9c1ccdb2Christopher Wiley // Create a network interface suitable for use as an AP. 2847443838f760908b9a6571aed4f4fa4e93ad37bcRoshan Pius @nullable IApInterface createApInterface(@utf8InCpp String iface_name); 29f229bbe6676ac7d12f4aa22a902eb2eefb2fc5c6Christopher Wiley 30c139fbf821d3c62523afbcf0950ebc2d1abaa93dChristopher Wiley // Create a network interface suitable for use as a WiFi client. 3147443838f760908b9a6571aed4f4fa4e93ad37bcRoshan Pius @nullable IClientInterface createClientInterface(@utf8InCpp String iface_name); 32c139fbf821d3c62523afbcf0950ebc2d1abaa93dChristopher Wiley 33e5f2ed5f5892753d7d3ecb43df25773af47490f5Roshan Pius // Remove a previously created AP network interface. 34e5f2ed5f5892753d7d3ecb43df25773af47490f5Roshan Pius boolean tearDownApInterface(@utf8InCpp String iface_name); 35e5f2ed5f5892753d7d3ecb43df25773af47490f5Roshan Pius 36e5f2ed5f5892753d7d3ecb43df25773af47490f5Roshan Pius // Remove a previously created STA network interface. 37e5f2ed5f5892753d7d3ecb43df25773af47490f5Roshan Pius boolean tearDownClientInterface(@utf8InCpp String iface_name); 38e5f2ed5f5892753d7d3ecb43df25773af47490f5Roshan Pius 3930b1d2976873e3fe3cf7b8c5f381848c9c1ccdb2Christopher Wiley // Tear down all existing interfaces. This should enable clients to create 4030b1d2976873e3fe3cf7b8c5f381848c9c1ccdb2Christopher Wiley // future interfaces immediately after this method returns. 4130b1d2976873e3fe3cf7b8c5f381848c9c1ccdb2Christopher Wiley void tearDownInterfaces(); 42f229bbe6676ac7d12f4aa22a902eb2eefb2fc5c6Christopher Wiley 4329fca8817115e7b30eac16cce5917520b1fc2834Ningyuan Wang // @return list of the currently configured IClientInterface instances. 4429fca8817115e7b30eac16cce5917520b1fc2834Ningyuan Wang List<IBinder> GetClientInterfaces(); 4529fca8817115e7b30eac16cce5917520b1fc2834Ningyuan Wang 4629fca8817115e7b30eac16cce5917520b1fc2834Ningyuan Wang // @return list of the currently configured IApInterface instances. 4729fca8817115e7b30eac16cce5917520b1fc2834Ningyuan Wang List<IBinder> GetApInterfaces(); 4829fca8817115e7b30eac16cce5917520b1fc2834Ningyuan Wang 493e5057cb3858bd8b0d4ea01d1eb86757cced8ce4Ningyuan Wang // Returns an array of available frequencies for 2.4GHz channels. 503e5057cb3858bd8b0d4ea01d1eb86757cced8ce4Ningyuan Wang // Returrns null on failure. 513e5057cb3858bd8b0d4ea01d1eb86757cced8ce4Ningyuan Wang @nullable int[] getAvailable2gChannels(); 523e5057cb3858bd8b0d4ea01d1eb86757cced8ce4Ningyuan Wang 533e5057cb3858bd8b0d4ea01d1eb86757cced8ce4Ningyuan Wang // Returns an array of available frequencies for 5GHz non-DFS channels. 543e5057cb3858bd8b0d4ea01d1eb86757cced8ce4Ningyuan Wang // Returrns null on failure. 553e5057cb3858bd8b0d4ea01d1eb86757cced8ce4Ningyuan Wang @nullable int[] getAvailable5gNonDFSChannels(); 563e5057cb3858bd8b0d4ea01d1eb86757cced8ce4Ningyuan Wang 573e5057cb3858bd8b0d4ea01d1eb86757cced8ce4Ningyuan Wang // Returns an array of available frequencies for DFS channels. 583e5057cb3858bd8b0d4ea01d1eb86757cced8ce4Ningyuan Wang // This also includes passive only frequecies which are not for DFS channels. 593e5057cb3858bd8b0d4ea01d1eb86757cced8ce4Ningyuan Wang // Returrns null on failure. 603e5057cb3858bd8b0d4ea01d1eb86757cced8ce4Ningyuan Wang @nullable int[] getAvailableDFSChannels(); 613e5057cb3858bd8b0d4ea01d1eb86757cced8ce4Ningyuan Wang 62629acb02bfa2a0d17aa2f55aa54b50da47a7ed59Roshan Pius // Enable wpa_supplicant. 63629acb02bfa2a0d17aa2f55aa54b50da47a7ed59Roshan Pius // Returns true if supplicant was successfully enabled, 64629acb02bfa2a0d17aa2f55aa54b50da47a7ed59Roshan Pius // or is already enabled. 65629acb02bfa2a0d17aa2f55aa54b50da47a7ed59Roshan Pius boolean enableSupplicant(); 66629acb02bfa2a0d17aa2f55aa54b50da47a7ed59Roshan Pius 67629acb02bfa2a0d17aa2f55aa54b50da47a7ed59Roshan Pius // Disable wpa_supplicant. 68629acb02bfa2a0d17aa2f55aa54b50da47a7ed59Roshan Pius // Returns true if supplicant was successfully disabled, 69629acb02bfa2a0d17aa2f55aa54b50da47a7ed59Roshan Pius // or is already disabled. 70629acb02bfa2a0d17aa2f55aa54b50da47a7ed59Roshan Pius boolean disableSupplicant(); 71629acb02bfa2a0d17aa2f55aa54b50da47a7ed59Roshan Pius 72dea7ebe3078dc347ef4d49d2293b391a479242cfNingyuan Wang // Register a callback to receive interface status updates. 73dea7ebe3078dc347ef4d49d2293b391a479242cfNingyuan Wang // 74dea7ebe3078dc347ef4d49d2293b391a479242cfNingyuan Wang // Multiple callbacks can be registered simultaneously. 75dea7ebe3078dc347ef4d49d2293b391a479242cfNingyuan Wang // Duplicate registrations of the same callback will be ignored. 76dea7ebe3078dc347ef4d49d2293b391a479242cfNingyuan Wang // 77dea7ebe3078dc347ef4d49d2293b391a479242cfNingyuan Wang // @param callback object to add to the set of registered callbacks. 78dea7ebe3078dc347ef4d49d2293b391a479242cfNingyuan Wang oneway void RegisterCallback(IInterfaceEventCallback callback); 79dea7ebe3078dc347ef4d49d2293b391a479242cfNingyuan Wang 80dea7ebe3078dc347ef4d49d2293b391a479242cfNingyuan Wang // Remove a callback from the set of registered callbacks. 81dea7ebe3078dc347ef4d49d2293b391a479242cfNingyuan Wang // 82dea7ebe3078dc347ef4d49d2293b391a479242cfNingyuan Wang // This must be the same instance as previously registered. 83dea7ebe3078dc347ef4d49d2293b391a479242cfNingyuan Wang // Requests to remove unknown callbacks will be ignored. 84dea7ebe3078dc347ef4d49d2293b391a479242cfNingyuan Wang // 85dea7ebe3078dc347ef4d49d2293b391a479242cfNingyuan Wang // @param callback object to remove from the set of registered callbacks. 86dea7ebe3078dc347ef4d49d2293b391a479242cfNingyuan Wang oneway void UnregisterCallback(IInterfaceEventCallback callback); 87fa9619e3efeb8afab8be0a71f77cda26261622cbNingyuan Wang} 88