在Android平台上,如果在开始启动前去加载一个测试程序,该测试程序的功能是去读取wifi的mac地址,然后显示出来,显示的方式可以使用移植recovery源代码的miniui。
那么读wifi的mac地址无疑便是要初始化,装载wifi驱动后,通过cat /sys/class/net/wlan0/address去获取。
实例程序如下,这里仅仅只获取mac地址,wifi初始化,装载模块的C程序不便提供。
FILE *fstream = NULL;
memset(wifi_mac_address,0,sizeof(wifi_mac_address));
sprintf(cmd,"%s","cat /sys/class/net/wlan0/address");
if(NULL==(fstream=popen(cmd,"r")))
{
fprintf(stderr,"execute command failed: %s",strerror(errno));
ui_print_xy_rgba(X_GO,10,255,0,0,255,"WiFi MAC read[%s]:%s\n",PCBA_FAILED,"ERROR");
return -2;
}
while(NULL!=fgets(wifi_mac_address, sizeof(wifi_mac_address), fstream))
{
printf("%s\n",wifi_mac_address);
ui_print_xy_rgba(X_GO,10,0,255,0,255,"WiFi MAC read[%s]:%s\n",PCBA_SECCESS,wifi_mac_address);
}
pclose(fstream);
close(wifi_mac);
程序实现的逻辑是,通过cat /sys/class/net/wlan0/address获取返回值,存放到wifi_mac_address这个数组里,然后调用UI显示在LCD屏幕上。