簡體   English   中英

我可以編寫一個從網站接收命令的Android應用程序嗎?

[英]Can I write an Android app that receives a command from a web site?

我想編寫一個Android應用程序,可以通過從網站發送命令來激活它。 這可能嗎? 實際上,該應用程序將在手機上運行,​​而我將通過HTTP向其發送命令。

從Android 2.2開始,您可以開始使用雲到電話的消息傳遞系統( 此處提供更多信息)

您可以讓您的應用程序維持與Web服務器的連接,以等待命令。 這種技術經常用於實時更新的AJAXy網站中,稱為“彗星”模式或“長時間輪詢”。

基本上,您的客戶端(在這種情況下為手機上的應用程序)請求特定頁面。 您的網絡服務器(或PHP或您正在使用的任何服務器)檢查是否有任何未完成的消息或命令要發送給客戶端,如果沒有,它將保持連接打開並等待直到收到客戶端消息,或者直到某個超時。

這樣做有兩個明顯的缺點:

  • 您的網絡服務器需要為該應用程序的每個用戶維護1個打開的連接。 根據服務器的不同,如果您有很多用戶,這可以很快占用資源
  • 您的應用程序將不斷使用資源,因為它還必須維護打開的連接並定期重新建立它

這些都是假設您需要對命令的近實時響應。 如果可以延遲,則正常輪詢就足夠了。

您可以讓服務器向Android發送SMS消息。 在Android方面,您的應用程序監聽可以監聽SMS消息並執行適當的命令。 這是有關從服務器發送SMS 的問題 這是在android中使用短信的一些幫助

我不確定是否可以讓您的SMS消息對您的應用程序保密。 理想情況下,您不希望用戶將這些SMS消息視為文本消息。 也許您可以在處理完消息后立即刪除它

這是完全可能的。 只需在手機上啟動網絡服務器即可。 例如: 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 Maps的Google服務器的操作(即使該文件在您的手機上,KML文件也必須可以公開訪問而無需密碼即可訪問Google服務器;我會按Google的IP地址進行過濾。)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM