android - android中的局域网调用

标签 android sockets networking sip voip

我想开发一个用于 LAN 调用的 android 应用程序。我的应用程序类似于 whatsapp、viber 等应用程序,所以我用谷歌搜索了相同的应用程序。我从不同的答案中得到的是:

  1. 每当我们安装 whatsapp 时,whatsapp 服务器都会注册我们的号码和联系人列表。该应用程序不断地 ping 服务器并更新其在服务器上的状态。
  2. 当我们打开应用程序时,它会从服务器获取数据,如果在联系人列表中找到某个号码,它会显示该号码的状态和其他内容。
  3. 每当我们向某人发送消息时,消息都会发送到服务器并保留在那里,直到成功发送。

对于我的应用,这两个步骤是:

  1. 找到所有安装了我的应用程序的设备、它们的 IP 和 mac 地址。
  2. 当找到设备时,允许它们之间的通话。

对于第 1 步,我有两个选择:

  1. 作为whatsapp,我可以有一个服务器。每当安装应用程序时,它都会注册手机的信息。该应用程序 ping 服务器并显示其状态。

  2. 我可以使用自己的网络设备发现代码。此代码扫描网络并查找设备。 这个步骤代价高昂,整个网络都被数据包淹没了。而且编写网络设备发现代码也相当困难。

对于第二步,我想实现客户端套接字编程,只需将一台设备的麦克风连接到另一台手机的扬声器即可。我认为这具有挑战性,但它是可能的。

请帮助我网络发现代码或服务器设置。我对android开发非常熟悉,但对网络非常陌生。 这些设备之间如何进行通话?

我搜索了答案并找到了以下链接:Peer-to-peer SIP call with Android SIP Stack?

how to implement voip in android

VOIP on Android libraries or sample code

我也在quora上提了一个问题:

https://www.quora.com/How-can-I-develop-an-app-having-feature-like-whatsapp-calling-in-android

但是,我还是卡在了开头。请帮助我。

最佳答案

还没有一个完整的答案,但这里有一些要寻找的东西:

关于android - android中的局域网调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32027180/

相关文章:

http - 伪/冒号标题字段的用途

从网络驱动器启动的 c# .net4 应用程序需要很长时间才能加载

android - Google Analytics (V4) - APP_TRACKER、GLOBAL_TRACKER 和 ECOMMERCE_TRACKER

android - 当用户滑开时前台服务被杀死

android - ContentValues 数组中的重复 ContentValues

c - HTTP 持久连接

Java 服务器套接字连接重置

C++网络爬虫

android - Android Volley 如何处理暂时失去网络连接?

java - 只读可选择的 EditText