Android客户端服务器通信混乱

时间:2011-03-03 05:32:21

标签: android client-server communication

项目描述:我必须在android中创建一个应用程序,它从GPS获取纬度和经度并将其位置转发给服务器。在服务器端,应该有一个网页,它持续接收来自Android应用程序的消息,并在Google地图上显示该位置。

假设我们的应用程序正在运行的不同位置有10个Android设备。在服务器端,我们必须在设备位置的Google地图上显示10个标记。

我做了什么:我已经在Android中制作了一个应用程序,它可以从GPS获得Lat和Long。我熟悉android上的socket编程。我已经在服务器端实现了具有Google地图并显示标记的网页。

困惑:

  1. 如何制作服务器?

  2. 如何将数据从Android传输到服务器以及服务器端需要哪些应用程序从Android接收数据。是否需要任何桌面或控制台应用程序在服务器的特定端口绑定它自己,或者网页足以让我实现此目标。

  3. 我必须使用哪种协议? UDP,TCP / IP,还是直接使用HTTP或HTTPS steam?

  4. 我只是需要一些关于我的问题的方向,因为我从未在Android和客户端服务器通信中工作过。如果您认为这个问题含糊不清,请推荐一本关于网络的书或任何您认为适合此类问题的书。

2 个答案:

答案 0 :(得分:1)

Afaik ......

首先,您需要使用Android SDK中提供的位置基础服务获取GPS数据(请参阅位置MAnager,位置监听器等等)

困惑: - 混淆是

如何制作服务器。

Ans:不能帮助你,因为我不擅长配置服务器

如何将数据从Android传输到服务器以及服务器端需要哪些应用程序从Android接收数据。是否需要在服务器的特定端口绑定自己的桌面或控制台应用程序,或者网页足以让我实现此目标。

Ans:您可以使用使用 get或post 方法接收数据的Web服务传输包含纬度和经度的数据,然后每次调用OnLocationChanged方法时将其转储到数据库中在位置监听器上。您最好在服务器中配置mysql数据库,然后将其用于数据存储。您需要设计的网页,以便经常从数据库中获取与位置相关的数据,然后相应地显示标记。

我必须使用UDP或TCP / IP的协议,或直接使用HTTP或HTTPS流?

Ans:如果您了解php,那么您可以使用REST服务,或者如果您是.Net类型的人,您可以使用SOAP Web服务,该服务使用简单的http post方法将数据更新到服务器。

希望这会有所帮助。

答案 1 :(得分:1)

常见设置可以是这样的:

有以下事项:

  • 服务器端的文件(PHP),其唯一目的是将从Android设备接收的数据(lat,lng)注入MySql数据库
  • 服务器端的文件(PHP),其唯一目的是从MySql数据库中获取数据(lat,lng)。此文件应该接收时间戳作为其参数,并返回在该时间戳之后保存的lat,lng的所有值(为此,您的数据库必须存储时间戳)
  • 只处理map事物的文件(HTML + JS),实现了一个AJAX调用,它定期轮询第二个文件并使用时间戳值来获取新的lat,lng值。当它获得值时,它将它们绘制在地图上
  • 在Android设备上,以一种特定时间间隔将其位置发送到第一个PHP文件的方式制作您的应用。

这样,你得到了你想要的东西。

另一方面,如果我们谈论客户端 - 服务器架构,客户端会发送请求并获得响应。而已。为此,客户端访问服务器端脚本以获取这些响应。同样,您的Android应用程序访问特定的服务器端脚本并获得响应。就是这样。

如果您想要实现服务器启动的与android的通信,您将不得不使用推送机制,如云到设备消息(C2DM)

干杯。