Android關於WiFi以及WiFi熱點操作
最近做WiFi方面需求,遇到一個問題就是連線掃描的的熱點總是連線不上(不經加密的),程式碼如下:
先獲取一下附近WiFi列表,如果是需要連線的WiFi,就去連線,但是執行了mWifiManager.enableNetwork(wcgID, true);這句話以後並沒有連線上,(手動連線一次以後就可以自動連線了),後來在帖子上看到了答案,正確程式碼如下:/*連線到熱點*/ public void connectToHotpot(){ List<ScanResult> results = mWifiManager.getScanResults(); for (ScanResult result : results){ if (result.SSID.contains("zeus")){ WifiConfiguration wifiConfig = new WifiConfiguration(); wifiConfig.SSID = result.SSID; int wcgID = mWifiManager.addNetwork(wifiConfig); mWifiManager.enableNetwork(wcgID, true); break; } } }
/*連線到熱點*/
public void connectToHotpot(){
List<ScanResult> results = mWifiManager.getScanResults();
for (ScanResult result : results){
if (result.SSID.contains("zeus")){
WifiConfiguration wifiConfig = new WifiConfiguration();
wifiConfig.SSID = result.SSID;
wifiConfig.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE);
wifiConfig.wepTxKeyIndex = 0;
int wcgID = mWifiManager.addNetwork(wifiConfig);
mWifiManager.enableNetwork(wcgID, true);
break;
}
}
}
因為當時建立熱點是不加密的,也就是開放的,這裡enableNetwork的時候也需要去明確一下加密方式為none,原始碼中WiFi的加密方式有以下幾種:
/** WPA is not used; plaintext or static WEP could be used. */
public static final int NONE = 0;
/** WPA pre-shared key (requires {@code preSharedKey} to be specified). */
public static final int WPA_PSK = 1;
/** WPA using EAP authentication. Generally used with an external authentication server. */
public static final int WPA_EAP = 2;
/** IEEE 802.1X using EAP authentication and (optionally) dynamically
* generated WEP keys. */
public static final int IEEE8021X = 3;
/** WPA2 pre-shared key for use with soft access point
* (requires {@code preSharedKey} to be specified).
* @hide
*/
public static final int WPA2_PSK = 4;
下面是建立熱點的程式碼:
/** set WiFi hot spot is enableed */
private boolean setWifiApEnabled(WifiConfiguration configuration, boolean enabled)
{
try
{
if (enabled)
{
mWifiManager.setWifiEnabled(false);
}
Method method = mWifiManager.getClass().getMethod("setWifiApEnabled",
WifiConfiguration.class, boolean.class);
return (Boolean) method.invoke(mWifiManager, configuration, enabled);
}
catch (Exception e)
{
e.printStackTrace();
}
return false;
}
開啟熱點是需要反射的,因為setWifiApEnable方法在原始碼中是@hide的,目前並不對外開放:
/**
* Start AccessPoint mode with the specified
* configuration. If the radio is already running in
* AP mode, update the new configuration
* Note that starting in access point mode disables station
* mode operation
* @param wifiConfig SSID, security and channel details as
* part of WifiConfiguration
* @return {@code true} if the operation succeeds, {@code false} otherwise
*
* @hide Dont open up yet
*/
public boolean setWifiApEnabled(WifiConfiguration wifiConfig, boolean enabled) {
try {
mService.setWifiApEnabled(wifiConfig, enabled);
return true;
} catch (RemoteException e) {
return false;
}
}
但是,好像是有個例外,htc的手機開啟熱點需要特殊處理一下:
/** enable and disable htc WiFi hotspot, 2013-12-31 add special for htc */
private boolean enableHtcHotspot(WifiConfiguration apConfig, boolean enable)
{
Method method = null;
try
{
method = mWifiManager.getClass().getMethod("setWifiApEnabled",
WifiConfiguration.class, Boolean.TYPE);
}
catch (NoSuchMethodException e)
{
e.printStackTrace();
}
// 返回熱點開啟狀態
boolean flag = false;
try
{
flag = (Boolean) method.invoke(mWifiManager, apConfig, enable);
}
catch (IllegalArgumentException e)
{
flag = false;
e.printStackTrace();
}
catch (IllegalAccessException e)
{
flag = false;
e.printStackTrace();
}
catch (InvocationTargetException e)
{
flag = false;
e.printStackTrace();
}
return flag;
}
因為也是初次接觸WiFi方面,所以遇到的問題比較多,需要注意的點:
1、加密方式,連線的時候一定要明確建立熱點時使用的加密方式。
2、注意熱點和WiFi是不能同時開的。
以上是自己遇到的坑,記錄一下,關於WiFi這塊週末研究一下。
相關推薦
Android關於WiFi以及WiFi熱點操作
最近做WiFi方面需求,遇到一個問題就是連線掃描的的熱點總是連線不上(不經加密的),程式碼如下: /*連線到熱點*/ public void connectToHotpot(){ List<ScanResult> results
ubuntu 18.04 設定wifi熱點的手機端接收解決方案以及開機自啟動命令
本人電腦系統 ubuntu 18.04,最近想把電腦做成wifi熱點發布無線訊號,這樣就可以在房間內悠哉悠哉使用無線,主要是增強了訊號,手機上網再不卡噸.基本操作 1.首先輸入ubuntu內建的wifi視窗命令 nm-connection-editor,調出wi
android4.4自己動手連線wifi熱點以及建立wifi熱點
package com.kaka.connector; import java.util.List; import java.util.ArrayList; import android.app.Activity; import android.content.Context; import android.
[Android] 安卓開啟WIFI熱點程式碼 以及6.0開啟熱點報錯/異常解決方法
前提是程式能在4.4 5.1 正常跑哦 6.0多加一個許可權即可 <uses-permission android:name="android.permission.WRITE_
android 生成wifi熱點以及掃描連線wifi
前段時間,有個朋友找我。做個小專案,就是可以生成wifi熱點,然後給二維碼給其他手機連線。那麼這個專案就包括功能有:wifi連線,生成wifi熱點,生成二維碼,掃描二維碼進行wifi連線。裡面用到了zxing這個庫。1,圖片展示2,生成wifi熱點/** * 建立熱點 *
tomcat工作原理以及詳解操作
tomcat的工作原理及安裝mkdir /cdrom#創建掛載目錄mount -o loop tomcat.iso /cdromcp -a /cdrom/* .mkdir -p /ly/wwwtar -xf jdk-7u25-linux-i586.gz tar -xf apache-tomcat-7.0.42
Linux操作系統的安裝以及基本的操作命令詳解
tomcat7 replicat rem 命令詳解 onf 日誌文件 out 橋接 ati 背景:使用的虛擬機安裝Linux 虛擬機使用的是VMware Linux版本:CentOS-6.7-X86 自行下載:CentOS-6.7-x86_64-bin-DVD1.
Windows下常用的100個CMD指令以及常見的操作
ron 前景 計劃任務 net view 次數 將不 -o dos系統 子目錄 gpedit.msc—–組策略 2. sndrec32——-錄音機 3. Nslookup——-IP地址偵測器 ,是一個 監測網絡中 DNS 服務器是否能正確實現域名解析的命令行工具
關於 win10 創建WiFi熱點 問題
reac nbsp 正常 set header inf 啟動 最好 新版 電腦創建WiFi,一般三種辦法: 1. WiFi共享軟件:獵豹wifi、wifi共享精靈、wifi共享大師..... 2. 命令提示符 netsh wlan set hostednetwork mo
關於js 淺拷貝 深拷貝 以及賦值操作。
進行 deep 都是 包括 是否 個數 實現 拷貝 return 最近同事又碰到關於深淺拷貝以及賦值的問題,今天我也研究一下記錄一下,加深一下記憶。 舉一個簡單的例子: var people = { age:10, name:"小華", ar
mongodb安裝配置以及其他基礎操作
mongodb最近公司有個項目要用mongodb,之前沒搞過,今天臨時磨刀上陣,花了半天時間研究,中間有遇到幾個坑寫出來分享給大家。tar -zxf mongodb-linux-x86_64-v3.6.3.tgzcp -pr mongodb-linux-x86_64-v3.6.3 /usr/local/mon
Ubuntu系統如何共享WIFI熱點
共享WIFI熱點 Ubuntu Ubuntu系統WIFI熱點 系統:Ubuntu Mate 17.10問題描述:寢室只有有線網絡,而手機上又想用WiFi,但Ubuntu系統中沒有現成的WiFi共享軟件; 解決方案:選中系統右上角的網絡管理器,在下拉的菜單中選中Edit Connection選項;在
樹莓派創建WiFi熱點
開機 iproute util 使用 TP wifi ins clone reat 將代碼clone到本地 git clone https://github.com/oblique/create_ap cd create_ap make install 安裝依賴的庫 有些源
筆記本設置wifi熱點
network work show 熱點 art code stop lan allow 設置: netsh wlan set hostednetwork mode=allow ssid=賬號 key=密碼 開啟: netsh wlan start hos
Linux系統基礎知識(二)基於linux系統下的用戶管理操作以及文件操作補充
c99 數據塊 upa 系統數據 精確 passwd 列表 sudo 3.4 1、(思考)系統中為什麽要有用戶 1.1用戶??系統中最底層的安全設定,回收(限制)權利。1.2組??共享權利。分為以下兩種:??(1)附加組:由用戶決定的組(每個用戶不一定都有);??(2)初始
查找nginx安裝的路徑以及相關安裝操作命令
cor clas 顯示 操作 nginx安裝 行記錄 font nginx版本號 nginx 1、查看nginx安裝目錄 輸入命令 # ps -ef | grep nginx 返回結果包含安裝目錄 root 2662 1 0 07:12 ?
win10 系統 wifi自動斷開連接 wifi熱點不穩定
允許 穩定 http 一個 輸入 image win10系統 src 更換 我的系統的電腦是win10系統,筆記本 下載了一個wifi共享大師,但是wifi總是自動斷,於是就找了找問題所在 在網上看了許多方案,大多數都是 在 電源管理 把【允許計算機關閉此設
微信獲取AccessToken以及選單的操作
過了兩三天開始寫微信的第二個博文,最近有點瘋狂,將近兩天的時間寫了快20篇博文,以後要將缺失的博文補回來。好了,開始說微信獲取AccessToken以及選單的操作。 獲取AccessToken的原因很簡單,因為呼叫微信的介面都需要AccessToken,每天獲取accessToken的次數是
ESP連結小米手機WiFi熱點測試
20181021w ESP連結小米WiFi熱點測試 print(‘Setting up WIFI…’) wifi.setmode(wifi.STATION) wifi.sta.config(‘jpf’, ‘12345678’) wifi.sta.connect() tmr.a
關於tensorflow中Dataset圖片的批量讀取以及維度的操作
三維的讀取圖片(w, h, c): import tensorflow as tf import glob import os def _parse_function(filename): # print(filename) image_string = tf.re