wifi udp android,Android开启热点进行UDP通信中的坑

f18f2d82cd06?tdsourcetag=s_pcqq_aiomsg

1、写在前面:

2018年的第一篇文章,最近在使用UDP协议进行硬件通信,大家都知道UDP协议通信必须在同一个局域网内,但是每个用户家的wifi都是不一样的,硬件设备是无法只值连接到用户家的wifi的。所以为了解决这个问题,提出一个思路,让手机开启热点,然后把硬件链接到手机的热点上。再由手机告诉硬件去链接用户家里的wifi,这样手机和设备就都能连接到用户家的wifi了,就能愉快的进行通信了。那么怎么解决这个问题呢?继续往下看!

2、实现思路:

1、获取当前网络wifi名称

2、开启热点

3、让用户输入wifi密码

4、获取当前网络的广播地址,扫描设备

5、给设备发命令,配置信息

6、把绑定的设备存起来

7、循环4-6直到没有新设备了

8、退出的时候先把设备信息提交

9、关闭热点、打开wifi

3、中间遇到坑:

测试真机: 魅族4 Android5.1 、小米5 Android 7.0

这里就不说怎么进行UDP通信了,只说在中间遇到的问题。两个坑吧,一个是开启热点兼容6.x+,另一个是获取广播地址,兼容wifi环境,以太网环境,无网络环境。

3.1 开启热点,兼容android6.x

这里先提供一个开启/关闭热点的工具类WifiUtils:

import android.net.wifi.WifiConfiguration;

import android.net.wifi.WifiManager;

import java.lang.reflect.InvocationTargetException;

import java.lang.reflect.Method;

/**

* 作者:dell or Xiaomi Li

* 时间: 2018/1/17

* 内容:打开/关闭热点

* 最后修改:

*/

public class WifiUtils {

private final static String APName = "XiaomiLi8";

private final static String APPassword = "5311925577";

/**

* 创建热点

*

* @return

*/

public static boolean CreatHotspot(WifiManager wifiManager) {

boolean request;

//开启热点

if (wifiManager.isWifiEnabled()) {

//如果wifi处于打开状态,则关闭wifi,

wifiManager.setWifiEnabled(false);

}

WifiConfiguration config = new WifiConfiguration();

config.SSID = APName;

config.preSharedKey = APPassword;

config.hiddenSSID = false;//是否隐藏网络

config.allowedAuthAlgorithms.set(WifiConfiguration.AuthAlgorithm.OPEN);//开放系统认证

config.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.TKIP);

config.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_PSK);

config.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.TKIP);

config.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.CCMP);

config.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.CCMP);

config.status = WifiConfiguration.Status.EN

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值