【问题标题】:Can WiFi Direct do device to device communication other than file sharing?除了文件共享之外,WiFi Direct 可以进行设备到设备的通信吗?
【发布时间】:2013-10-02 04:23:43
【问题描述】:

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

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

【问题讨论】:

    标签: android samsung-mobile wifi-direct


    【解决方案1】:

    是的,可以做到。您可以查看 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-wirelessly/wifi-direct.html

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

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

    【讨论】:

    • 感谢您的回答。该链接也非常有用。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多