`

android push机制-C2DM

阅读更多

http://bigcat.easymorse.com/?p=1210

 

 

 

参考http://code.google.com/intl/zh-CN/android/c2dm/index.html#intro android2.2以上支持,支持第三方应用程序的push。实现令人心动的消息push,GMail就是这么实现的,收信的速度比网页还快。 Components: 1,移动设备:必须运行android,并且安装Market,至少有一个登录的google账号。(Google坑爹啊) 2,自己的服务器:自己的服务器 3,C2DM服务器:google的服务器 授权机制: 1,Sender ID:一个google账号,用于标示开发者的身份,比如my-app@google.com 2,Application ID:Manifest.xml里面的pacakage name。用于标示应用程序 3,Registration ID:当应用程序向C2DM服务器注册时,C2DM服务器会返回这个ID,当应用程序获得这个ID之后,应该告诉自己的服务器,自己的服务器把这个ID存在数据库里面,用于告诉C2DM服务器标示客户端。 4,Google User Account:要使用C2DM服务,必须有一个google账号,再骂一次,坑爹啊GG。 5,Sender Auth Token:自己的服务器与C2DM服务器通信的认证。 应用程序发送Intent,com.google.android.c2dm.intent.REGISTER,附上自己的SenderID和AppId,就可以向C2DM服务器进行注册,注册成功之后,可以收到REGISTRATION Intent,获得Registration ID,这个Registration ID是会被C2DM改变的,所以这个REGISTRATION Intent可能会收到多次,要记得存储和发送给自己的服务器。 Here is the sequence of events that occurs when the application server sends a message: 1,The application server sends a message to C2DM servers. 2,Google enqueues and stores the message in case the device is inactive. 3,When the device is online, Google sends the message to the device. 4,On the device, the system broadcasts the message to the specified application via Intent broadcast with proper permissions, so that only the targeted application gets the message. This wakes the application up. 5,The application does not need to be running beforehand to receive the message.The application processes the message. If the application is doing non-trivial processing, you may want to grab a wake lock and do any processing in a Service. An application can unregister C2DM if it no longer wants to receive messages. This is the sequence of events that occurs when an Android application running on a mobile device receives a message: 1,The system receives the incoming message and extracts the raw key/value pairs from the message payload. 2,The system passes the key/value pairs to the targeted Android application in a com.google.android.c2dm.intent.RECEIVE Intent as a set of extras. 3,The Android application extracts the raw data from the RECEIVE Intent by key and processes the data.

分享到:
评论

相关推荐

    android-push-applications-Google.pdf

    为了确保消息的有效传输,Android C2DM服务采用了以下机制: - **背景服务**:尊重用户的后台数据设置,并在网络可用时启动。 - **心跳机制**:通过周期性的心跳请求来保持与服务器的连接,并检测断线情况。 - **...

    android C2DM基本原理浅析

    Android C2DM 从服务器端将数据push到客户端

    Android push notification方案比较

    在开发Android应用时,向用户实时推送通知是必不可少的功能,Android提供了多种推送通知方案,包括C2DM(Cloud to Device Messaging)、MQTT(Message Queuing Telemetry Transport)和XMPP(Extensible Messaging ...

    C2DMMessageServer--服务器端代码开发

    【C2DMMessageServer——服务器端代码开发】 这篇文章主要探讨的是如何开发一个基于Google的Cloud to Device Messaging(C2DM)服务的服务器端程序...但学习C2DM的历史和机制,对于理解FCM的工作方式也有一定的帮助。

    android 推送

    ### Android C2DM 云端推送服务详解 #### 一、基础知识与重要性 在移动应用开发过程中,特别是在Android平台上,为了使应用能够实时地获取服务器端的最新信息,开发者通常面临两种选择:Pull(拉取)和Push(推送...

    AndroidC2DMDemo--客户端代码开发

    **Android C2DM (Cloud to Device Messaging) 是Google推出的一种推送通知服务,它允许服务器向Android设备发送简短的消息,从而触发应用的某些操作。在本文中,我们将深入探讨Android C2DM服务的客户端代码开发,...

    AndroidC2DMDemo

    C2DM服务是Google为开发者提供的一种轻量级通信机制,用于从互联网服务器向Android设备发送数据。这种服务主要应用于实现远程推送通知,使得应用即使在后台或未运行状态下也能接收到服务器的消息。这对于构建实时...

    android-push-notification

    <uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" /> <permission android:name="your.package.name.permission.C2D_MESSAGE" android:protectionLevel="signature" /> <uses-...

    Titanium-Android-gcm-push-notification-with-bigpicture:带有大图片的 Titanium Android gcm 推送通知

    Google-Cloud-Messaging--Titanium- Android 平台正在使用 c2dm 进行推送通知,但由于 c2dm 已停止接受新用户,因此我们决定使用 google 提供的新服务,即 Google Cloud Messaging (GCM)。 当前最新版本是 0.5更改...

    android push开发

    2.Google的C2DM,具体不细说,缺点,服务器在国外,你懂得,不是很稳定。 3.XMPP协议,它是一种基于XML的传递协议,具有很强的灵活性和可扩展性。它的特点是将复杂性从客户端转移到了服务器端。 听说GTalk、QQ、IM等...

    Android Push Notification客户端源码包

    Android Push Notification基于Google的云到设备消息服务(Cloud to Device Messaging,C2DM),现在已被Firebase Cloud Messaging(FCM)所取代。FCM是Google提供的一种免费的服务,用于在云端和Android应用之间...

    Android推送服务的应用开发.pdf

    自Android 2.2版本开始,系统集成了C2DM框架,支持了Push功能。尽管C2DM目前还在实验阶段,但已经足够应对小规模的使用需求。 实现C2DM推送服务需要满足几个条件:首先,设备需运行Android 2.2及以上版本;其次,...

    android xmpp push实现

    C2DM是Google为Android提供的一个推送服务,但它仅支持2.2及更高版本的系统,且依赖Google的服务器,这在国内网络环境下可能导致不稳定。因此,开发者需要寻找替代方案。以下是一些常见的方法: 1. **轮询**:应用...

    Android基于mqtt消息推送通知指南

    Google 提供了 C2DM(Cloud to Device Messaging)服务,但它存在一些问题,如仅适用于 Android 2.2 及以上系统,需要依赖于 Google 官方提供的 C2DM 服务器,限制了其使用。 为了解决这些问题,我们需要自己实现 ...

    android-PushSharp

    PushSharp 是一个强大的服务器端库,专为开发者设计,用于向多种平台发送推送通知,包括 iOS 设备(iPhone 和 iPad 通过 APNs,Apple Push Notification service)、Android 设备(通过 C2DM 和 GCM,即 Cloud to ...

    Android:最全面解析Android消息推送解决方案.docx

    优点是提供了一个简单的、轻量级的机制,但缺点是依赖于 Google 官方提供的 C2DM 服务器,在国内使用 Google 服务需要访问外国网站,成本较大。 2. 轮询 轮询是基于 Pull 方式的解决方案,应用程序隔固定时间主动...

    push-notifications-WebView:一个示例Android应用程序,该应用程序使用Google Cloud Messaging实现了推送通知

    4. **权限设置**:为了使用GCM服务,应用需要在AndroidManifest.xml文件中声明相应的权限,如`<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />` 和 `<permission android:name=...

    The Android Developer‘s Cookbook 2nd Edition

    Storing data via SQLite and other methods* Integrating in-app billing using Google Play services* Managing push messaging with C2DM* Leveraging new components and structures for native Android ...

    android推送解决方案

    Android Cloud to Device Messaging (C2DM)是一个用来帮助开发者从服务器向 Android 应用程序发送数据的服务。该服务提供了一个简单的、轻量级的机制,允许服务器可以通知移动应用程序直接与服务器进行通信,以便于...

    微信ANDROID客户端架构演进及其对开发流程的影响.pdf

    - **解决方案**:在没有Google Cloud Messaging (GCM) 或者 Cloud to Device Messaging (C2DM) 的支持下,通过自定义的推送机制以及精确的心跳周期维持来保证消息的及时推送。 **2. 安装包体积膨胀** - **解决方案...

Global site tag (gtag.js) - Google Analytics