如何处理在Android中获取朋友请求的推送通知

时间:2013-07-03 20:53:30

标签: android push-notification

我想在Android应用程序中实现朋友请求和消息的推送通知,如果用户有朋友请求或得到消息它显示通知完全相同的情况我想做,尝试谷歌但没有找到解决方案,(请不要回答我的GCM和PARSE推送通知)给我合适的教程链接或帮助我提供有价值的答案,提前感谢...

1 个答案:

答案 0 :(得分:1)

更新新答案

现在,您必须使用Firebase云消息传递而不是旧的和已弃用的GCM:https://firebase.google.com/docs/cloud-messaging/

OLD ANSWER:

官方文档和您所有问题的答案如下:http://developer.android.com/google/gcm/gs.html

  

以下部分将指导您完成设置GCM的过程   实现。在开始之前,请务必设置Google Play   服务SDK。您需要此SDK才能使用GoogleCloudMessaging   方法

     

请注意,完整的GCM实现需要服务器端   实现,以及您的应用程序中的客户端实现。   本文档提供了一个包含客户端的完整示例   和服务器。

由于你没有具体要求,我现在无法给出更好的答案,请告诉我们你不理解的内容,我们可以提供帮助......

编辑:根据评论中的要求,即使在后台运行,也会显示通知:

/**
 * Handling of GCM messages.
 */
public class GcmBroadcastReceiver extends BroadcastReceiver {
    static final String TAG = "GCMDemo";
    public static final int NOTIFICATION_ID = 1;
    private NotificationManager mNotificationManager;
    NotificationCompat.Builder builder;
    Context ctx;
    @Override
    public void onReceive(Context context, Intent intent) {
        GoogleCloudMessaging gcm = GoogleCloudMessaging.getInstance(context);
        ctx = context;
        String messageType = gcm.getMessageType(intent);
        if (GoogleCloudMessaging.MESSAGE_TYPE_SEND_ERROR.equals(messageType)) {
            sendNotification("Send error: " + intent.getExtras().toString());
        } else if (GoogleCloudMessaging.MESSAGE_TYPE_DELETED.equals(messageType)) {
            sendNotification("Deleted messages on server: " +
                    intent.getExtras().toString());
        } else {
            sendNotification("Received: " + intent.getExtras().toString());
        }
        setResultCode(Activity.RESULT_OK);
    }

    // Put the GCM message into a notification and post it.
    private void sendNotification(String msg) {
        mNotificationManager = (NotificationManager)
                ctx.getSystemService(Context.NOTIFICATION_SERVICE);

        PendingIntent contentIntent = PendingIntent.getActivity(ctx, 0,
                new Intent(ctx, DemoActivity.class), 0);

        NotificationCompat.Builder mBuilder =
                new NotificationCompat.Builder(ctx)
        .setSmallIcon(R.drawable.ic_stat_gcm)
        .setContentTitle("GCM Notification")
        .setStyle(new NotificationCompat.BigTextStyle()
        .bigText(msg))
        .setContentText(msg);

        mBuilder.setContentIntent(contentIntent);
        mNotificationManager.notify(NOTIFICATION_ID, mBuilder.build());
    }
}