【发布时间】:2010-03-19 15:28:27
【问题描述】:
我想编写一个可以通过从网站发送命令来激活的 Android 应用程序。这可能吗?实际上,应用程序会在手机上运行,我会通过 HTTP 向它发送命令。
【问题讨论】:
-
正确!我会做得更好。
-
您的意思是网站会主动向您的应用程序发送命令,还是您的意思是一个链接会激活应用程序?后者是可能的。
标签: android
我想编写一个可以通过从网站发送命令来激活的 Android 应用程序。这可能吗?实际上,应用程序会在手机上运行,我会通过 HTTP 向它发送命令。
【问题讨论】:
标签: android
从 Android 2.2 开始,您可以开始使用cloud to phone messaging 系统(更多信息here)
【讨论】:
您可以让您的应用程序与等待命令的网络服务器保持连接。这种技术常用于实时更新的 AJAXy 网站,称为“彗星”模式或“长轮询”。
基本上,您的客户端(在这种情况下是手机上的应用程序)请求某个页面。您的网络服务器(或 PHP 或您正在使用的任何东西)检查是否有任何未完成的消息或命令要发送到客户端,如果没有,它会保持连接打开并等待直到收到客户端的消息,或者直到某个超时。
这样做有几个明显的缺点:
这一切都假设您需要对命令进行近乎实时的响应。如果可以延迟,正常轮询就足够了。
【讨论】:
您可以让服务器向 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。
【讨论】:
这是完全可能的。只需在您的手机上启动一个网络服务器。例如:http://l00g33k.wikispaces.com/micro+HTTP+application+server
【讨论】:
有点自吹自擂:) 现在解决了...
这不适用于许多 3G 网络(没有公共 IP 地址)
如果不需要一般的公共访问,您可以使用两个 SSH 连接到 SSH 服务器。我已经做过很多次了,它和你的 SSH 设置一样安全。
并且具有在没有大多数工具(例如防火墙)来管理它们的情况下在实际服务器上运行 Web 服务器的所有安全后果
如果需要一般公共访问,您可以通过从电话到 SSH 服务器的一个 SSH 连接来实现。您需要在 SSH 服务器上打开一个端口,但不需要防火墙管理,因为您可以运行另一个 Perl 脚本来过滤源地址并通过 SSH 连接转发到电话。根据您的观点,还有另一件事是好/坏。由于它需要一个活动的 SSH/Android ConnectBot 连接,因此您知道它何时处于活动状态,并在您关闭 SSH 连接时断开。对我来说,这是增加了安全性。我这样做是为了将 KML 文件发送到 Google 地图的 Google 服务器(即使文件在您的手机上,KML 文件也必须可以在没有密码的情况下公开访问 Google 服务器;我按 Google 的 IP 地址进行过滤。)
【讨论】: