生活随笔
收集整理的這篇文章主要介紹了
android下获取无线wif信号、ssid、MAC等操作类
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
一個android下獲取無線wif信號、ssid、MAC等操作的類。
WifiAdmin.java
package com.afu;import java.util.List;
import android.content.Context;
import android.net.wifi.ScanResult;
import android.net.wifi.WifiConfiguration;
import android.net.wifi.WifiInfo;
import android.net.wifi.WifiManager;
import android.net.wifi.WifiManager.WifiLock;
import android.util.Log;public class WifiAdmin {private final static String TAG = "WifiAdmin";private StringBuffer mStringBuffer = new StringBuffer();private List<ScanResult> listResult;private ScanResult mScanResult;// 定義WifiManager對象private WifiManager mWifiManager;// 定義WifiInfo對象private WifiInfo mWifiInfo;// 網(wǎng)絡(luò)連接列表private List<WifiConfiguration> mWifiConfiguration;// 定義一個WifiLockWifiLock mWifiLock;/*** 構(gòu)造方法*/public WifiAdmin(Context context) {mWifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);mWifiInfo = mWifiManager.getConnectionInfo();}/*** 打開Wifi網(wǎng)卡*/public void openNetCard() {if (!mWifiManager.isWifiEnabled()) {mWifiManager.setWifiEnabled(true);}}/*** 關(guān)閉Wifi網(wǎng)卡*/public void closeNetCard() {if (mWifiManager.isWifiEnabled()) {mWifiManager.setWifiEnabled(false);}}/*** 檢查當(dāng)前Wifi網(wǎng)卡狀態(tài)*/public void checkNetCardState() {if (mWifiManager.getWifiState() == 0) {Log.i(TAG, "網(wǎng)卡正在關(guān)閉");} else if (mWifiManager.getWifiState() == 1) {Log.i(TAG, "網(wǎng)卡已經(jīng)關(guān)閉");} else if (mWifiManager.getWifiState() == 2) {Log.i(TAG, "網(wǎng)卡正在打開");} else if (mWifiManager.getWifiState() == 3) {Log.i(TAG, "網(wǎng)卡已經(jīng)打開");} else {Log.i(TAG, "沒有獲取到狀態(tài)-_-");}}/*** 掃描周邊網(wǎng)絡(luò)*/public void scan() {mWifiManager.startScan();listResult = mWifiManager.getScanResults();if (listResult != null) {Log.i(TAG, "當(dāng)前區(qū)域存在無線網(wǎng)絡(luò),請查看掃描結(jié)果");} else {Log.i(TAG, "當(dāng)前區(qū)域沒有無線網(wǎng)絡(luò)");}}/*** 得到掃描結(jié)果 獲取無線信號列表*/public String getScanResult() {// 每次點擊掃描之前清空上一次的掃描結(jié)果if (mStringBuffer != null) {mStringBuffer = new StringBuffer();}// 開始掃描網(wǎng)絡(luò)scan();listResult = mWifiManager.getScanResults();if (listResult != null) {for (int i = 0; i < listResult.size(); i++) {mScanResult = listResult.get(i);mStringBuffer = mStringBuffer.append("NO.").append(i + 1).append(" :").append(mScanResult.SSID).append("->").append(mScanResult.BSSID).append("->").append(mScanResult.capabilities).append("->").append(mScanResult.frequency).append("->").append(mScanResult.level).append("->").append(mScanResult.describeContents()).append("\n\n");}}Log.i(TAG, mStringBuffer.toString());return mStringBuffer.toString();}/*** 連接指定網(wǎng)絡(luò)*/public void connect() {mWifiInfo = mWifiManager.getConnectionInfo();if (mWifiInfo != null) {Log.d("wifiInfo", mWifiInfo.toString()); Log.d("SSID",mWifiInfo.getSSID()); }}/*** 斷開當(dāng)前連接的網(wǎng)絡(luò)*/public void disconnectWifi() {int netId = getNetworkId();mWifiManager.disableNetwork(netId);mWifiManager.disconnect();mWifiInfo = null;}/*** 檢查當(dāng)前網(wǎng)絡(luò)狀態(tài)** @return String*/public void checkNetWorkState() {if (mWifiInfo != null) {Log.i(TAG, "網(wǎng)絡(luò)正常工作");} else {Log.i(TAG, "網(wǎng)絡(luò)已斷開");}}/*** 得到連接的ID*/public int getNetworkId() {return (mWifiInfo == null) ? 0 : mWifiInfo.getNetworkId();}/*** 得到IP地址*/public int getIPAddress() {return (mWifiInfo == null) ? 0 : mWifiInfo.getIpAddress();}// 鎖定WifiLockpublic void acquireWifiLock() {mWifiLock.acquire();}// 解鎖WifiLockpublic void releaseWifiLock() {// 判斷時候鎖定if (mWifiLock.isHeld()) {mWifiLock.acquire();}}// 創(chuàng)建一個WifiLockpublic void creatWifiLock() {mWifiLock = mWifiManager.createWifiLock("Test");}// 得到配置好的網(wǎng)絡(luò)public List<WifiConfiguration> getConfiguration() {return mWifiConfiguration;}// 指定配置好的網(wǎng)絡(luò)進行連接public void connectConfiguration(int index) {// 索引大于配置好的網(wǎng)絡(luò)索引返回if (index >= mWifiConfiguration.size()) {return;}// 連接配置好的指定ID的網(wǎng)絡(luò)mWifiManager.enableNetwork(mWifiConfiguration.get(index).networkId,true);}// 得到MAC地址public String getMacAddress() {return (mWifiInfo == null) ? "NULL" : mWifiInfo.getMacAddress();}// 得到接入點的BSSIDpublic String getBSSID() {return (mWifiInfo == null) ? "NULL" : mWifiInfo.getBSSID();}// 得到WifiInfo的所有信息包public String getWifiInfo() {return (mWifiInfo == null) ? "NULL" : mWifiInfo.toString();}// 添加一個網(wǎng)絡(luò)并連接public int addNetwork(WifiConfiguration wcg) {int wcgID = mWifiManager.addNetwork(mWifiConfiguration.get(3));mWifiManager.enableNetwork(wcgID, true);return wcgID;}
}
?
調(diào)用方法:
WifiAdmin mWifiAdmin = new WifiAdmin(Main.this);String mScanResult = mWifiAdmin.getScanResult();scanResult.setText(mScanResult);
?
總結(jié)
以上是生活随笔為你收集整理的android下获取无线wif信号、ssid、MAC等操作类的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。