关于ios如何扫描wifi热点,网上一搜一大把,看完之后估计你很崩溃,因为所有的文章,其实都来自一处,转来转去的毫无新意,很多时候也不能解决问题.
这里就说一下 我在做扫描时遇到的一些问题.(关于怎么扫描,自己google吧)
源码地址: https://github.com/devinshively/wifiAssociate
扫描wifi信息的参考资料:http://code.google.com/p/uwecaugmentedrealityproject/和http://code.google.com/p/iphone-wireless/
源代码参考:http://easymorse-iphone.googlecode.com/svn/trunk/iphone.wifiii/
如何安装ssh: http://osxdaily.com/2011/08/04/ssh-to-iphone/
ipad安装ssh:
1. 在搜索页面搜 cydia(ipad上)
2. 打开cydia, 你会看要有个"用户指南"组,点击第三个"Openssh Access How - To",
3. 弹出一个帮助界面,再点击第一项 " 1 . install the ...."
4. 此时出现包的详细页面,看到右上角的安装按钮了么,安装即可(之后自动重启);
通过ssh与ipad建立连接:
1 . 打开命令窗口(mac 的)
2. 输入 ssh root@ip (例如 ssh root@192.168.1.148)
3 输入密码 (默认的是alpine)
4. 剩下的你就可以远程操作ipad了
我用的是wifiAssociate,在readme里面,作者已经说的很清楚了,wifiConnect43 怎么安装 移除,我这里只是做一些详细的介绍:
程序的导入:
1. 首先按照说明,编译好应用程序:Go to Product > Build For > Archiving,
2. 然后打开程序文件夹( Right click Products > wificonnect43.app and click "Show in Finder" Right click Products > wificonnect43.app and click "Show in Finder"),
这里说一下,按照Build For > Archiving,你的产品名称仍然是红色的,也就是程序不存在,这时候,你只需选中ios模式,build一个debug版本的就好,然后Show in Finder,再切换到Release-iphoneos文件夹下即可(别用Debug-iphoneos文件夹下的哦);
3. 把wifiConnect43.app移动到桌面上
4. 找出你的设备ip(setting里有)
5.在你的mac命令窗口下 执行scp -rp ~/Desktop/wifiConnect43.app root@{deviceIP}:/Applications/ (例如scp -rp ~/Desktop/wifiConnect43.app root@192.168.1.148:/Applications/)
6. 输入密码(默认的是alpine)
7. 重启设备之后.你就看到你的程序了.
关于更新程序:
1 通过ssh连接到ipad(详见 通过ssh与ipad建立连接)
2 执行 "rm -fr /Applications/wifiConnect43.app"
3. 执行 reboot
4 重新安装(详见 程序的导入:)
补充:
你可能会遇到一些问题:
1. CGBitmapContextCreateImage: invalid context 0x0
诸如类似问题是因为你的ios越狱出问题了(这针该程序而言,如果牵涉到绘图什么的,那就另当别论了),这个是不影响的
2. 程序启动即崩溃(dlopen)
打开的路径有两个
libHandle = dlopen("/System/Library/SystemConfiguration/WiFiManager.bundle/WiFiManager",RTLD_LAZY);//ios
iOS 4.3.3 之前的
libHandle = dlopen("/System/Library/SystemConfiguration/IPConfiguration.bundle/IPConfiguration", RTLD_LAZY);// iOS 5 之后的用(ios6的还不知道,没看过)
这个问题要根据你系统的版本,选择不同的路径
3.
apple80211Scan(airportHandle, &scan_networks, parameters);失败,scan_networks总是空的
这是因为你把程序装在用户应用程序文件夹下了
因为扫描热点的api是私有api,只有移动到程序(系统)才能获得超级权限,获取热点信息.所以,你不能直接用xcode将程序导入设备(那一定是装在了
程序(用户)下的);老老实实的用ssh导入吧
4 . 程序安装好后,运行即崩溃
你是不是直接用第三方的程序(iTools)直接将程序拖到"程序(系统)"下了(不能直接拖,为什么,我不太清楚),当然,也有其他安装方式,例如打个deb报什么的,修改安装路径,不过我还没搞懂,你可以参考:
http://www.lt163.com/sj/znpc/iPhone/200905/6032.html
http://blog.csdn.net/linqir/article/details/8812889
http://blog.csdn.net/zkdemon/article/details/8003734
http://blog.csdn.net/leonpengweicn/article/details/8585814