【问题标题】:Peer-Peer communication using wi-fi in android在 android 中使用 wi-fi 进行点对点通信
【发布时间】:2013-07-14 19:01:14
【问题描述】:

我想通过Wi-Fi从一台安卓设备向另一台安卓设备发送消息。

我有两个 android 设备,Portable wifi Hotspot 在两个设备上都启用了。我开发了一个显示可用列表的应用程序 wifi devices ,并且两个设备都相互列出。

现在我想连接两者并将文本从一台设备发送到另一台设备。我所知道的是 wifi 发射器会发送一个信标帧,其中包含 SSIDBSSID 等。

我该怎么办?我应该应用套接字操作,但我没有IP address

【问题讨论】:

  • 我做了一个快速的谷歌搜索,但我发现的所有链接似乎都毫无用处,所以我赞成这个。我知道这是可以做到的;有一些 Android 应用程序可以通过 wifi 与您的计算机通信。如果有人可以就如何实现这一点提供一个相当全面的答案,我会悬赏。
  • 这两个设备是否连接到同一个 wifi 路由器,或者它们可以在世界任何地方?
  • 两个设备在彼此的范围内
  • 您的Android应用需要支持的minSDK Android版本号是多少?这是一个真正重要的问题。您的最低要求将决定您可以使用哪些功能。另外,您是否有理由排除蓝牙?最后,这是什么类型的应用程序,您将安装在 Google Play 上的应用程序,还是您可以决定使用哪种设备的企业应用程序?
  • 顺便说一句,为两个设备打开便携式 Wifi 热点是错误的方法。如果您这样做,他们都将使用自己的本地 wifi 网络。您应该只打开一个热点 wifi 网络并让另一部手机连接到它。这样,他们每个人都将在同一子网中拥有自己的 IP 地址,并且他们应该能够相互交谈。如果这不起作用,让两部手机(关闭热点)登录您的家庭 wifi 网络(只是不要在工作、咖啡店或酒店这样做,出于安全原因,本地wifi隔离可能开启)

标签: android android-wifi


【解决方案1】:

我没有这样做,所以我无法提供代码,但答案是使用 wifi-direct。 http://developer.android.com/guide/topics/connectivity/wifip2p.html。这使您可以与您一起发现 wifi 上的设备,然后通过普通套接字向它们发送数据。

SDK 中有一个 wifi-direct 示例应用。

【讨论】:

  • 不够全面,不足以保证赏金,但不管你信不信,这显然是迄今为止互联网上最有用的答案。
  • 那是……相当可悲,因为我对该服务的总了解是它存在以及它应该做什么。我从来没有需要使用它。
【解决方案2】:

三星最近发布了一个简单的 API,旨在使 P2P 应用程序更易于构建 - http://developer.samsung.com/chord

它仅适用于 Android 4.0 及更高版本,但似乎也适用于 Wi-Fi Direct。

【讨论】:

  • 不,它没有。它需要 touchwiz,这是三星专有的用户界面。
  • 我最初的印象是它只适用于支持 TouchWiz 的设备,但这似乎是新闻文章中的错误信息。在 Chord SDK 文档中的任何地方都没有提到 TouchWiz 要求。恰恰相反——文档指出“Chord 将把三星的共享业务扩展到我们自己的专有平台之外,进入开发者生态系统。”我已成功在 Nexus 4 模拟器、Galaxy Nexus 和 Galaxy S3 之间运行 SDK 示例应用程序并通过 Wi-Fi 传输文件。
  • 是和不是。它确实适用于最新的 Nexus 4(由三星的死敌 LG 制造)。它还适用于库存的非 Touchwiz Nexus S 和库存的非 Touchwiz Galaxy Nexus,由 Google 品牌(但由三星制造)。他们的文档确实声明他们希望它最终能在所有设备上运行(甚至是非三星设备,甚至是旧设备)。只是这还没有完成。另外,你必须记住这个新的 Chord API 是在 2 个月前发布的。他们用于模拟多个连接的 Eclipse Chord 特定插件/模拟器对我不起作用。
猜你喜欢
  • 2017-04-24
  • 1970-01-01
  • 2023-01-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多