StreetPass

码农软件 · 软件分类 · 手机相关软件 · 2019-05-11 06:29:08

软件介绍

StreetPass,最初是想模拟任天堂NDS掌机中的StreetPass开发的(但未完成,大体框架已可行)。适用于记录每天在街上偶遇的纸妹Or帅锅的信息。

原理是想采用Wifi hot技术,由此可以在搜索到附近的人,并互相间收发信息。也许可以从一定程度上解决当今的剩男剩女腼腆却内骚十足的矛盾:)
但是由于时间有限未完成整个项目,打算暂时先把这个项目搁置,如果有需要以后会再开启。
目前实现的功能:

1.通过Checkbox来设定(保存生效)是扮演Server还是Client,并由此决定wifi热点开放着与参与者

2.无线连接成功后,自动加入到UDP多播组,地址为239.255.8.0

3.每次开启客户端都会重连一次wifi,连接成功则自动发送信息给server(目前仅支持Client发送给Server)

4.通过点击上方的邮件图标进入【消息列表】,可以看到客户端发送的信息

5.手机启动自动后台运行服务

6.采用闹铃模式周期性自动唤醒服务

关键代码

//通过JAVA的反射技术,开启Android的无线热点
 
...
 
Method method = wifiManager.getClass().getMethod("setWifiApEnabled",WifiConfiguration.class, boolean.class);
 WifiConfiguration netConfig = new WifiConfiguration(); //热点的配置类
 netConfig.SSID = Constant.SSID; //wifi热点名字
 netConfig.allowedAuthAlgorithms.set(WifiConfiguration.AuthAlgorithm.OPEN);
 netConfig.allowedProtocols.set(WifiConfiguration.Protocol.RSN);
 netConfig.allowedProtocols.set(WifiConfiguration.Protocol.WPA);
 netConfig.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_PSK);
 netConfig.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.CCMP);
 netConfig.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.TKIP);
 netConfig.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.CCMP);
 netConfig.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.TKIP);
 netConfig.preSharedKey = Constant.SSID_Key; //密码
 method.invoke(wifiManager, netConfig, true);
 
...
 
//查找无线网接口wlan0,并加入到指定多播组及端口
 
...
 
Enumeration enumeration = NetworkInterface.getNetworkInterfaces();
 NetworkInterface wlan = null;
 while (enumeration.hasMoreElements()) {
    wlan = enumeration.nextElement();
    if (wlan.getName().contains("wlan0")) {
       group=InetAddress.getByName(address);
       multSocket = new MulticastSocket(port);
       multSocket.setLoopbackMode(true);
       multSocket.setTimeToLive(1); //多点广播套接字发送数据报范围为本地网络。
       multSocket.joinGroup(new InetSocketAddress(group, port),wlan); //加入广播组,加入group后,socket发送的数据报,可以被加入到group中的成员接收到.此处必须指定网络接口
       return;
    }
 }

截图

由于未完成,目前暂未发布到GitHub,所有感兴趣的可以访问此页

打包源代码中有3个txt文件说明,由于第一次做开源软件不太懂,还望见谅。欢迎互相讨论、学习 :)

本文地址:https://codercto.com/soft/d/5478.html

嵌入式Linux应用开发完全手册

嵌入式Linux应用开发完全手册

韦东山 主编 / 人民邮电出版社 / 2008-8 / 69.00元

本书全部实例代码及相关工具。 基于ARM 9+Linux 206平台,从基础讲起,引导读者快速入门,实例丰富,可直接应用于工程实践。 本书全面介绍了嵌入式Linux系统开发过程中,从底层系统支持到上层GUI应用的方方面面,内容涵盖Linux操作系统的安装及相关工具的使用、配置,嵌入式编程所需要的基础知识(交叉编译工具的选项设置、Makefile语法、ARM汇编指令等),硬件部件的使用及......一起来看看 《嵌入式Linux应用开发完全手册》 这本书的介绍吧!

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具