在安卓系统中使用Wi-Fi进行点对点通信

6
我想通过Wi-Fi从一个Android设备发送消息到另一个设备。我有两个Android设备,两者都启用了便携式Wi-Fi热点。我开发了一个应用程序,显示可用的Wi-Fi设备列表,并且这两个设备都列出了彼此。现在,我想连接两个设备并从一个设备发送文本到另一个设备。我知道Wi-Fi发射器会传输一个信标帧,其中包含SSID、BSSID等信息。我该怎么做?我需要执行套接字操作,但我没有IP地址。

2
我已经进行了快速的谷歌搜索,但我找到的所有链接似乎都是完全无用的,所以我正在点赞这个问题。我知道它是可以做到的;有一些安卓应用可以通过wifi与您的电脑通信。如果有人能够提供一个相当全面的答案来解释如何实现这一点,我会为此付出一定的奖励。 - Robert Harvey
这两个设备连接到同一个WiFi路由器吗?还是它们可以在世界上的任何地方? - Gilles 'SO- stop being evil'
两个设备在彼此的范围内。 - user1700794
你的Android应用程序需要支持哪个最小的minSDK Android版本号?这是一个非常重要的问题。你的最低要求将决定哪些功能可用。此外,你排除蓝牙的原因是什么?最后,这是什么类型的应用程序,是你将安装在Google Play上的应用程序,还是企业级应用程序,你可以指定使用的设备类型? - Stephan Branczyk
顺便说一下,为两个设备同时打开便携式Wifi热点是错误的方法。如果这样做,它们将分别使用自己的本地wifi网络。您应该只打开一个热点wifi网络,并让另一个手机连接到它。这样,它们将在同一子网中拥有各自的IP地址,应该能够相互通信。如果这不起作用,请关闭热点并让两个手机登录到您的家庭wifi网络(只要不在工作场所、咖啡店或旅馆等地方进行此操作,因为出于安全原因,可能会启用本地wifi隔离)。 - Stephan Branczyk
很有趣想知道他是如何在热点模式下看到彼此的,据我所知这是不可能的。 - Miro Kropacek
2个回答

4

1
虽然不够全面,不足以获得奖励,但不管你信不信,这似乎是目前互联网上最有用的答案。 - Robert Harvey
这真的有点悲哀,因为我对这项服务的全部了解仅限于它的存在以及它应该做什么。我从来没有需要使用它。 - Gabe Sechan

1
三星最近发布了一个简单的API,旨在使P2P应用程序更容易构建 - http://developer.samsung.com/chord 它只适用于Android 4.0及以上版本,但似乎Wi-Fi Direct也是如此。

不,它不需要。它需要TouchWiz,这是三星的专有用户界面。 - windchime
我的最初印象也是它只适用于TouchWiz启用的设备,但这似乎是新闻文章中的错误信息。在Chord SDK文档中没有提到TouchWiz要求。相反,文档指出:“Chord将把三星的共享存在扩展到我们自己的专有平台之外,进入开发者生态系统。”我已经成功地在Nexus 4模拟器、Galaxy Nexus和Galaxy S3上运行了SDK示例应用程序,并通过Wi-Fi传输了文件。 - ErikR
是的和不是的。它可以与最新的Nexus 4配合使用(该设备由LG制造,三星的主要竞争对手)。 它还可以与Google品牌的原始非Touchwiz Nexus S和Galaxy Nexus(由三星制造)一起使用。他们的文档确实说明了他们希望它最终能够在所有设备上运行(甚至是非三星设备和旧设备)。 只是这还没有完成。此外,您必须记住,这个新的Chord API才发布了2个月。他们用于模拟多个连接的Eclipse Chord特定插件/模拟器对我来说不起作用。 - Stephan Branczyk

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接