2012-10-07 30 views
3

我試圖建立一個應用程序與GCM但每次我得到的phone_registration_error錯誤的時間工作 根據GCM文檔此錯誤意味着:GCM phone_registration_error

Incorrect phone registration with Google. 
This phone doesn't currently support GCM. 

但我不明白爲什麼我它不支持,我測試了一個真正的Android設備,並與谷歌API的

我的MainActivity一個仿真器上:

@Override 
public void onCreate(Bundle savedInstanceState) { 
    checkNotNull(SENDER_ID, "SENDER_ID"); 

    GCMRegistrar.checkDevice(this); 
    GCMRegistrar.checkManifest(this); 

    final String regId = GCMRegistrar.getRegistrationId(this); 
    Log.i(TAG, "registration id ===== "+regId); 
    if(regId.equals("")){ 
     GCMRegistrar.register(this, SENDER_ID); 

    } else { 
     Log.v(TAG, "Already Registred"); 
    } 

    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

} 

和我表現:

Manifest on pastebin

+0

手機上運行的Android版本是什麼? – Givi

+0

嘗試在Android版本較高的其他設備上使用應用,而不是所有設備都支持Google Apis。如果你運行一個模擬器,只需創建一個與谷歌API模擬器的Android版本,並在該模擬器上創建谷歌帳戶。在與GCM合作時需要它。 – JunR

+0

在真正的設備上我運行2.3.4和仿真器運行2.2也仿真器有一個谷歌帳戶 –

回答

2

GCM僅適用於運行Android 2.2或更新版本的設備。此外,GCM僅適用於爲設備安裝Google帳戶的情況。這也是谷歌推薦在清單中使用<uses-permission android:name="android.permission.GET_ACCOUNTS" />的原因,因此您確定該設備有一個Google帳戶。

+1

關於「GCM只適用於爲設備安裝的Google帳戶「在最近的Android版本中不再是真實的。 –

1

我有同樣的問題,並在互聯網上搜索了很多天後,我在谷歌組(https://groups.google.com/forum/#!topic/cerberus-support-forum/eJxOsYqkTxo)注意到了這一點,並嘗試它,它對我來說工作完美無瑕。

您的Google帳戶出現問題。請試試這個:

  • 進入設置 - >應用程序 - >管理應用程序 - >所有

進入設置 - > Apps->所有(在新版本)

  • 爲「Google Play服務」和「Google服務框架」選擇「清除數據」
  • 重新啓動手機

然後從您的應用程序中檢查GCM ID。

如果仍然無法使用,請從手機中刪除所有的Google帳戶,然後重新啓動手機並重新添加帳戶。

它的工作對我來說(實現了許多解決方案,我從搜索互聯網得到了後。)

希望它可以幫助!

0

我查看了您的清單,並且您忘記了傳遞GooglePlay服務元數據。

  1. 驗證,如果你在有鏈接GOOGLEPLAY服務庫到您的項目

  2. 嘗試添加這是你的

<meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version"/>

它可以很好地適合我。

然後重新編譯並重試。希望能幫助到你。