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模拟器,我没有硬件设备来测试。
答
使用一个硬件设备,一切正常,所以这是模拟器的错误。
尝试在这里使用官方回购:https://github.com/google/gcm/tree/master/samples/android/gcm-demo – bjiang
谢谢,事实证明,它没有getToken因为我使用模拟器。今天拿到了一个用于测试的硬件设备,并且如预期的那样立即工作。 – Alex
很高兴听到这个消息 – bjiang