① 有關android內核的wifi驅動api
通過程序來實現wifi的自動連接。
這兩天對android的wifi功能研究了一下。下面共享出自己封裝的WifiConnect類。(這里參考了ZXing開源項目中wifi模塊)
首先,要了解android關於wifi的API.
如果喜歡看English API,這是android關於wifi的API地址:
http://developer.android.com/reference/android/net/wifi/package-summary.html(配置Wifi,還需要設定許可權,android中關於wifi的API文檔中說明了要添加什麼許可權)
如果一看英語就頭疼,這里有關於wifi的api的中文解釋
http://note.sdo.com/u/1500295617/n/prb71~jGAHfpnM0l000bgN
切入正題,這里貼出一個封裝了的類(WifiConnect),在實例化WifiConnect對象時,需要傳入一個WifiManager對象。WifiConnect類向外部提供一個Connect方法,參數是無線的SSID,password,還有加密類型。
[java] view plainprint?② Android Wifi 如何實現:在程序中把SSID和密碼都確定了,點擊連接就連接上指定的wifi
點擊打開設定,
點擊WLAN連接,
點擊添加WLAN。
③ android怎麼實現開機自動啟動wifi熱點
1.新建一個Receiver監聽系統的BOOT_COMPLETE Broadcast,就可以實現開機的監聽 2.啟動WiFi熱點。這個網上一大堆的代碼,大體的思路就是:檢測WiFI是否開啟,如果開啟了,那就不操作。如果沒有開啟,那就調用API開啟它。
④ native.js支持android wifi direct相關API的調用嗎
現在,Android的支持Wi -Fi的直接點對點點對點(P2P)Android系統的供電設備和其他類型的設備,沒有一個熱點或互聯網連接之間的連接。Android框架提供了一套Wi - Fi的P2P的API,允許你去發現和連接到其他設備時,每個設備的Wi -Fi的直接支持,然後溝通跨越距離遠遠長於藍牙連接迅速連接。
android.net.wifi.p2p,一個新的軟體包,包含所有的API執行同行等連接與Wi - Fi。 你需要與主類是WifiP2pManager,您可以調用getSystemService(WIFI_P2P_SERVICE)收購。WifiP2pManager包括API,允許您:
1、您P2P連接的應用程序通過調用initialize
2、探索通過調用附近的設備discoverPeers
開始通過調用P2P連接connect以及一些其他的介面和類是必要的,如:
WifiP2pManager.ActionListener介面,讓您能夠接收的操作時,如發現同行或連接到他們的成功或失敗的回調。
WifiP2pManager.PeerListListener界面,您可以收到有關發現同行的信息。 回調提供了一個WifiP2pDeviceList,您可以從中檢索一個WifiP2pDevice范圍內的每個設備對象和獲取信息,如設備的名稱,地址,設備類型,設備支持的WPS配置。
WifiP2pManager.GroupInfoListener界面,您可以收到一個P2P組信息。 回調提供了一個WifiP2pGroup對象,它提供了所有者,網路名稱和密碼的信息,如組。
WifiP2pManager.ConnectionInfoListener界面,您可以得到當前連接的信息。 回調提供了一個WifiP2pInfo對象,它具有信息,如一個組是否已經形成,誰是該組的所有者。
為了使用的Wi - Fi P2P的API,你的應用程序必須要求以下用戶許可權:
1、ACCESS_WIFI_STATE
2、CHANGE_WIFI_STATE
3、INTERNET (雖然你的應用程序不技術上連接到互聯網,溝通的Wi - Fi標準的Java套接字直接同行需要Internet許可權)。
Android系統還廣播了幾種不同的行動,在特定的Wi - Fi P2P事件:
1、WIFI_P2P_CONNECTION_CHANGED_ACTION :P2P連接狀態發生了變化。這與EXTRA_WIFI_P2P_INFOWifiP2pInfo與EXTRA_NETWORK_INFONetworkInfo對象的對象EXTRA_NETWORK_INFOEXTRA_NETWORK_INFOEXTRA_WIFI_P2P_INFO EXTRA_WIFI_P2P_INFO 。
2、WIFI_P2P_STATE_CHANGED_ACTION :P2P的狀態已經改變之間的啟用和禁用。 它攜帶EXTRA_WIFI_STATE要麼WIFI_P2P_STATE_DISABLED或WIFI_P2P_STATE_ENABLED
WIFI_P2P_PEERS_CHANGED_ACTION等設備的列表已經改變。
3、WIFI_P2P_THIS_DEVICE_CHANGED_ACTION :該設備的細節已經改變。
⑤ android開發中,連接wifi需要使用哪個函數
我也正在搞這個,問題也很多,都還沒解決,這是我在網上查到的方法:
// 添加一個網路並連接
public void AddNetwork(WifiConfiguration wcg) {
int wcgID = mWifiManager.addNetwork(wcg);
mWifiManager.enableNetwork(wcgID, true);
}
但是我有問題就是,首先:ScanResult中獲取的SSID等信息和WifiConfiguration中獲取的SSID信息有什麼不一樣,一個是掃描到的,一個是連接後得到的?這個我不理解。第二:按照上面的連接代碼,只需要得到WifiConfiguration對象就可以了,我通過public List<WifiConfiguration> getConfiguredNetworks ()得到的WifiConfiguration對象就可以拿去連接了?既然我通過這個就能連接,那我拿ScanResult中的信息有什麼用?還有就是,WifiConfiguration對象是在哪個階段能獲取的?啟動Wifi?掃描開始?或者是連接上ap後?我表示很迷茫。第三:怎麼通過代碼設置一台手機為Ap?我找不到相關的方法。第四:假設兩台手機,一台做Ap,一台連接,連接上了,然後數據方面怎麼傳輸?藍牙有個BuletoothSocket和BuletoothServiceSocket,Wifi呢?直接只用JAVA的Socket?
⑥ android開關wifi為什麼都要採用isWifiEnabled()
因為安卓API里只有這方法。
wifi開關代碼:
/**
* 是否開啟 wifi true:開啟 false:關閉
*
* 一定要加入許可權: <uses-permission
* android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission>
* <uses-permission
* android:name="android.permission.CHANGE_WIFI_STATE"></uses-permission>
*
*
* @param isEnable
*/
public void setWifi(boolean isEnable) {
//
if (mWm == null) {
mWm = (WifiManager) this.getSystemService(Context.WIFI_SERVICE);
return;
}
System.out.println("wifi===="+mWm.isWifiEnabled());
if (isEnable) {// 開啟wifi
if (!mWm.isWifiEnabled()) {
mWm.setWifiEnabled(true);
}
} else {
// 關閉 wifi
if (mWm.isWifiEnabled()) {
mWm.setWifiEnabled(false);
}
}
}
⑦ 如何用Delphi XE Android實現手機和wifi串列口模塊通信
uses System.SysUtils,
Androidapi.Helpers,
Androidapi.JNIBridge,
Androidapi.Jni.Net,
Androidapi.JNI.GraphicsContentViewText,
Androidapi.JNI.JavaTypes,
FMX.Helpers.Android;
function GetWIFIIP:string;
var
WFM:JObject;
WifiManager:JWifiManager;
WifiInfo:JWifiInfo;
IP:Integer;
begin
WFM:=TAndroidHelper.Context.getSystemService(TJContext.JavaClass.WIFI_SERVICE);
WifiManager:=TJWifiManager.Wrap((WFM as ILocalObject).GetObjectID);
WifiInfo:=WifiManager.getConnectionInfo;
IP:=WifiInfo.getIpAddress;
Result:=Format('%d.%d.%d.%d',[Lo(IP),Hi(IP),Lo(IP shr 16),IP shr 24]);
end;
//安卓系統WIFI下獲取本機IP