我使用此代码创建热点,但我不知道如何自动将其他设备连接到此热点..?
public static boolean setHotSpot(String SSID, String passWord) {
Method[] mMethods = wifiManager.getClass().getDeclaredMethods();
for (Method mMethod : mMethods) {
if (mMethod.getName().equals("setWifiApEnabled")) {
WifiConfiguration wifiConfig = new WifiConfiguration();
if (passWord == "") {
wifiConfig.SSID = SSID;
wifiConfig.allowedAuthAlgorithms.set(WifiConfiguration.AuthAlgorithm.OPEN);
wifiConfig.allowedProtocols.set(WifiConfiguration.Protocol.RSN);
wifiConfig.allowedProtocols.set(WifiConfiguration.Protocol.WPA);
wifiConfig.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE);
} else {
wifiConfig.SSID = SSID;
wifiConfig.preSharedKey = passWord;
wifiConfig.hiddenSSID = true;
wifiConfig.status = WifiConfiguration.Status.ENABLED;
wifiConfig.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.TKIP);
wifiConfig.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.CCMP);
wifiConfig.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_PSK);
wifiConfig.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.TKIP);
wifiConfig.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.CCMP);
wifiConfig.allowedProtocols.set(WifiConfiguration.Protocol.RSN);
wifiConfig.allowedProtocols.set(WifiConfiguration.Protocol.WPA);
}
try {
mMethod.invoke(wifiManager, netConfig, true);
wifiManager.saveConfiguration();
return true;
} catch (Exception e) {
}
}
return false;
}
}
答案 0 :(得分:1)
我找到了一个名为SHAREthem的库,它模拟了SHAREit的工作原理。库使用WiFi热点促进P2P文件共享和设备之间的传输。如果接收器没有安装应用程序,它还支持应用程序到Web共享。希望有助于您了解使用WiFi Hotspot进行文件共享所涉及的技术。
实施细节:
HotspotController
HC使用Java Reflection,因为Android上没有可用于启用/禁用热点的API。功能包括: 控制器创建一个带有SSID的OPEN Wifi热点配置,该SSID可以被接收方截获,以识别SHAREthem发送者,包括端口和发送者名称。 禁用共享模式时恢复用户热点配置 提供已连接的WiFi客户端列表。 分享服务器
从NanoHttpd扩展的微型HTTP服务器,使用IP地址作为主机名将发送方数据提供给接收方,并默认使用由用户或系统分配的端口。 分享服务
Android服务,管理SHAREthem服务器的生命周期,并通过停止操作处理前台通知。 UI(活动)
处理共享/接收操作的Android活动
Receiver - 提供用户界面列出可供下载的文件。向Android Download Manager发布下载请求以启动文件下载。 发件人 - 显示IP,端口和放大器连接客户端信息以及每个连接的客户端(接收器)的文件传输状态。