2011-07-18 134 views
-2

我正在開發使用C2DM的android推送通知應用程序,我在我的應用程序中遇到了一些問題。 當我在i-e服務器和客戶端應用程序上使用相同的電子郵件地址時,該應用程序正在工作,Android c2dm電子郵件地址問題

任何人都可以告訴我會發生什麼問題。

阿爾塔夫

+1

這是我第一次見到有人認爲有他們的應用程序工作是一個問題。此外,這是http://stackoverflow.com/q/6725570/778427的重複。如果你第一次沒有得到答案,很可能你問的方式有問題。不要轉貼您的問題。 –

回答

1

看來你是錯誤的印象,這是創建識別使用C2DM服務的應用程序中的角色電子郵件帳戶應在註冊意圖改變下。

您必須將該角色的電子郵件與服務器上的電子郵件地址相同,否則Google將無法將您的應用程序標識爲此c2dm郵件的發件人/收件人。 樣品登記意向:

Intent registrationIntent = new Intent(
      C2DMessaging.REQUEST_REGISTRATION_INTENT); 
    registrationIntent.setPackage(C2DMessaging.GSF_PACKAGE); 
    registrationIntent.putExtra(
      C2DMessaging.EXTRA_APPLICATION_PENDING_INTENT, 
      PendingIntent.getBroadcast(context, 0, new Intent(), 0)); 
    registrationIntent.putExtra(C2DMessaging.EXTRA_SENDER, senderId); 
    context.startService(registrationIntent); 

的可變senderId這裏應該持有的角色帳戶,您創建,並簽署了C2DM在谷歌C2DM signup Page

此相同的電子郵件被用來從谷歌服務器的身份驗證令牌,該令牌使用後發送C2DM消息

示例服務器代碼來獲得一個認證密鑰:

 List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(1); 
     nameValuePairs.add(new BasicNameValuePair("Email", 
       senderId)); 
     nameValuePairs.add(new BasicNameValuePair("Passwd", "testpassword")); 
     nameValuePairs.add(new BasicNameValuePair("accountType", "GOOGLE")); 
     nameValuePairs.add(new BasicNameValuePair("source", 
       "Fleet Tracker Pro")); 
     nameValuePairs.add(new BasicNameValuePair("service", "ac2dm")); 
     post.setEntity(new UrlEncodedFormEntity(nameValuePairs)); 
     HttpResponse response = client.execute(post); 
     BufferedReader rd = new BufferedReader(new InputStreamReader(
       response.getEntity().getContent())); 

     String line = ""; 
     while ((line = rd.readLine()) != null) { 
      if (line.startsWith("Auth=")) { 
       String auth = line.substring(5); 
       System.out.println("Auth token = " + auth); 
       return auth; 
      } 
     } 

通知變量senderId這也應該持有的角色帳戶,您創建並在谷歌C2DM signup Page 任何其他電子郵件是可以改變的,無論你喜歡簽署了C2DM,但這些以電子郵件必須保持相同的

這裏從google C2DM page在谷歌代碼的定義:

發件人ID與應用程序的開發者 相關的電子郵件帳戶。在註冊過程中使用發件人ID至 標識允許向該設備發送消息至 的Android應用程序。此ID通常是基於角色的,而不是個人帳戶,例如[email protected]

我希望我幫忙過一個愉快的一天。

如果您包含代碼片段或關於您正在討論的電子郵件的更多信息,本來就不錯。

相關問題