在Android Studio中无法解析符号“GCMBroadcastReceiver”

11

我正在尝试在我的Android应用程序中使用GoogleCloudMessaging(GCM)API进行推送通知。

参考http://www.androidhive.info/2012/10/android-push-notifications-using-google-cloud-messaging-gcm-php-and-mysql/http://developer.android.com/google/play-services/setup.html#Setup,我尝试在AndroidManifest.xml中设置它们,但是出现了一些错误:

  • 无法解析符号'GCMBroadcastReceiver'
  • 无法解析符号'GCMIntentService'

这个块位于Application标记中。

    <receiver
        android:name="com.google.android.gcm.GCMBroadcastReceiver"
        android:permission="com.google.android.c2dm.permission.SEND" >
        <intent-filter>

            <!-- Receives the actual messages. -->
            <action android:name="com.google.android.c2dm.intent.RECEIVE" />
            <!-- Receives the registration id. -->
            <action android:name="com.google.android.c2dm.intent.REGISTRATION" />

            <category android:name="com.zaqqle.disqover" />
        </intent-filter>
    </receiver>

    <service android:name=".GCMIntentService" />

我正在使用Android Studio并完成了以下步骤:

  • 在SDK Manager中安装了Google Play服务并与Gradle同步
  • 在build.gradle中加入了compile 'com.google.android.gms:play-services:4.3.23'
  • 在AndroidManifest.xml中加入了<meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" />

请问您能否帮我指出可能遗漏的步骤?感谢您的任何帮助!

1个回答

21

com.google.android.gcm.GCMBroadcastReceiver是一个已经过时的类,您可能在项目中不再使用。您应该实现自己的广播接收器。GCMIntentService是您应该实现的类。

您正在使用一个使用已弃用类而非Google Play服务库的旧教程。您应该参考当前官方GCM演示应用程序,以了解您的清单应该如何看起来,以及项目中应该包含哪些类。


非常感谢。您提供的官方演示链接救了我的命! - Boy
1
太棒了,对我也起作用。我已经搜索了一段时间,最后看到了你的“GCMIntentService是一个你应该实现的类”。 - Tarik Zouine
是的,我认为它已经正式从SDK中删除了。 - bitsabhi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接