【问题标题】:Can I write an Android app that receives a command from a web site?我可以编写一个从网站接收命令的 Android 应用程序吗?
【发布时间】:2010-03-19 15:28:27
【问题描述】:

我想编写一个可以通过从网站发送命令来激活的 Android 应用程序。这可能吗?实际上,应用程序会在手机上运行,​​我会通过 HTTP 向它发送命令。

【问题讨论】:

  • 正确!我会做得更好。
  • 您的意思是网站会主动向您的应用程序发送命令,还是您的意思是一个链接会激活应用程序?后者是可能的。

标签: android


【解决方案1】:

从 Android 2.2 开始,您可以开始使用cloud to phone messaging 系统(更多信息here

【讨论】:

    【解决方案2】:

    您可以让您的应用程序与等待命令的网络服务器保持连接。这种技术常用于实时更新的 AJAXy 网站,称为“彗星”模式或“长轮询”。

    基本上,您的客户端(在这种情况下是手机上的应用程序)请求某个页面。您的网络服务器(或 PHP 或您正在使用的任何东西)检查是否有任何未完成的消息或命令要发送到客户端,如果没有,它会保持连接打开并等待直到收到客户端的消息,或者直到某个超时。

    这样做有几个明显的缺点:

    • 您的网络服务器需要为应用程序的每个用户维护 1 个打开的连接。根据服务器的不同,如果您有很多用户,这会很快占用资源
    • 您的应用程序将不断使用资源,因为它还必须保持打开的连接并定期重新建立它

    这一切都假设您需要对命令进行近乎实时的响应。如果可以延迟,正常轮询就足够了。

    【讨论】:

      【解决方案3】:

      您可以让服务器向 Android 发送 SMS 消息。在 Android 端,您的应用程序 listen 可以监听 SMS 消息并执行相应的命令。 Here is a question 关于从服务器发送短信。 Here is some help 在安卓中使用短信。

      我不确定您是否可以将 SMS 消息保密给您的应用。理想情况下,您不希望用户将这些 SMS 消息视为文本消息。 Perhaps you could just delete the message as soon as it is processed

      【讨论】:

        【解决方案4】:

        这是完全可能的。只需在您的手机上启动一个网络服务器。例如:http://l00g33k.wikispaces.com/micro+HTTP+application+server

        【讨论】:

        • 这不适用于许多 3G 网络(没有公共 IP 地址),并且具有在没有大多数工具(例如防火墙)来管理它们的实际服务器上运行 Web 服务器的所有安全后果.
        【解决方案5】:

        有点自吹自擂:) 现在解决了...

        这不适用于许多 3G 网络(没有公共 IP 地址)

        如果不需要一般的公共访问,您可以使用两个 SSH 连接到 SSH 服务器。我已经做过很多次了,它和你的 SSH 设置一样安全。

        并且具有在没有大多数工具(例如防火墙)来管理它们的情况下在实际服务器上运行 Web 服务器的所有安全后果

        如果需要一般公共访问,您可以通过从电话到 SSH 服务器的一个 SSH 连接来实现。您需要在 SSH 服务器上打开一个端口,但不需要防火墙管理,因为您可以运行另一个 Perl 脚本来过滤源地址并通过 SSH 连接转发到电话。根据您的观点,还有另一件事是好/坏。由于它需要一个活动的 SSH/Android ConnectBot 连接,因此您知道它何时处于活动状态,并在您关闭 SSH 连接时断开。对我来说,这是增加了安全性。我这样做是为了将 KML 文件发送到 Google 地图的 Google 服务器(即使文件在您的手机上,KML 文件也必须可以在没有密码的情况下公开访问 Google 服务器;我按 Google 的 IP 地址进行过滤。)

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2021-09-09
          • 2014-03-02
          • 1970-01-01
          • 2018-05-04
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多