2011-05-17 119 views
4

我無法理解此問題的頂層抽象。在Android用戶之間共享數據

問題: 用戶A和B下載應用程序X. A想將應用程序特定的數據發送給B.用戶A如何與B鏈接?

我令人難以置信的混亂解決方案: - 用戶A單擊應用程序上的一個按鈕,打開一個聯繫人列表。用戶A從列表中選擇用戶B.用戶B的電子郵件地址存儲在A的地址簿中。應用程序創建一種「共享ID」,並通過該電子郵件地址發送給用戶B.用戶B的應用程序從郵件中獲取該ID,然後用戶A和B使用共享ID連接到服務器,並通過服務器彼此共享。

必須有更好的方法嗎?這兩個問題是: 1.它不應該需要一個服務器(它應該嗎?它可以是免費的嗎?) 2.用戶之間必須有更好的連接方式,而不是通過gmail發送ID或鏈接等。

這個解決方案應該如此簡單,但是我不能把頭轉向它。如果這個問題不足以得到一個好的答案,請告訴我,我需要做什麼來思考移動用戶如何儘可能簡單地相互交流,只需儘可能少的點擊,(移動2.0或任何現代的東西!)

例如:一位母親和一個孩子有一個android智能手機。他們每個下載「兒童皮帶」應用程序。孩子希望配置應用程序以將更新發送給母親,以便母親可以跟蹤孩子的位置等。問題在於一些孩子如何告訴應用程序母親所在的位置,以便將數據發送到該位置。兒童識別母親的電話是一種用戶友好的方式? (母親的IP地址?電話號碼?電子郵件地址?OpenIDs?NFC /藍牙?)以便它可以溝通?

回答

3

您可以使用推送通知,如Android Cloud to Device Messaging Framework所提供的。有關於此的Android blog post。問題是,這似乎是測試版,並且尚未供所有開發人員使用(您需要特定註冊)。

關於「IP地址」,P2P等,這通常不起作用。請參閱:Is peer-to-peer communication over 3G/4G possible for smart phones?

如果消息不是緊急的,那麼您可以使用AlarmManager讓您的應用每小時左右醒來,並通過連接到服務器來檢查新消息。不確定這會適用於您的「ChildLeash」示例。另一個類似的解決方案是使用Service輪詢服務器。