一、 WIFI 网卡有哪些状态?
1. WIFI_STATE_DISABLED : WIFI 不能使用,其值是: 1 。
2. WIFI_STATE_DISABLING : WIFI 正在关闭中,由于 WIFI 关闭是需要这一个过程,这个状态就表示 WIFI 正在关闭的过程中,其值是: 0 。
3. WIFI_STATE_ENABLED : WIFI 可以使用,其值是: 3 。
4. WIFI_STATE_ENABLING : WIFI 正在开启中,其道理同 WIFI_STATE_DISABLING,其值是: 2 。
5. WIFI_STATE_UNKNOWN :未知网卡状态,当手机或程序出现了一些错误引起 WIFI 不可用时会是这个状态,其值是: 4 。
二、 操作 WIFI 需要获取的权限
要获取操作 WIFI 的权限,就必须知道 WIFI 到底有哪些权限, WIFI 的主要操作权限有四个:
CHANGE_NETWORK_STATE :允许修改网络状态的权限。
CHANGE_WIFI_STATE :允许修改 WIFI 状态的权限。
ACCESS_NETWORK_STATE :允许访问网络状态的权限。
ACCESS_WIFI_STATE :允许访问 WIFI 状态的权限。
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.sam.wifiTest"
android:versionCode="1"
android:versionName="1.0">
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".firstWifi"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
<uses-sdk android:minSdkVersion="4" />
<!--得到WIFI访问网络所需要的权限 -->
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE"></uses-permission>
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"></uses-permission>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission>
</manifest>
三、 改变 WIFI 的状态
//为按钮绑定监听器
btnBegin.setOnClickListener( new btnBenginListener());
class btnBenginListener implements OnClickListener{
public void onClick(View v) {
// TODO Auto-generated method stub
texWifi.setText("点了开始按钮");
m_wifiManager=(WifiManager)firstWifi.this.getSystemService(Context.WIFI_SERVICE);
m_wifiManager.setWifiEnabled(true);
//显示状态
displayWifiState(m_wifiManager.getWifiState()) ;
}
}
对 WIFI 状态进行操作主要涉及到三个方面:
1. 得到 WifiManager 对象,这个对象是我们操作 WIFI 网卡的根本,无论是改变WIFI 的状态,还是获取 WIFI 的状态,都要通过这个对象。
m_wifiManager=(WifiManager)firstWifi.this.getSystemService(Context.WIFI_SERVICE);
2. 改变 WIFI 网卡状态,涉及到一个 WifiManager 的方法 SetWifiEnabled,通过这个方法的参数设置,可以实现打开或关闭 WIFI : true 表示打开,false 表示关闭。
m_wifiManager.setWifiEnabled(true);
3. 获取 WIFI 网卡的状态,涉及到一个 WifiManager 的方法 getWifiState ,通过这个方法,就可以取得 WIFI 的当前状态,即第一点中所讲的 WIFI 五个状态中的一个。
isplayWifiState(m_wifiManager.getWifiState()) ;