我正在分析Android JellyBean 4.3源代码。我可以在HAL层找到varialbe p2p_supported以支持Wi-Fi Direct。在以下来自wifi_ath.c的代码片段中
int wifi_start_supplicant(int p2p_supported) {
if (p2p_supported)
{
strcpy(supplicant_name, P2P_SUPPLICANT_NAME);
strcpy(supplicant_prop_name, P2P_PROP_NAME); // for P2P support
.......................
}
else {
strcpy(supplicant_name, SUPPLICANT_NAME);
strcpy(supplicant_prop_name, SUPP_PROP_NAME); //for station support
}
宏的值是:
P2P_SUPPLICANT_NAME = p2p_supplicant ,P2P_PROP_NAME= init.svc.p2p_supplicant
SUPPLICANT_NAME=wpa_supplicant ,SUPP_PROP_NAME=init.svc.wpa_supplicant
即使在站点模式下连接,如果部分正在执行,我也无法启动WiFi。在代码中,启用和禁用了p2p_supported变量,以便P2P和Wi-Fi都能顺利运行?
答案 0 :(得分:0)
从Jelly Bean(4.1)开始,您只需打开WiFi即可使用WiFi Direct功能,但两者一起使用取决于您的芯片是否支持它。(请参阅this SO问题)