如何重命名或移动GCMIntentService

时间:2012-11-13 11:47:33

标签: android push-notification google-cloud-messaging

我想将GCMIntentService放在我的包根目录以外的目录中。

GCM documentation表示

      By default, it must be named .GCMIntentService, unless the
      application uses a custom BroadcastReceiver that redefines its name.

我的问题是 - 如何创建这个“自定义BroadcastReceiver”呢?

2 个答案:

答案 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)