0

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

一旦我有一个有效的 WiFi Direct 连接,Android 应用程序是否可以进行任何类型的正常 WiFi 通信?如果是,任何关于如何使用 WiFi Direct 建立正常连接(比如套接字连接)的参考资料(最好是一些示例代码)?我想了解底层过程,例如如何从应用程序内设置 WiFi Direct 连接或如何获取对等设备 IP。

4

1 回答 1

3

是的,这是可以做到的。您可以查看 android 开发者网站了解更多信息。这是相同的简短摘要:

• 设置权限:

必须通过修改将以下权限添加到应用程序

清单文件:CHANGE_WIFI_STATE、ACCESS_WIFI_STATE、

和互联网

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

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

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

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

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

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

• 获取对等体列表:

通过调用 discoverPeers() 方法来启动 Peer 发现

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

同行;并将其传递给数组列表

• 连接到对等点:

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

设备

实例化 WifiP2pConfig 对象;并将数据从

wifip2p设备

这个过程的详细描述可以在这里找到:http: //developer.android.com/training/connect-devices-wireless/wifi-direct.html

我只是试图简化和缩短它。

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

于 2013-10-02T04:56:04.587 回答