2011-09-28 90 views
1

以下是我正在努力的情況。當用戶安裝我的應用程序並首次運行它時,我向C2DM註冊並獲取註冊ID。然後我將它發送到我的服務器,通知被髮送到應用程序。C2DM registrationId處理 - 最佳實踐?

如果用戶卸載該應用程序,然後再次安裝該應用程序,則會向C2DM進行新的註冊,並且會收到一個新的註冊ID。

問題是,服務器現在有兩個註冊ID的同一個應用程序,我得到多個/冗餘通知onMessage。 避免這種情況的最佳做法是什麼?

回答

0

當我們將registrationId發送到我們的服務器時,我們生成一個標識符,它可以不斷重現客戶端來識別註冊ID給特定用戶。如果我們想要這個選項,這也允許我們取消註冊用戶,作爲一個優點,它消除了您的問題。

+0

我在註冊服務器後也收到一個生成的ID,但是如何重新生成ID是應用程序被卸載?你在使用設備ID嗎?我想避免這種情況,因爲設備ID很快就會被棄用,並且通常被認爲是不好的做法。 – RickR

+0

另外,Android上所有版本的設備ID都不可靠。 – RickR

+0

我們使用TelephonyManager.getDeviceId()並且沒有問題。自從Android發佈以來,我們一直這樣做。 – HandlerExploit