关于实现Wifi的一些基本方法以及权限
我还是在学习阶段,只提供参考,还得根据具体情况而定
方法的实现有:
public class Activity1 {// 定义wifimanager对象private WifiManager mWifiManager;// 定义WifiInfo对象private WifiInfo mWifiInfo;// 扫描出的网络连接列表private List<ScanResult> mWifiList;// 网络连接列表private List<WifiConfiguration> mWifiConfiguration;WifiLock mWifiLock;public Activity1(Context context) {// 取得wifimanager对象mWifiManager = (WifiManager) context.getSystemService(context.WIFI_SERVICE);// 取得wifiinfo对象mWifiInfo = mWifiManager.getConnectionInfo();}//打开wifipublic void OpenWifi() {if (!mWifiManager.isWifiEnabled()) {mWifiManager.setWifiEnabled(true);}}public void CloseWifi() {if (!mWifiManager.isWifiEnabled()) {mWifiManager.setWifiEnabled(false);}}// 锁定wifilockpublic void AcquireWifiLock() {mWifiLock.acquire();}// 解锁wifilockpublic void ReleaseWifiLock() {if (mWifiLock.isHeld()) {mWifiLock.acquire();}}// 创建一个wifilockpublic void CreatWifiLock() {mWifiLock = mWifiManager.createWifiLock("Test");}// 得到配置好的网络public List<WifiConfiguration> getConfiguration() {return mWifiConfiguration;}public void ConnectConFiguration(int index) {if (index > mWifiConfiguration.size()) {return;}mWifiManager.enableNetwork(mWifiConfiguration.get(index).networkId,true);}public void StartScan() {mWifiManager.startScan();mWifiList = mWifiManager.getScanResults();mWifiConfiguration = mWifiManager.getConfiguredNetworks();}public List<ScanResult> getWifiList() {return mWifiList;}public StringBuilder LookUpScan() {StringBuilder stringBuilder = new StringBuilder();for (int i = 0; i < mWifiList.size(); i++) {stringBuilder.append("Index" + new Integer(i + 1).toString() + ":");stringBuilder.append(mWifiList.get(i).toString());stringBuilder.append("\n");}return stringBuilder;}// 得到MAC地址public String GetMacAddress() {return (mWifiInfo == null) ? "NULL" : mWifiInfo.getMacAddress();}// 得到接入点BSSIDpublic String GetBSSID() {return (mWifiInfo == null) ? "NULL" : mWifiInfo.getBSSID();}// 得到IP地址public int GetIPAddress() {return (mWifiInfo == null) ? 0 : mWifiInfo.getIpAddress();}// 得到连接的IDpublic int GetNetworkId() {return (mWifiInfo == null) ? 0 : mWifiInfo.getNetworkId();}// 得到WifiInfo的所有信息包public String GetWifiId() {return (mWifiInfo == null) ? "NULL" : mWifiInfo.toString();}// 添加一个网络并连接public void AddNetwork(WifiConfiguration wcg) {int wcgID = mWifiManager.addNetwork(wcg);mWifiManager.enableNetwork(wcgID, true);}// 断开指定ID的网络public void DisconnectWifi(int netId) {mWifiManager.disableNetwork(netId);mWifiManager.disconnect();}}
?
使用的权限基本上有:
<!-- ----------得到WIFI访问网络所需要的权限------------------ --> <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" /> <!-- 允许程序改变网络连接状态 --> <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" /> <!-- 允许程序改变Wi-Fi连接状态 --> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <!-- 允许程序访问有关GSM网络信息 --> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <!-- 允许程序访问Wi-Fi网络状态信息 --> <uses-permission android:name="android.permission.ACCESS_CHECKIN_PROPERTIES" /> <!-- 允许读写访问”properties”表在checkin数据库中,改值可以修改上传 --> <uses-permission android:name="android.permission.WAKE_LOCK" /> <!-- 允许使用PowerManager的 WakeLocks保持进程在休眠时从屏幕消失 --> <uses-permission android:name="android.permission.INTERNET" /> <!-- 允许程序打开网络套接字 --> <uses-permission android:name="android.permission.MODIFY_PHONE_STATE" /> <!-- 允许修改话机状态,如电源,人机接口等 -->
?