WiFi Direct可以进行除文件共享以外的设备到设备通信吗?

时间:2013-10-02 04:23:43

标签: android samsung-mobile wifi-direct

我在三星Galaxy S3智能手机和Galaxy平板电脑上玩WiFi Direct。我可以使用WiFi Direct在两者之间共享图片和文件,可以是Android内置的共享选项或某些第三方应用程序。但我真正感兴趣的是在两者之间以编程方式进行实时通信。

Android应用程序是否可以执行任何类普通WiFi    一旦我有WiFi直连连接通信?如果是,有关如何使用WiFi Direct设置正常连接(比如套接字连接)的任何引用(理想情况下是一些示例代码)?我想了解如何从应用程序内部设置WiFi Direct连接或如何获取对等设备IP等基础流程。

1 个答案:

答案 0 :(得分:3)

是的,可以做到。你可以查看android开发者网站了解更多信息。这是一个简短的概要:

•设置权限:

必须通过修改

将以下权限添加到应用程序中

清单文件:CHANGE_WIFI_STATE,ACCESS_WIFI_STATE,

和INTERNET

•创建广播接收器和P2P管理器

这是通过实例化以下类来完成的:

♠InntFilter():检查连接/对等体的变化。 *任何

连接问题&应在此处检测对等列表中的更改

♠WifiP2pManager():用于管理Wi-Fi点对点连接

♠BroadCastReciever():将接收意图的代码的基类

•获取同伴列表:

通过调用discoverPeers()方法

来启动Peer发现

实施PeerListListener。使用peerList.getDeviceList()获取列表

同龄人;并将其传递给arraylist

•连接到同伴:

创建一个WifiP2pDevice对象,它将存储有关每个p2p的信息

设备

实例化WifiP2pConfig对象;并从

中将数据复制到其中

wifip2pdevice

此过程的详细说明可在此处找到: http://developer.android.com/training/connect-devices-wirelessly/wifi-direct.html

我刚刚尝试简化&缩短它。

超越这个;您可以使用传统的套接字编程(UserDatagramSocket或DatagramSocket)进行通信。其中一个连接设备承担组所有者的角色;并且可以用作主要设备。