我在三星Galaxy S3智能手机和Galaxy平板电脑上玩WiFi Direct。我可以使用WiFi Direct在两者之间共享图片和文件,可以是Android内置的共享选项或某些第三方应用程序。但我真正感兴趣的是在两者之间以编程方式进行实时通信。
Android应用程序是否可以执行任何类普通WiFi 一旦我有WiFi直连连接通信?如果是,有关如何使用WiFi Direct设置正常连接(比如套接字连接)的任何引用(理想情况下是一些示例代码)?我想了解如何从应用程序内部设置WiFi Direct连接或如何获取对等设备IP等基础流程。
答案 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)进行通信。其中一个连接设备承担组所有者的角色;并且可以用作主要设备。