Using GCM in android studio

android, android-studio, google-cloud-messaging, push-notification

Solution

You are probably using an old tutorial but `GCMRegistrar` is a deprecated API class.

You should really be using the new one, as it will be removed soon.

Please use the GoogleCloudMessaging API instead.

Problem

I don't know how to get GCM working in my project in android studio. When I use some of the clases of GCM, y get this: Can't resolve symbol GCMRegistrar In this code: ``` GCMRegistrar.checkDevice(this); ``` And it does not show the option to import the class. This is my graddle file: ``` buildscript { repositories { mavenCentral() } dependencies { classpath 'com.android.tools.build:gradle:0.8.0' } } apply plugin: 'android' repositories { mavenCentral() } android { compileSdkVersion 19 buildToolsVersion "19.0.1" defaultConfig { minSdkVersion 9 targetSdkVersion 19 } } dependencies { compile 'com.android.support:appcompat-v7:19.0.1' compile 'com.google.android.gms:play-services:4.2.42' } ``` This is my manifest: ``` <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.compage.womenshield" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="10" android:targetSdkVersion="19" /> <uses-permission android:name="android.permission.READ_CONTACTS" /> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.GET_ACCOUNTS" /> <uses-permission android:name="android.permission.READ_PROFILE" /> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" /> <uses-permission android:name="android.permission.SEND_SMS" /> <uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES"/> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/> <uses-permission android:name="android.permission.WAKE_LOCK" /> <uses-permission android:name="android.permission.VIBRATE" /> <permission android:name="com.compage.womenshield.permission.C2D_MESSAGE" android:protectionLevel="signature" /> <uses-permission android:name="com.compage.womenshield.permission.C2D_MESSAGE" /> <uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" /> <uses-feature android:glEsVersion="0x00020000" android:required="true"/> <application android:allowBackup="true" android:icon="@drawable/icono_app" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name="com.compage.womenshield.Splash" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" /> <meta-data android:name="com.google.android.maps.v2.API_KEY" android:value="AIzaSyCgQNclD9ZqxhiJXGdFvTTx2OiR_vKfJCM"/> <receiver android:name=".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.javapapers.android" /> </intent-filter> </receiver> <service android:name="com.compage.womenshield.notification.GCMIntentService" /> </application> </manifest> ``` It shows error in here: ``` <receiver android:name=".GCMBroadcastReceiver" ``` In the clase name. And here: ``` <service android:name="com.compage.womenshield.notification.GCMIntentService" /> ``` How can I use these gcm classes in android studio?

Original source