我正在尝试在我的Android应用程序中实现推送通知,但我目前卡在接收令牌的点上。
我使用最新的“InstanceID”方法并按照一些示例进行操作。我已经向我的清单文件添加了权限和服务(以及它们的代码),但无论我尝试什么,我总是得到“java.io.IOException:TIMEOUT”错误。我尝试过不同的手机、WiFi、Lte和3G,但似乎没有任何变化。
我从来没有遇到过“SERVICE_NOT_AVAILABLE”的错误,只卡在这个错误上。
清单文件
我使用最新的“InstanceID”方法并按照一些示例进行操作。我已经向我的清单文件添加了权限和服务(以及它们的代码),但无论我尝试什么,我总是得到“java.io.IOException:TIMEOUT”错误。我尝试过不同的手机、WiFi、Lte和3G,但似乎没有任何变化。
我从来没有遇到过“SERVICE_NOT_AVAILABLE”的错误,只卡在这个错误上。
清单文件
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
<receiver
android:name="com.google.android.gms.gcm.GcmReceiver"
android:exported="true"
android:permission="com.google.android.c2dm.permission.SEND" >
<intent-filter>
<action android:name="com.google.android.c2dm.intent.RECEIVE" />
<category android:name="de.company.appname" />
</intent-filter>
</receiver>
<service
android:name="de.company.gcm.ModuleGCMListenerService"
android:exported="false" >
<intent-filter>
<action android:name="com.google.android.c2dm.intent.RECEIVE" />
</intent-filter>
</service>
<service
android:name="de.company.gcm.ModuleInstanceIDListenerService"
android:exported="false">
<intent-filter>
<action android:name="com.google.android.gms.iid.InstanceID"/>
</intent-filter>
</service>
实例ID调用:
try
{
token = instanceID.getToken(
senderId,
GoogleCloudMessaging.INSTANCE_ID_SCOPE,
null);
}
catch (IOException e)
{
e.printStackTrace();
}
instanceID.getId()正在运行。
W/InstanceID/Rpc: No response android.os.ConditionVariable@129d5713
W/System.err: java.io.IOException: TIMEOUT
W/System.err: at com.google.android.gms.iid.zzc.zzb(Unknown Source)
W/System.err: at com.google.android.gms.iid.zzc.zza(Unknown Source)
W/System.err: at com.google.android.gms.iid.InstanceID.zzc(Unknown Source)
W/System.err: at com.google.android.gms.iid.InstanceID.getToken(Unknown Source)
InstanceID.getToken()
相关的源代码在此处。 - bjiang