安卓WIFI獲取列表並密碼連接 開發實例
標籤(空格分隔): 未分類
最近在做關於智能控制的app,用到wifi控制,簡單配置並獲取過程 記錄如下:
用WiFi首先要獲取wifi列表 ,然後去連接wifi
和我們手機設置操作相同,首先要確認是否打開wifi開關吧,判斷用wifiManager.isWifiEnabled()方法;
用到幾個權限< 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>我這裏也是邊操作邊記錄,下面準備用dialog的listview來記錄wifi列表。
寫一個點擊事件,打開wifi 獲取列表,彈出dialog顯示列表信息。
我是在fragment中獲取wfiimanger 需要在appca
獲取WiFi列表,
wifiManager.startScan(); //開啓掃描
scanResults = wifiManager.getScanResults();
測試出現返回結果爲空,因爲6.0以6.0以上wifi獲取權限 點擊查看上的權限問題
關於6.0以上權限問題的文章
setWifiEnabled()的方法,打開關閉前,先要判斷wifi的狀態,使用isWifiEnabled()方法。所以6.0版本以上需要打開用戶gps開關,
需要這個權限,然而只有系統app纔有,所以只有手動引導用戶自己打開了。。
才能顯示wifi列表 。。坑widi開關事件裏的代碼:
` boolean bRet = true; // if (!wifiManager.isWifiEnabled()) { // bRet = wifiManager.setWifiEnabled(true); // } Wifiadmin.checkState(getActivity()); Wifiadmin.openWifi(getActivity()); // WifiUtil.openGPS(getActivity()); Wifiadmin.startScan(getActivity()); //開啓掃描 scanResults= Wifiadmin.getWifiList(); final String[] items=new String[scanResults.size()]; // List Toast.makeText(getActivity(),""+items.length,Toast.LENGTH_SHORT).show(); for(int i=0;i