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