是否可以使用wifi API在Android中编写应用程序,该API将充当热点(因此授予对wifi客户端的网络访问权限),同时仍允许本地wifi设备连接到另一个WiFi网络?
我测试过的是禁用本地Wifi连接以创建热点。
答案 0 :(得分:11)
我几个月后在这里发帖,所以想要在Android设备上实现此功能的人可能会有所帮助。
有一种方法可以让一个无线芯片在混合模式下工作,同时启用站模式(STA)和接入点模式(AP)。
为此,我用multi-role
无线驱动程序替换了芯片的无线驱动程序。幸运的是,我的芯片支持这种模式,但并非每个无线芯片都支持这种模式。我的芯片是基于TI的芯片(wl1271),支持多角色,但以前的驱动程序不支持。
一旦我获得了这个新驱动程序,我就不得不重新编译它和我的内核,以获得.ko
无线驱动程序以及相关的mac80211
和cfg80211
模块(提供生成了新驱动程序所需的API。最后一步是使用TI提供的自定义修补版本升级wpa_supplicant
和hostapd
。
同样,对于仅对wl1271
感兴趣的人,这里是我使用的相应驱动程序/工具,并报告了 Android 4.0.4 ICS :
https://github.com/TI-OpenLink/hostap/tree/ol_R5.SP3.01
https://github.com/TI-OpenLink/iw/tree/ol_R5.SP3.01
https://github.com/TI-OpenLink/ti-utils/tree/ol_R5.SP3.01
https://github.com/TI-OpenLink/wl12xx_target_scripts/tree/ol_R5.SP3.01/sta
https://github.com/TI-OpenLink/compat/tree/ol_R5.SP3.01/
https://github.com/TI-OpenLink/compat-wireless/tree/ol_R5.SP3.01/
如果您的无线芯片有多角色驱动程序,那么可能需要找出您将使用的wpa_supplicant和hostapd的版本或补丁,并编译/试用它们。
在流程结束时,我可以访问两个网络接口(wlan0和wlan1),并且可以在wlan1和wlan1上的hostapd上启动wpa_supplicant。