StreetPass,最初是想模拟任天堂NDS掌机中的StreetPass开发的(但未完成,大体框架已可行)。适用于记录每天在街上偶遇的纸妹Or帅锅的信息。
原理是想采用Wifihot技术,由此可以在搜索到附近的人,并互相间收发信息。也许可以从一定程度上解决当今的剩男剩女腼腆却内骚十足的矛盾:)但是由于时间有限未完成整个项目,打算暂时先把这个项目搁置,如果有需要以后会再开启。目前实现的功能:
1.通过Checkbox来设定(保存生效)是扮演Server还是Cliet,并由此决定wifi热点开放着与参与者
2.无线连接成功后,自动加入到UDP多播组,地址为239.255.8.0
3.每次开启客户端都会重连一次wifi,连接成功则自动发送信息给server(目前仅支持Cliet发送给Server)
4.通过点击上方的邮件图标进入【消息列表】,可以看到客户端发送的信息
5.手机启动自动后台运行服务
6.采用闹铃模式周期性自动唤醒服务
关键代码
//通过JAVA的反射技术,开启Adroid的无线热点...Methodmethod=wifiMaager.getClass().getMethod("setWifiApEabled",WifiCofiguratio.class,boolea.class);WifiCofiguratioetCofig=ewWifiCofiguratio();//热点的配置类etCofig.SSID=Costat.SSID;//wifi热点名字etCofig.allowedAuthAlgorithms.set(WifiCofiguratio.AuthAlgorithm.OPEN);etCofig.allowedProtocols.set(WifiCofiguratio.Protocol.RSN);etCofig.allowedProtocols.set(WifiCofiguratio.Protocol.WPA);etCofig.allowedKeyMaagemet.set(WifiCofiguratio.KeyMgmt.WPA_PSK);etCofig.allowedPairwiseCiphers.set(WifiCofiguratio.PairwiseCipher.CCMP);etCofig.allowedPairwiseCiphers.set(WifiCofiguratio.PairwiseCipher.TKIP);etCofig.allowedGroupCiphers.set(WifiCofiguratio.GroupCipher.CCMP);etCofig.allowedGroupCiphers.set(WifiCofiguratio.GroupCipher.TKIP);etCofig.preSharedKey=Costat.SSID_Key;//密码method.ivoke(wifiMaager,etCofig,true);...//查找无线网接口wla0,并加入到指定多播组及端口...Eumeratioeumeratio=NetworkIterface.getNetworkIterfaces();NetworkIterfacewla=ull;while(eumeratio.hasMoreElemets()){wla=eumeratio.extElemet();if(wla.getName().cotais("wla0")){group=IetAddress.getByName(address);multSocket=ewMulticastSocket(port);multSocket.setLoopbackMode(true);multSocket.setTimeToLive(1);//多点广播套接字发送数据报范围为本地网络。multSocket.joiGroup(ewIetSocketAddress(group,port),wla);//加入广播组,加入group后,socket发送的数据报,可以被加入到group中的成员接收到.此处必须指定网络接口retur;}}截图
由于未完成,目前暂未发布到GitHub,所有感兴趣的可以访问此页
打包源代码中有3个txt文件说明,由于第一次做开源软件不太懂,还望见谅。欢迎互相讨论、学习:)










评论