android控制wifi状态
wifi的五种状态
常量名 | 常量值 | 网卡状态 |
WIFI_STATE_DISABLED | 1 | WIFI网卡不可用 |
WIFI_STATE_DISABLING | 0 | WIFI正在关闭 |
WIFI_STATE_ENABLED | 3 | WIFI网卡可用 |
WIFI_STATE_ENABLING | 2 | WIFI网卡正在打开 |
WIFI_STATE_UNKNOWN | 4 | 未知网卡状态 |
public class MainActivity extends Activity { WifiManager mWifiManager = null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } public void onClick(View v) { switch (v.getId()) { case R.id.open_wifi: mWifiManager = (WifiManager)MainActivity.this.getSystemService(Context.WIFI_SERVICE); mWifiManager.setWifiEnabled(true); if(mWifiManager.getWifiState() == 2) { Toast.makeText(MainActivity.this, "当前网卡状态为:WIFI正在打开...", Toast.LENGTH_SHORT).show(); } else if(mWifiManager.getWifiState() == 3) { Toast.makeText(MainActivity.this, "当前网卡状态为:WIFI正常使用", Toast.LENGTH_SHORT).show(); } break; case R.id.close_wifi: mWifiManager = (WifiManager)MainActivity.this.getSystemService(Context.WIFI_SERVICE); mWifiManager.setWifiEnabled(false); if(mWifiManager.getWifiState() == 0) { Toast.makeText(MainActivity.this, "当前网卡状态为:WIFI正在关闭...", Toast.LENGTH_SHORT).show(); } else if(mWifiManager.getWifiState() == 1) { Toast.makeText(MainActivity.this, "当前网卡状态为:WIFI已关闭", Toast.LENGTH_SHORT).show(); } break; case R.id.wifi_state: mWifiManager = (WifiManager)MainActivity.this.getSystemService(Context.WIFI_SERVICE); if(mWifiManager.getWifiState() == 0) { Toast.makeText(MainActivity.this, "当前网卡状态为:WIFI正在关闭...", Toast.LENGTH_SHORT).show(); } else if(mWifiManager.getWifiState() == 1) { Toast.makeText(MainActivity.this, "当前网卡状态为:WIFI已关闭", Toast.LENGTH_SHORT).show(); } else if(mWifiManager.getWifiState() == 2) { Toast.makeText(MainActivity.this, "当前网卡状态为:WIFI正在打开...", Toast.LENGTH_SHORT).show(); } else if(mWifiManager.getWifiState() == 3) { Toast.makeText(MainActivity.this, "当前网卡状态为:WIFI正常使用", Toast.LENGTH_SHORT).show(); } else if(mWifiManager.getWifiState() == 4) { Toast.makeText(MainActivity.this, "当前网卡状态为:WIFI状态未知", Toast.LENGTH_SHORT).show(); } break; default: break; } } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.activity_main, menu); return true; } }
xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context=".MainActivity" > <Button android:id="@+id/open_wifi" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="打开WIFI" android:onClick="onClick" /> <Button android:id="@+id/close_wifi" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="关闭WIFI" android:onClick="onClick"/> <Button android:id="@+id/wifi_state" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="WIFI状态" android:onClick="onClick"/> </LinearLayout>
添加权限:
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" /> <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> CHANGE_NETWORK_STATE :允许修改网络状态的权限。 CHANGE_WIFI_STATE :允许修改 WIFI 状态的权限。 ACCESS_NETWORK_STATE :允许访问网络状态的权限。 ACCESS_WIFI_STATE :允许访问 WIFI 状态的权限。
移动开发qq群:59516399
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构