现在,对于Android GCM的最后一次更改,提供了InstanceIDListenerService,以便能够通过覆盖onTokenRefresh方法来侦听令牌刷新。
但是什么时候会调用这个方法?有没有办法手动测试它?
答案 0 :(得分:42)
要从命令行运行手动测试:
adb shell am startservice -a com.google.android.gms.iid.InstanceID --es "CMD" "RST" -n your.package.name/your.own.MyInstanceIDListenerService
其中:
这将向服务发送一个意图,其中包含基类所期望的额外内容。
为此,服务需要暂时设置为exported
:
<service
android:name="your.own.MyInstanceIDListenerService"
android:exported="true">
<intent-filter>
<action android:name="com.google.android.gms.iid.InstanceID"/>
</intent-filter>
</service>
注意: 这应该只能暂时,永远不会在生产中导出,否则其他应用可以访问您的服务。
答案 1 :(得分:2)
您不必手动测试令牌值。令牌主要由应用程序服务器使用,以向您的应用程序发送消息。因此,当您的应用程序首次运行时,您应该调用InstanceID.getToken()并将令牌发送到您的服务器。然后,如果更新了令牌,则再次调用InstanceID.getToken()并再次将新值发送到服务器。
点击此处查看example。