是否有可能使用wifi API在Android中编写应用程序,它将充当热点(因此授予对wifi客户端的网络访问权限),同时仍然允许本地wifi设备连接到另一个wifi网络?
我测试过的是禁用本地Wifi连接以创建热点 .
几个月后我在这里发帖,所以想要在Android设备上实现这一点的人可能会有所帮助 .
有一种方法可以使一个无线芯片工作在混合模式,同时启用站模式(STA)和接入点模式(AP) .
为此,我用一个 multi-role 无线驱动程序替换了芯片的无线驱动程序 . 幸运的是,我的芯片支持这种模式,但并非每个无线芯片都支持这种模式 . 我的芯片是基于TI的芯片(wl1271),支持多种角色,尽管以前的驱动程序不支持 .
multi-role
一旦我得到这个新的驱动程序,我不得不重新编译它与我的内核,以便生成无线驱动程序的 .ko 和相关的 mac80211 和 cfg80211 模块(提供新驱动程序所需的API) . 最后一步是使用TI提供的自定义修补版本升级 wpa_supplicant 和 hostapd .
.ko
mac80211
cfg80211
wpa_supplicant
hostapd
同样,对于对 wl1271 感兴趣的人,这里只有我使用的相应驱动程序/工具,并报告在Android 4.0.4 ICS上工作:
wl1271
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 .
你所描述的是WDS (Wireless Distribution System) . 我认为这个功能没有在Android wifi API中实现 . 它用于无线AP以启用上游无线链路 .
2 回答
几个月后我在这里发帖,所以想要在Android设备上实现这一点的人可能会有所帮助 .
有一种方法可以使一个无线芯片工作在混合模式,同时启用站模式(STA)和接入点模式(AP) .
为此,我用一个
multi-role
无线驱动程序替换了芯片的无线驱动程序 . 幸运的是,我的芯片支持这种模式,但并非每个无线芯片都支持这种模式 . 我的芯片是基于TI的芯片(wl1271),支持多种角色,尽管以前的驱动程序不支持 .一旦我得到这个新的驱动程序,我不得不重新编译它与我的内核,以便生成无线驱动程序的
.ko
和相关的mac80211
和cfg80211
模块(提供新驱动程序所需的API) . 最后一步是使用TI提供的自定义修补版本升级wpa_supplicant
和hostapd
.同样,对于对
wl1271
感兴趣的人,这里只有我使用的相应驱动程序/工具,并报告在Android 4.0.4 ICS上工作:如果您的无线芯片有多角色驱动程序,那么您可能需要找出您将使用的wpa_supplicant和hostapd的版本或补丁,并编译/尝试它们 .
在这个过程结束时,我可以访问两个网络接口(wlan0和wlan1),并且可以在wlan1和wlan1上的hostapd上启动wpa_supplicant .
你所描述的是WDS (Wireless Distribution System) . 我认为这个功能没有在Android wifi API中实现 . 它用于无线AP以启用上游无线链路 .