WifiManager类详解

public class

WifiManager

extends  Object
java.lang.Object
   ↳ android.net.wifi.WifiManager

类概述

This class provides the primary API for managing all aspects of Wi-Fi connectivity. Get an instance of this class by calling Context.getSystemService(Context.WIFI_SERVICE). It deals with several categories of items:

  • The list of configured networks. The list can be viewed and updated, and attributes of individual entries can be modified.
  • The currently active Wi-Fi network, if any. Connectivity can be established or torn down, and dynamic information about the state of the network can be queried.
  • Results of access point scans, containing enough information to make decisions about what access point to connect to.
  • It defines the names of various Intent actions that are broadcast upon any sort of change in Wi-Fi state.
This is the API to use when performing Wi-Fi specific operations. To perform operations that pertain to network connectivity at an abstract level, use  ConnectivityManager.

摘要

嵌套类
class WifiManager.MulticastLock Allows an application to receive Wifi Multicast packets. 
class WifiManager.WifiLock Allows an application to keep the Wi-Fi radio awake. 
常量
String ACTION_PICK_WIFI_NETWORK Activity Action: Pick a Wi-Fi network to connect to.
int ERROR_AUTHENTICATING The error code if there was a problem authenticating.
String EXTRA_BSSID The lookup key for a String giving the BSSID of the access point to which we are connected.
String EXTRA_NETWORK_INFO The lookup key for a NetworkInfo object associated with the Wi-Fi network.
String EXTRA_NEW_RSSI The lookup key for an int giving the new RSSI in dBm.
String EXTRA_NEW_STATE The lookup key for a SupplicantState describing the new state Retrieve with getParcelableExtra(String).
String EXTRA_PREVIOUS_WIFI_STATE The previous Wi-Fi state.
String EXTRA_SUPPLICANT_CONNECTED The lookup key for a boolean that indicates whether a connection to the supplicant daemon has been gained or lost.
String EXTRA_SUPPLICANT_ERROR The lookup key for a SupplicantState describing the supplicant error code if any Retrieve with getIntExtra(String, int).
String EXTRA_WIFI_STATE The lookup key for an int that indicates whether Wi-Fi is enabled, disabled, enabling, disabling, or unknown.
String NETWORK_IDS_CHANGED_ACTION The network IDs of the configured networks could have changed.
String NETWORK_STATE_CHANGED_ACTION Broadcast intent action indicating that the state of Wi-Fi connectivity has changed.
String RSSI_CHANGED_ACTION The RSSI (signal strength) has changed.
String SCAN_RESULTS_AVAILABLE_ACTION An access point scan has completed, and results are available from the supplicant.
String SUPPLICANT_CONNECTION_CHANGE_ACTION Broadcast intent action indicating that a connection to the supplicant has been established (and it is now possible to perform Wi-Fi operations) or the connection to the supplicant has been lost.
String SUPPLICANT_STATE_CHANGED_ACTION Broadcast intent action indicating that the state of establishing a connection to an access point has changed.One extra provides the new SupplicantState.
int WIFI_MODE_FULL In this Wi-Fi lock mode, Wi-Fi will be kept active, and will behave normally, i.e., it will attempt to automatically establish a connection to a remembered access point that is within range, and will do periodic scans if there are remembered access points but none are in range.
int WIFI_MODE_SCAN_ONLY In this Wi-Fi lock mode, Wi-Fi will be kept active, but the only operation that will be supported is initiation of scans, and the subsequent reporting of scan results.
String WIFI_STATE_CHANGED_ACTION Broadcast intent action indicating that Wi-Fi has been enabled, disabled, enabling, disabling, or unknown.
int WIFI_STATE_DISABLED Wi-Fi is disabled.
int WIFI_STATE_DISABLING Wi-Fi is currently being disabled.
int WIFI_STATE_ENABLED Wi-Fi is enabled.
int WIFI_STATE_ENABLING Wi-Fi is currently being enabled.
int WIFI_STATE_UNKNOWN Wi-Fi is in an unknown state.
公有方法
int addNetwork( WifiConfiguration config)
Add a new network description to the set of configured networks.
static int calculateSignalLevel(int rssi, int numLevels)
Calculates the level of the signal.
static int compareSignalLevel(int rssiA, int rssiB)
Compares two signal strengths.
WifiManager.MulticastLock createMulticastLock( String tag)
Create a new MulticastLock
WifiManager.WifiLock createWifiLock(int lockType,  String tag)
Creates a new WifiLock.
WifiManager.WifiLock createWifiLock( String tag)
Creates a new WifiLock.
boolean disableNetwork(int netId)
Disable a configured network.
boolean disconnect()
Disassociate from the currently active access point.
boolean enableNetwork(int netId, boolean disableOthers)
Allow a previously configured network to be associated with.
List< WifiConfiguration> getConfiguredNetworks()
Return a list of all the networks configured in the supplicant.
WifiInfo getConnectionInfo()
Return dynamic information about the current Wi-Fi connection, if any is active.
DhcpInfo getDhcpInfo()
Return the DHCP-assigned addresses from the last successful DHCP request, if any.
List< ScanResult> getScanResults()
Return the results of the latest access point scan.
int getWifiState()
Gets the Wi-Fi enabled state.
boolean isWifiEnabled()
Return whether Wi-Fi is enabled or disabled.
boolean pingSupplicant()
Check that the supplicant daemon is responding to requests.
boolean reassociate()
Reconnect to the currently active access point, even if we are already connected.
boolean reconnect()
Reconnect to the currently active access point, if we are currently disconnected.
boolean removeNetwork(int netId)
Remove the specified network from the list of configured networks.
boolean saveConfiguration()
Tell the supplicant to persist the current list of configured networks.
boolean setWifiEnabled(boolean enabled)
Enable or disable Wi-Fi.
boolean startScan()
Request a scan for access points.
int updateNetwork( WifiConfiguration config)
Update the network description of an existing configured network.
[展开]
继承的方法
 来自 class java.lang.Object

常量

public static final String ACTION_PICK_WIFI_NETWORK
引入自: API 级别1

Activity Action: Pick a Wi-Fi network to connect to.

Input: Nothing.

Output: Nothing.

常量值: "android.net.wifi.PICK_WIFI_NETWORK"
public static final int ERROR_AUTHENTICATING
引入自: API 级别1

The error code if there was a problem authenticating.

常量值: 1 (0x00000001)
public static final String EXTRA_BSSID
引入自: API 级别1

The lookup key for a String giving the BSSID of the access point to which we are connected. Only present when the new state is CONNECTED. Retrieve with getStringExtra(String).

常量值: "bssid"
public static final String EXTRA_NETWORK_INFO
引入自: API 级别1

The lookup key for a NetworkInfo object associated with the Wi-Fi network. Retrieve with getParcelableExtra(String).

常量值: "networkInfo"
public static final String EXTRA_NEW_RSSI
引入自: API 级别1

The lookup key for an int giving the new RSSI in dBm.

常量值: "newRssi"
public static final String EXTRA_NEW_STATE
引入自: API 级别1

The lookup key for a SupplicantState describing the new state Retrieve with getParcelableExtra(String).

常量值: "newState"
public static final String EXTRA_PREVIOUS_WIFI_STATE
引入自: API 级别1

The previous Wi-Fi state.

常量值: "previous_wifi_state"
public static final String EXTRA_SUPPLICANT_CONNECTED
引入自: API 级别1

The lookup key for a boolean that indicates whether a connection to the supplicant daemon has been gained or lost. true means a connection now exists. Retrieve it with getBooleanExtra(String, boolean).

常量值: "connected"
public static final String EXTRA_SUPPLICANT_ERROR
引入自: API 级别1

The lookup key for a SupplicantState describing the supplicant error code if any Retrieve with getIntExtra(String, int).

常量值: "supplicantError"
public static final String EXTRA_WIFI_STATE
引入自: API 级别1

The lookup key for an int that indicates whether Wi-Fi is enabled, disabled, enabling, disabling, or unknown. Retrieve it with getIntExtra(String, int).

常量值: "wifi_state"
public static final String NETWORK_IDS_CHANGED_ACTION
引入自: API 级别1

The network IDs of the configured networks could have changed.

常量值: "android.net.wifi.NETWORK_IDS_CHANGED"
public static final String NETWORK_STATE_CHANGED_ACTION
引入自: API 级别1

Broadcast intent action indicating that the state of Wi-Fi connectivity has changed. One extra provides the new state in the form of a NetworkInfo object. If the new state is CONNECTED, a second extra may provide the BSSID of the access point, as a String.

常量值: "android.net.wifi.STATE_CHANGE"
public static final String RSSI_CHANGED_ACTION
引入自: API 级别1

The RSSI (signal strength) has changed.

常量值: "android.net.wifi.RSSI_CHANGED"
public static final String SCAN_RESULTS_AVAILABLE_ACTION
引入自: API 级别1

An access point scan has completed, and results are available from the supplicant. Call getScanResults() to obtain the results.

常量值: "android.net.wifi.SCAN_RESULTS"
public static final String SUPPLICANT_CONNECTION_CHANGE_ACTION
引入自: API 级别1

Broadcast intent action indicating that a connection to the supplicant has been established (and it is now possible to perform Wi-Fi operations) or the connection to the supplicant has been lost. One extra provides the connection state as a boolean, where true means CONNECTED.

常量值: "android.net.wifi.supplicant.CONNECTION_CHANGE"
public static final String SUPPLICANT_STATE_CHANGED_ACTION
引入自: API 级别1

Broadcast intent action indicating that the state of establishing a connection to an access point has changed.One extra provides the new SupplicantState. Note that the supplicant state is Wi-Fi specific, and is not generally the most useful thing to look at if you are just interested in the overall state of connectivity.

常量值: "android.net.wifi.supplicant.STATE_CHANGE"
public static final int WIFI_MODE_FULL
引入自: API 级别3

In this Wi-Fi lock mode, Wi-Fi will be kept active, and will behave normally, i.e., it will attempt to automatically establish a connection to a remembered access point that is within range, and will do periodic scans if there are remembered access points but none are in range.

常量值: 1 (0x00000001)
public static final int WIFI_MODE_SCAN_ONLY
引入自: API 级别3

In this Wi-Fi lock mode, Wi-Fi will be kept active, but the only operation that will be supported is initiation of scans, and the subsequent reporting of scan results. No attempts will be made to automatically connect to remembered access points, nor will periodic scans be automatically performed looking for remembered access points. Scans must be explicitly requested by an application in this mode.

常量值: 2 (0x00000002)
public static final String WIFI_STATE_CHANGED_ACTION
引入自: API 级别1

Broadcast intent action indicating that Wi-Fi has been enabled, disabled, enabling, disabling, or unknown. One extra provides this state as an int. Another extra provides the previous state, if available.

常量值: "android.net.wifi.WIFI_STATE_CHANGED"
public static final int WIFI_STATE_DISABLED
引入自: API 级别1

Wi-Fi is disabled.

常量值: 1 (0x00000001)
public static final int WIFI_STATE_DISABLING
引入自: API 级别1

Wi-Fi is currently being disabled. The state will change to WIFI_STATE_DISABLED if it finishes successfully.

常量值: 0 (0x00000000)
public static final int WIFI_STATE_ENABLED
引入自: API 级别1

Wi-Fi is enabled.

常量值: 3 (0x00000003)
public static final int WIFI_STATE_ENABLING
引入自: API 级别1

Wi-Fi is currently being enabled. The state will change to WIFI_STATE_ENABLED if it finishes successfully.

常量值: 2 (0x00000002)
public static final int WIFI_STATE_UNKNOWN
引入自: API 级别1

Wi-Fi is in an unknown state. This state will occur when an error happens while enabling or disabling.

常量值: 4 (0x00000004)

公有方法

public int addNetwork (WifiConfiguration config)
引入自: API 级别1

Add a new network description to the set of configured networks. The networkId field of the supplied configuration object is ignored.

The new network will be marked DISABLED by default. To enable it, called enableNetwork(int, boolean).

参数
configthe set of variables that describe the configuration, contained in a WifiConfiguration object.
返回值
  • the ID of the newly created network description. This is used in other operations to specified the network to be acted upon. Returns -1 on failure.
public static int calculateSignalLevel (int rssi, int numLevels)
引入自: API 级别1

Calculates the level of the signal. This should be used any time a signal is being shown.

参数
rssiThe power of the signal measured in RSSI.
numLevelsThe number of levels to consider in the calculated level.
返回值
  • A level of the signal, given in the range of 0 to numLevels-1 (both inclusive).
public static int compareSignalLevel (int rssiA, int rssiB)
引入自: API 级别1

Compares two signal strengths.

参数
rssiAThe power of the first signal measured in RSSI.
rssiBThe power of the second signal measured in RSSI.
返回值
  • Returns <0 if the first signal is weaker than the second signal, 0 if the two signals have the same strength, and >0 if the first signal is stronger than the second signal.
public WifiManager.MulticastLock createMulticastLock (String tag)
引入自: API 级别4

Create a new MulticastLock

参数
taga tag for the MulticastLock to identify it in debugging messages. This string is never shown to the user under normal conditions, but should be descriptive enough to identify your application and the specific MulticastLock within it, if it holds multiple MulticastLocks.
返回值
  • a new, unacquired MulticastLock with the given tag.
public WifiManager.WifiLock createWifiLock (int lockType, String tag)
引入自: API 级别3

Creates a new WifiLock.

参数
lockTypethe type of lock to create. See WIFI_MODE_FULL, and WIFI_MODE_SCAN_ONLY for descriptions of the types of Wi-Fi locks.
taga tag for the WifiLock to identify it in debugging messages. This string is never shown to the user under normal conditions, but should be descriptive enough to identify your application and the specific WifiLock within it, if it holds multiple WifiLocks.
返回值
  • a new, unacquired WifiLock with the given tag.
public WifiManager.WifiLock createWifiLock (String tag)
引入自: API 级别1

Creates a new WifiLock.

参数
taga tag for the WifiLock to identify it in debugging messages. This string is never shown to the user under normal conditions, but should be descriptive enough to identify your application and the specific WifiLock within it, if it holds multiple WifiLocks.
返回值
  • a new, unacquired WifiLock with the given tag.
public boolean disableNetwork (int netId)
引入自: API 级别1

Disable a configured network. The specified network will not be a candidate for associating. This may result in the asynchronous delivery of state change events.

参数
netIdthe ID of the network as returned by addNetwork(WifiConfiguration).
返回值
  • true if the operation succeeded
public boolean disconnect ()
引入自: API 级别1

Disassociate from the currently active access point. This may result in the asynchronous delivery of state change events.

返回值
  • true if the operation succeeded
public boolean enableNetwork (int netId, boolean disableOthers)
引入自: API 级别1

Allow a previously configured network to be associated with. If disableOthers is true, then all other configured networks are disabled, and an attempt to connect to the selected network is initiated. This may result in the asynchronous delivery of state change events.

参数
netIdthe ID of the network in the list of configured networks
disableOthersif true, disable all other networks. The way to select a particular network to connect to is specify true for this parameter.
返回值
  • true if the operation succeeded
public List<WifiConfigurationgetConfiguredNetworks ()
引入自: API 级别1

Return a list of all the networks configured in the supplicant. Not all fields of WifiConfiguration are returned. Only the following fields are filled in:

  • networkId
  • SSID
  • BSSID
  • priority
  • allowedProtocols
  • allowedKeyManagement
  • allowedAuthAlgorithms
  • allowedPairwiseCiphers
  • allowedGroupCiphers

返回值
  • a list of network configurations in the form of a list of WifiConfiguration objects.
public WifiInfo getConnectionInfo ()
引入自: API 级别1

Return dynamic information about the current Wi-Fi connection, if any is active.

返回值
  • the Wi-Fi information, contained in WifiInfo.
public DhcpInfo getDhcpInfo ()
引入自: API 级别1

Return the DHCP-assigned addresses from the last successful DHCP request, if any.

返回值
  • the DHCP information
public List<ScanResultgetScanResults ()
引入自: API 级别1

Return the results of the latest access point scan.

返回值
  • the list of access points found in the most recent scan.
public int getWifiState ()
引入自: API 级别1
public boolean isWifiEnabled ()
引入自: API 级别1

Return whether Wi-Fi is enabled or disabled.

返回值
  • true if Wi-Fi is enabled
public boolean pingSupplicant ()
引入自: API 级别1

Check that the supplicant daemon is responding to requests.

返回值
  • true if we were able to communicate with the supplicant and it returned the expected response to the PING message.
public boolean reassociate ()
引入自: API 级别1

Reconnect to the currently active access point, even if we are already connected. This may result in the asynchronous delivery of state change events.

返回值
  • true if the operation succeeded
public boolean reconnect ()
引入自: API 级别1

Reconnect to the currently active access point, if we are currently disconnected. This may result in the asynchronous delivery of state change events.

返回值
  • true if the operation succeeded
public boolean removeNetwork (int netId)
引入自: API 级别1

Remove the specified network from the list of configured networks. This may result in the asynchronous delivery of state change events.

参数
netIdthe integer that identifies the network configuration to the supplicant
返回值
  • true if the operation succeeded
public boolean saveConfiguration ()
引入自: API 级别1

Tell the supplicant to persist the current list of configured networks.

Note: It is possible for this method to change the network IDs of existing networks. You should assume the network IDs can be different after calling this method.

返回值
  • true if the operation succeeded
public boolean setWifiEnabled (boolean enabled)
引入自: API 级别1

Enable or disable Wi-Fi.

参数
enabledtrue to enable, false to disable.
返回值
  • true if the operation succeeds (or if the existing state is the same as the requested state).
public boolean startScan ()
引入自: API 级别1

Request a scan for access points. Returns immediately. The availability of the results is made known later by means of an asynchronous event sent on completion of the scan.

返回值
  • true if the operation succeeded, i.e., the scan was initiated
public int updateNetwork (WifiConfiguration config)
引入自: API 级别1

Update the network description of an existing configured network.

参数
configthe set of variables that describe the configuration, contained in a WifiConfiguration object. It may be sparse, so that only the items that are being changed are non-null. The networkId field must be set to the ID of the existing network being updated.
返回值
  • Returns the networkId of the supplied WifiConfiguration on success. 
    Returns -1 on failure, including when the networkId field of the WifiConfiguration does not refer to an existing network.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Qt中提供了一个名为QWifiManager来管理WiFi连接。这个可以用来扫描可用的WiFi网络、连接到WiFi网络、断开WiFi连接等。下面是一个简单的使用QWifiManager连接WiFi网络的示例代码: ```cpp #include <QObject> #include <QWifiManager> class MyWiFiManager : public QObject { Q_OBJECT public: explicit MyWiFiManager(QObject *parent = nullptr); public slots: void scanWifi(); void connectToWifi(const QString &ssid, const QString &password); private: QWifiManager *m_wifiManager; }; MyWiFiManager::MyWiFiManager(QObject *parent) : QObject(parent) { m_wifiManager = new QWifiManager(this); } void MyWiFiManager::scanWifi() { QList<QWifiNetwork> networks = m_wifiManager->getNetworks(); foreach (QWifiNetwork network, networks) { qDebug() << "SSID: " << network.ssid(); qDebug() << "Signal strength: " << network.signalStrength(); qDebug() << "Security type: " << network.securityType(); } } void MyWiFiManager::connectToWifi(const QString &ssid, const QString &password) { m_wifiManager->connect(ssid, password); } ``` 在上面的例子中,我们创建了一个名为MyWiFiManager,并在其中定义了两个槽函数:scanWifi和connectToWifi。scanWifi函数用于扫描可用的WiFi网络并输出它们的SSID、信号强度和安全型等信息。connectToWifi函数用于连接到指定的WiFi网络,需要提供WiFi网络的SSID和密码。 在构造函数中,我们创建了一个QWifiManager实例并将其父对象设置为当前对象。这样,在当前对象销毁时,QWifiManager实例也会被自动销毁。 要使用这个,需要在.pro文件中添加Qt的网络模块: ```qmake QT += network ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值