Android - 连接模式,设备识别和设备互通?

时间:2010-05-28 13:06:32

标签: android connectivity

有人可以向我解释几个非常简单的概念 - 我对运行android的移动设备感兴趣,以及如何通过网络识别它们。一些场景:

  • 设备通过WiFi连接 - 可能是设备具有与任何主机一样的标准IP地址,并且可以通过TCP / IP与任何其他Android主机通信(假设它知道参与设备的IP?< / LI>
  • 设备通过蓝牙连接 - 在这种情况下如何识别设备?
  • 设备通过移动运营商的网络连接 - 这是我感兴趣和困惑的一个 - 无论如何,两个或更多设备是否相互发现并通过移动运营商的网络进行通信?在这种情况下,设备如何与后端服务器通信?换句话说,当连接到WiFi网络时,应用和设备如何通信?

感谢您的任何建议..

2 个答案:

答案 0 :(得分:1)

我只对蓝牙事物有所了解,所以我只回答这一部分:

您设备上的蓝牙接口有MAC地址。因此,在通过蓝牙进行通信时,您可以假设此MAC地址是特定设备的唯一标识符。您也可以通过此MAC地址建立连接来访问其他设备 - 但是,要首先获得此MAC地址,您必须从somwhere知道它,或者您必须在之前搜索其中的其他蓝牙设备。

答案 1 :(得分:1)

WiFi和3g都将[移动]设备连接到互联网,因此可以建立互联网连接。 3G为设备分配可公开寻址的IP,因此可以打开服务器套接字并监听连接。客户端必须知道移动IP,这可能会经常发生变化。

蓝牙更适合近距离接近。在与它们配对后,可以连接附近的设备,这需要两个设备的协作才能进行通信。

如果目标是生成连接到附近设备的应用程序,我可以考虑以下想法:

  • 3g:运行客户端的所有设备都使用中央数据库服务器注册其位置。如果服务器检测到两个客户端非常接近,请让他们知道,以便他们可以通过互联网或通过服务器连接
  • WiFi:您可以使用与3g相同的想法,或使用广播/多播数据包来广播您的状态。其他应用可以收听这些广播,并发现附近有哪些其他设备。
  • 蓝牙:有点棘手,因为设备必须置于可发现模式,以便其他人“看到它”。可发现模式是一种临时状态,仅持续约30秒(一次)。
相关问题