2012-07-04 132 views
0

我想使用GCM,除差分設備上的GCMRegistrar.getRegistrationId調用外,一切正常。我在模擬器上運行了這段代碼,並且2個不同的手機和GCMRegistrar.getRegistrationId總是返回相同的字符串。我預計它會在每個設備上有所不同,但事實並非如此。難道我做錯了什麼?這是我正在使用的代碼(取自文檔)。Android GCM-每次在不同的設備上註冊相同的註冊ID

GCMRegistrar.checkDevice(context); 
final String regId = GCMRegistrar.getRegistrationId(context); 
if (regId.equals("")) { 
    GCMRegistrar.register(activity, "123456789012"); //sender id/api project id 
} else { 
    LogUtil.info("Already registered"); 
} 

當我第一次跑這在模擬器上GCMRegistrar.getRegistrationId返回「」但在隨後的調用返回大的ID。這就說得通了。奇怪的是,當在兩部手機上運行相同的代碼時,它們都返回了相同的ID(模擬器返回的那個),從未運行過此應用程序。

回答

-1

這實際上證明我是如何檢查身份證號碼的錯誤。 XGouchet,謝謝你的迴應。

3

據我所知,註冊ID用於匹配用戶+設備。在仿真器上,您沒有任何用戶帳戶,並且設備是虛擬的,所以我的猜測是註冊認爲兩個虛擬設備都是相同的。

我不知道他們用什麼來創建註冊ID,但如果他們使用ANDROID_ID,這是一個已知的問題,即所有虛擬設備都具有相同的ID。

另外這是一個已知的問題,即一些製造商爲其所有設備使用相同的設備ID,儘管它應該是唯一的。但也許他們正在使用別的東西。也許你應該試着問這個問題GCM support