Android WiFi工具类

编程入门 行业动态 更新时间:2024-10-21 10:11:34

Android WiFi<a href=https://www.elefans.com/category/jswz/34/1770073.html style=工具类"/>

Android WiFi工具类

✍️作者简介:沫小北/码农小北(专注于Android、Web、TCP/IP等技术方向)
🐳博客主页:开源中国、稀土掘金、51cto博客、博客园、知乎、简书、慕课网、CSDN
🔔如果文章对您有一定的帮助请👉关注✨、点赞👍、收藏📂、评论💬。
🔥如需转载请参考【转载须知】

当开发基于WiFi的Android应用时,对WiFi连接、管理和配置的操作非常重要。为了简化这些操作,我们可以使用一个名为WifiUtils的工具类。这个工具类提供了一系列方法,可以方便地执行诸如检查WiFi状态、打开或关闭WiFi、扫描可用的WiFi网络、连接到指定的WiFi网络、断开当前连接的WiFi网络等操作。

这个工具类还提供了一些辅助方法,比如获取当前连接的WiFi信息、检查是否有当前可用的WiFi连接、添加WiFi配置到系统、创建WiFi配置、获取是否已经存在的配置、移除同名WiFi、判断扫描结果中是否包含了特定名称的WiFi等。这些方法使得WiFi的管理和配置变得更加便捷和灵活。

使用这个WifiUtils工具类,我们可以轻松地在Android应用中执行WiFi相关的操作,无论是连接到特定的WiFi网络,还是管理已经连接的网络,都可以通过简单的调用实现。这样可以极大地简化了开发过程,提高了应用的可靠性和用户体验。WifiUtils工具类为Android开发人员提供了一个简单而强大的工具,可以在开发过程中更方便地管理和配置WiFi网络。通过使用这个工具类,开发人员可以更专注于应用的核心功能,而无需过多关注底层的WiFi管理细节。

1.WifiUtils 工具类

import android.content.Context;
import android.wifi.WifiConfiguration;
import android.wifi.WifiInfo;
import android.wifi.WifiManager;
import java.util.List;public class WifiUtils {private final WifiManager wifiManager;public WifiUtils(Context context) {wifiManager = (WifiManager) context.getApplicationContext().getSystemService(Context.WIFI_SERVICE);}// 检查WiFi是否可用public boolean isWifiEnabled() {return wifiManager.isWifiEnabled();}// 打开WiFipublic void openWifi() {if (!wifiManager.isWifiEnabled()) {wifiManager.setWifiEnabled(true);}}// 关闭WiFipublic void closeWifi() {if (wifiManager.isWifiEnabled()) {wifiManager.setWifiEnabled(false);}}// 扫描WiFi网络public void scanWifi() {wifiManager.startScan();}// 获取扫描到的WiFi列表public List<WifiConfiguration> getScanResults() {return wifiManager.getConfiguredNetworks();}// 获取当前连接的WiFipublic WifiInfo getConnectedWifiInfo() {return wifiManager.getConnectionInfo();}// 判断是否有当前可用的WiFi连接public boolean isWifiConnected() {WifiInfo wifiInfo = wifiManager.getConnectionInfo();return wifiInfo != null && wifiInfo.getNetworkId() != -1;}// 关闭所有连接public void disconnectWifi() {wifiManager.disconnect();}// 连接WiFipublic void connectToWifi(WifiConfiguration wifiConfig) {int netId = wifiManager.addNetwork(wifiConfig);wifiManager.enableNetwork(netId, true);}// 移除WiFipublic void removeWifi(int netId) {wifiManager.removeNetwork(netId);wifiManager.saveConfiguration();}// 添加WiFi到系统public int addNetwork(WifiConfiguration wifiConfig) {return wifiManager.addNetwork(wifiConfig);}// 创建配置public WifiConfiguration createWifiConfig(String ssid, String password, int type) {WifiConfiguration config = new WifiConfiguration();config.SSID = "\"" + ssid + "\"";switch (type) {case 1:config.hiddenSSID = true;config.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE);break;case 2:config.hiddenSSID = true;config.wepKeys[0] = "\"" + password + "\"";config.allowedAuthAlgorithms.set(WifiConfiguration.AuthAlgorithm.OPEN);config.allowedAuthAlgorithms.set(WifiConfiguration.AuthAlgorithm.SHARED);config.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE);config.wepTxKeyIndex = 0;break;case 3:config.preSharedKey = "\"" + password + "\"";break;}return config;}// 获取是否已经存在的配置public WifiConfiguration isExist(String ssid) {List<WifiConfiguration> existingConfigs = wifiManager.getConfiguredNetworks();for (WifiConfiguration existingConfig : existingConfigs) {if (existingConfig.SSID.equals("\"" + ssid + "\"")) {return existingConfig;}}return null;}// 去除同名WIFIpublic void removeSameWifi(String ssid) {List<WifiConfiguration> existingConfigs = wifiManager.getConfiguredNetworks();for (WifiConfiguration existingConfig : existingConfigs) {if (existingConfig.SSID.equals("\"" + ssid + "\"")) {wifiManager.removeNetwork(existingConfigworkId);}}}// 判断一个扫描结果中,是否包含了某个名称的WIFIpublic boolean isScanResultExist(String ssid, List<WifiConfiguration> existingConfigs) {for (WifiConfiguration existingConfig : existingConfigs) {if (existingConfig.SSID.equals("\"" + ssid + "\"")) {return true;}}return false;}// WiFi安全类型枚举public enum WifiSecurityType {OPEN, WEP, WPA}
}

2.WifiUtils 简单使用实例

import android.os.Bundle;
import android.widget.Toast;
import androidx.appcompat.app.AppCompatActivity;
import java.util.List;public class MainActivity extends AppCompatActivity {WifiUtils wifiUtils;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);wifiUtils = new WifiUtils(this);// 检查WiFi是否可用boolean isWifiEnabled = wifiUtils.isWifiEnabled();// 打开WiFiwifiUtils.openWifi();// 关闭WiFiwifiUtils.closeWifi();// 扫描WiFi网络wifiUtils.scanWifi();// 获取扫描到的WiFi列表List<WifiConfiguration> scanResults = wifiUtils.getScanResults();// 获取当前连接的WiFiwifiUtils.getConnectedWifiInfo();// 判断是否有当前可用的WiFi连接boolean isWifiConnected = wifiUtils.isWifiConnected();// 关闭所有连接wifiUtils.disconnectWifi();// 创建一个新的WiFi配置WifiUtils.WifiConfiguration wifiConfig = wifiUtils.createWifiConfig("YourSSID", "YourPassword", 3);// 连接到WiFiwifiUtils.connectToWifi(wifiConfig);// 移除WiFiwifiUtils.removeWifi(0);// 添加WiFi到系统int netId = wifiUtils.addNetwork(wifiConfig);// 获取是否已经存在的配置WifiUtils.WifiConfiguration existingConfig = wifiUtils.isExist("YourSSID");// 去除同名WIFIwifiUtils.removeSameWifi("YourSSID");// 判断一个扫描结果中,是否包含了某个名称的WIFIboolean isScanResultExist = wifiUtils.isScanResultExist("YourSSID", scanResults);// 在这里根据需要进行其他操作// ...// 示例:显示Toast提示信息Toast.makeText(this, "WiFi Enabled: " + isWifiEnabled, Toast.LENGTH_SHORT).show();}
}

更多推荐

Android WiFi工具类

本文发布于:2023-11-17 14:07:20,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1642536.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:工具   Android   WiFi

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!