一、 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>
//为按钮绑定监听器 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()) ; } }
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()) ;