Android GCM instanceID.getToken()在Gingerbread上引发TIMEOUT异常

问题描述:

由于标题指示在API 10仿真器上尝试使用Google Cloud Messaging获取令牌时出现TIMEOUT异常。我已经加入我的谷歌帐户的设备上,经检查发现“同步”为ON时,还增加了在接收清单中的 <action android:name="com.google.android.c2dm.intent.REGISTRATION"/>,仍然无法找出是什么原因造成这样的:Android GCM instanceID.getToken()在Gingerbread上引发TIMEOUT异常

11-25 17:35:00.896 29750-29774/com.example.alexis.myapplication W/InstanceID/Rpc: No response [email protected] 
11-25 17:35:00.896 29750-29774/com.example.alexis.myapplication E/MYAPP: TIMEOUT 

这里是清单声明权限:

<uses-permission android:name="android.permission.INTERNET" /> 
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
<permission android:name="com.example.alexis.myapplication.permission.C2D_MESSAGE" android:protectionLevel="signature" /> 
<uses-permission android:name="com.example.alexis.myapplication.permission.C2D_MESSAGE" /> 

<uses-permission android:name="android.permission.GET_ACCOUNTS" /> 
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" /> 
<uses-permission android:name="android.permission.WAKE_LOCK" /> 

和接收器:

<receiver 
     android:name="com.google.android.gms.gcm.GcmReceiver" 
     android:permission="com.google.android.c2dm.permission.SEND" > 
     <intent-filter> 

      <!-- Receives the actual messages. --> 
      <action android:name="com.google.android.c2dm.intent.RECEIVE" /> 

      <!-- Receives the registration id. --> 
      <action android:name="com.google.android.c2dm.intent.REGISTRATION" /> 

      <category android:name="com.example.alexis.myapplication" /> 

     </intent-filter> 
    </receiver> 

任何帮助将高度赞赏。

注意:我在2.3.7上使用genymotion模拟器,我没有硬件设备来测试。

+0

尝试在这里使用官方回购:https://github.com/google/gcm/tree/master/samples/android/gcm-demo – bjiang

+0

谢谢,事实证明,它没有getToken因为我使用模拟器。今天拿到了一个用于测试的硬件设备,并且如预期的那样立即工作。 – Alex

+0

很高兴听到这个消息 – bjiang

使用一个硬件设备,一切正常,所以这是模拟器的错误。