2013-10-24 148 views
0

我一直在爲即將推出的項目開發GCM推送通知,並且我一直面臨着關於其實現的一些混淆。我按照以下鏈接:GCM推送通知的依賴關係

  1. http://www.androidhive.info/2012/10/android-push-notifications-using-google-cloud-messaging-gcm-php-and-mysql/
  2. http://developer.android.com/google/gcm/client.html

,我結束了作品與模擬器(不是全部)相當精細的實現。這是我註冊實施時的link

  1. 它正常工作與平臺上運行的模擬器4.2.2
  2. 它不與平臺運行的仿真器2.3.3

我的經驗,到目前爲止,工作告訴我,上在客戶端,下面的事情必須確保正確啓用GCM:

  1. 谷歌Play服務,安裝
  2. 裝置同步的機智h Google帳戶。

對嗎?

所以,我有以下問題要問:

  1. 什麼是客戶端的依賴,我應該擔心,同時實施GCM?我應該在我的代碼中檢查什麼?
  2. 當我在上面的代碼中取消註釋從110到114的行來檢查播放服務時,我收到以下錯誤日誌http://pastebin.com/C2BJkiyt。但它仍然允許我註冊。怎麼了?
  3. 當我在Android 2.3.6的真實設備上運行工作代碼(在模擬器上工作)時,它不起作用。它也不適用於具有ICS的設備。

謝謝你的時間。

+0

對於您的錯誤,您正試圖在不關閉警報對話框的情況下啓動活動。這是內存窗口泄漏的錯誤。 – AnAndroid

+0

在平臺2.3.3上運行的仿真器與Google帳戶同步。 – URAndroid

+0

您需要檢查客戶是否註冊了Google Play帳戶?移動設備上安裝了谷歌播放服務? – AnAndroid

回答

0

您正在使用已棄用的庫方法GCMRegistrar.register註冊GCM。這仍然可以工作,但它需要在4.0.4之前的Android設備上使用已登錄的Google帳戶。

Google建議您停止使用已棄用的庫,而應使用GoogleCloudMessaging類的註冊方法,即使在舊版Android版本中,該方法也不需要Google帳戶。以their GCM Demo爲例。

只有切換到新的註冊方法時,纔會檢查播放服務的代碼。

至於爲什麼過時的註冊方法在某些設備上不適用於您,您必須包含logcat才能獲得幫助。

+0

感謝您的輸入。我正在嘗試您提供的演示。因此,在這種新方法中,客戶端設備無需同步Google帳戶,對吧?我應該考慮的任何其他問題/依賴關係? – Arefin

+0

@ Pro.metal那麼,如果你還沒有這樣做,你必須安裝Google Play服務SDK。你可以閱讀它[這裏](http://stackoverflow.com/questions/16619450/cannot-resolve-symbol-googlecloudmessaging-gcm/)。而且您無需同步Google帳戶是正確的。 – Eran

+0

我已經實施,並有一些谷歌播放服務庫問題的麻煩。我想我已經解決了這個問題,但我仍然犯了錯誤。這是我的[日誌報告](http://pastebin.com/Fgkv2mSj)。這是我的[code](http://pastebin.com/RzBsEhKP)。 – Arefin