2

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

GCM文档指出

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

我的问题是 - 我如何创建这个“自定义广播接收器”?

4

2 回答 2

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()以返回要使用的服务的完全限定类名一样简单。

于 2012-11-13T12:30:00.550 回答
4

试试这个——重命名或更改 GCMIntentService 类的包

于 2012-11-13T14:49:24.570 回答