我想将GCMIntentService放在我的包根目录以外的目录中。
By default, it must be named .GCMIntentService, unless the application uses a custom BroadcastReceiver that redefines its name.
我的问题是 - 如何创建这个“自定义BroadcastReceiver”呢?
答案 0 :(得分:4)
基本文档可以将以下内容添加到清单中:
<receiver android:name="com.google.android.gcm.GCMBroadcastReceiver" android:permission="com.google.android.c2dm.permission.SEND" >
<intent-filter>
<action android:name="com.google.android.c2dm.intent.RECEIVE" />
<action android:name="com.google.android.c2dm.intent.REGISTRATION" />
<category android:name="my_app_package" />
</intent-filter>
</receiver>
这指向GCM提供的BroadcastReceiver
,它会将事件路由到您的.GCMIntentService
。如果您希望将服务置于其他包中,则需要提供自己的BroadcastReceiver
。这可能就像创建一个子类GCMBroadcastReceiver
并覆盖getGCMIntentServiceClassName()
以返回要使用的服务的完全限定类名一样简单。
答案 1 :(得分:4)