原文地址:https://blog.csdn.net/VNanyesheshou/article/details/82316436
DEMO下载:http://www.demodashi.com/demo/13965.html
本文主要说一下,Android通过WiFi直连的方式实现图片双向传输(图片可以传输,也可以把它修改下传输聊天信息了)。
1 WiFi直连概述
WiFi直连也就是WiFi设备点对点连接(WiFi P2P),它允许具有适当硬件的Android 4.0(API级别14)或更高版本的设备通过Wi-Fi直接相互连接,而无需中间接入点。使用这些API,您可以发现并连接到其他设备(前提是每个设备支持Wi-Fi P2P),然后通过比蓝牙连接更长的距离快速连接进行通信。这对于在用户之间共享数据的应用程序很有用,例如多人游戏或照片共享应用程序。
Wi-Fi P2P API包含以下主要部分:
允许您发现,请求和连接到对等的方法在WifiP2pManager类中定义。
允许您通知WifiP2pManager方法调用成功或失败的监听器。调用WifiP2pManager方法时,每个方法都可以接收作为参数传入的特定侦听器。
通知您Wi-Fi P2P框架检测到的特定事件的意图,例如断开的连接或新发现的对等体。
您经常将API的这三个主要组件一起使用。例如,您可以提供WifiP2pManager.ActionListener呼叫discoverPeers(),以便您可以使用ActionListener.onSuccess()和ActionListener.onFailure() 方法通知您。
2 Demo
注意事项:
2.1 搜索不到可用设备
- 确保对端设备处于搜索状态;
- 对端设备异常,可尝试重启WLAN开关,重新搜索。
- 自身设备异常,可尝试重启WLAN开关,重新搜索。
2.2 连接失败
- 确保对端设备没有与其他设备建立WLAN直连连接。
- 确保对端设备接收连接请求。
- 对端设备异常,请尝试重新连接。
3 创建Wi-Fi P2P应用程序
创建Wi-Fi P2P应用程序涉及为您的应用程序创建和注册广播接收器,发现对等体,连接到对等体以及将数据传输到对等体。以下部分描述了如何执行此操作。
3.1 初始设置
1 添加权限
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission androi