2015-01-06 104 views
4

我是新來的android開發,並試圖添加推送通知服務器,也是一個客戶端(APK)。模擬機器人GCM

雖然我通過網絡閱讀過,但我需要註冊一個項目console.developers.google,並且獲得一些ID以允許發送或接收推​​送通知。但是,我試圖做的是模擬我的本地計算機上的完整環境並對其進行測試。這可以實現嗎?

例如,推送服務已註冊,並在本地主機和我的應用程序(WIP)上發送通知,以接收消息並再次將消息推送到服務 - 假設本地主機未連接到Internet。

+0

您的本地機器和移動設備是否可以訪問互聯網? – Yazan

+0

我確實有,但只是想模擬,如果沒有互聯網連接。 – john0609

回答

2

這是不可能的,因爲推送通知如何使用Google服務器工作。

推送通知被髮送到谷歌服務器,並從那裏分發到設備。然後他們會被操作系統收回,並將其發送給任何會響應該意圖的應用程序。因此不可能在本地進行。

欲瞭解更多信息,請參閱文檔here

編輯

從評論你寫的,這是它周圍獲得的一個很酷的方式之後,我發現我可以發送一個通知我這樣做的:

adb shell am broadcast -a com.google.android.c2dm.intent.RECEIVE com.myapp 

你之間的區別我的是我不使用-c,因爲它設置了一個類別。 您可以通過執行

adb shell 

,然後鍵入

am broadcast 

假設你只有一臺設備插上看到所有可能的選項。(請注意,你不訂閱通知你必須發送該通知的應用程序,然後將應用程序編程爲與行動com.google.android.c2dm.intent.RECEIVE任何意圖做出迴應。

這是否幫助?

+2

我能夠使用本地adb工具廣播數據。該命令是:'adb shell am broadcast -c com.myapp -a com.google.android.c2dm.intent.RECEIVE -e data「SomeData」'。問題是我需要多次調用此方法來廣播數據。另外,我現在如何訂閱我的應用程序的通知? – john0609

+0

我正在使用獨立的Java服務和上述命令在本地模擬c2dm服務器。一旦完成,我會更新這個線程。 – john0609