基于Windows Azure服务器的GCM推送——Android端集成

原创 2015年11月19日 14:55:04

项目中用到消息推送,要用到Google的GCM推送,就简单的记录一下:

参考地址:http://www.windowsazure.cn/documentation/services/mobile-services/

一、

下载并导入需要的jar包:mobileservices-2.0.3.jar 、 guava-17.0.jar 、 notifications-1.0.1.jar

二、

在启动的Activity中加入以下代码:

其中PushAppUrl 是服务端集成给出的

PushAppKey  是在Google控制台申请的

<span style="font-size:14px;">    public static MobileServiceClient mClient;
 try {
            mClient = new MobileServiceClient(Constants.PushAppUrl, Constants.PushAppKey, this);
        } catch (MalformedURLException e) {
            e.printStackTrace();
        }</span>

三、注册并接受推送过来的消息

NotificationsManager.handleNotifications(getActivity(),
        Constants.SENDER_ID, MyNotificationHandler.class);

public class MyNotificationHandler extends NotificationsHandler {
    private NotificationManager mNotificationManager;
    NotificationCompat.Builder builder;
    Context ctx;

    @Override
    public void onReceive(Context context, Bundle bundle) {
        ctx = context;
        String nhMessage = bundle.getString("Notification");
        PushMsgModel pModel = JsonHelper.getGson().fromJson(nhMessage, PushMsgModel.class);
        if (!pModel.getBody().getTag().equalsIgnoreCase(SPUtils.getPushTag())) {
            return;
        }
        sendNotification(context, pModel);
    }

    @Override
    public void onRegistered(final Context context, final String gcmRegistrationId) {
        super.onRegistered(context, gcmRegistrationId);

        new AsyncTask<Void, Void, Void>() {

            protected Void doInBackground(Void... params) {
                try {
                    String[] tags = {ShareData.CurrPushTag};
                    MainActivity.mClient.getPush().register(gcmRegistrationId, tags);
                    return null;
                } catch (Exception e) {
                    e.printStackTrace();
                }
                return null;
            }
        }.execute();
    }

    private void sendNotification(Context context, PushMsgModel pModel) {
        mNotificationManager = (NotificationManager)
                ctx.getSystemService(Context.NOTIFICATION_SERVICE);

        NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(ctx)
                .setSmallIcon(R.drawable.ic_launcher)
                .setContentTitle(pModel.getTitle())
                .setStyle(new NotificationCompat.BigTextStyle()
                        .bigText(pModel.getHeader()))
                .setAutoCancel(true)
                .setContentText(pModel.getHeader());
        mNotificationManager.notify(0, mBuilder.build());
    }

四、最后别忘了在配置AndroidManifest.xml信息

添加需要的权限和

<!-- push -->
<receiver
    android:name="com.microsoft.windowsazure.notifications.NotificationsBroadcastReceiver"
    android:permission="com.google.android.c2dm.permission.SEND">
    <intent-filter>
        <action android:name="com.google.android.c2dm.intent.RECEIVE" />
        <category android:name="com.waitur.app.customer" />
    </intent-filter>
</receiver>
具体操作参见文章开头的网址




版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

微软云技术Windows Azure专题(四):如何利用Mobile Service的计划程序连接到Service Bus定时推送消息

通过前几篇文章的学习,大家对推送都有了一定的了解。但是前边的推送任务都是手动添加的,如何实现云服务自主向用户推送信息呢?     本篇文章将讲解如何将Mobile Service连接到Service ...

微软云技术Windows Azure专题(二):如何利用Mobile向Windows商店应用推送消息(1)

本文介绍了如何使用Windows Azure的Mobile Service发送推送信息Windows商店应用程序。   建立一个Mobile Service的同时Azure会自动创建一个数据库。推送...

微软云技术Windows Azure专题(一):如何利用Service Bus向Windows商店应用推送消息

本文介绍了如何使用Windows Azure的Service Bus通知中心发送推送通知Windows商店应用程序。   先来明确一下大体上要做哪些步骤: 1.申请一个Windows应用商店的应用。...

微软云技术Windows Azure专题(三):如何利用Mobile向Windows商店应用推送消息(2)

上一讲我们讲了如何利用Mobile向Windows商店应用推送消息。可是用心的朋友会发现,这个推送只能对自己当前的电脑有效,并不能推送给所有安装了这个应用的用户。     哈哈,其实这里边用到了通道的...

微软云计算操作系统Windows Azure 平台——云+端全面攻略

微软云计算操作系统Windows Azure 平台——云+端全面攻略       Windows Azure Platform 开发入门 在云计算时代,有三个平台非常重要...

GCM云推送服务器端demo

  • 2016-03-21 19:20
  • 203KB
  • 下载

GCM(谷歌云推送)客户端服务器端开发全指南(客户端)

最近因为手头上的工作所以耽误了一下指南客户端篇的编写,而且客户端的功能实现是比较复杂的,处理的逻辑也是比较多的,所以也花了点时间去研究了一下。没有看我之前两篇博客的朋友这个demo是实现不了的,建议先...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)