GCM not Working

2019-09-07 01:22发布

I am learning GCM(Google cloud Messaging)
I Completed Following steps

1 - Activated and Obtained a Key for browser apps

2 - added following in manifest

Uses permission : com.google.android.c2dm.permission.RECEIVE

Created permission to prevent other Android applications from registering and receiving the Android application's messages

Created a receiver for com.google.android.c2dm.intent.RECEIVE, with the category set as applicationPackage. The receiver should require the com.google.android.c2dm.SEND permission

3 – in receiver

@Override

public void onReceive(Context context, Intent intent) {

    ComponentName comp = new ComponentName(context.getPackageName(),
        GcmMessageHandler.class.getName());

    startWakefulService(context, (intent.setComponent(comp)));

    setResultCode(Activity.RESULT_OK);

}

GcmMessageHandler it’s a Intend Service to show a notification on receive gcm message.following is onHandleIntent Method in GcmMessageHandler.

@Override

protected void onHandleIntent(Intent intent) {

    handler.post(new Runnable() {


        @Override

        public void run() {

            NotificationManager manager = (NotificationManager) getApplicationContext()
                    .getSystemService(Context.NOTIFICATION_SERVICE);

            NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(
                    getApplicationContext());

            mBuilder.setSmallIcon(R.drawable.ic_launcher);

            mBuilder.setContentTitle("GCM Received");

            mBuilder.setContentText("GCM Message");

            manager.notify(1, mBuilder.build());


        }

    });


    Log.i("app", "Received ");

    GcmBroadcastReceiver.completeWakefulIntent(intent);

}

4 - MainActivity-to register and get clint ID, from log cat I copyed that id.

5 - from browser I make post request to https://android.googleapis.com/gcm/send with authorization,content-type,and registration_ids.

Its gets success message.
But my device not showing notification.

2条回答
【Aperson】
2楼-- · 2019-09-07 01:33

Follow this and this easy tutorial to send and receive push nothification in Android. And check package naming and AndroidManifest.xml file configured correctly as explained in this example and set receiver like this:

    <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="your package name here" />
    </intent-filter>
</receiver>
查看更多
萌系小妹纸
3楼-- · 2019-09-07 01:41

Sorry everyone,

Actually my program is correct. I think it’s a problem with my phone. (I can’t receive messages from Facebook messenger also,)

but Today morning I surprised, I got every messages from my test app(message that I send 2 days ago), Facebook ,etc.

Thank you everyone.

查看更多
登录 后发表回答