APNS 是什么?

APNS (Android Push Notification Service) 是一种在 android 上轻松实现 push notification 的功能的解决方案. 只需申请一个 API Key, 经过简单的步骤即可实现 push notification 的功能.

特点:

  • 快速集成:提供一种比C2DM更加快捷的使用方式,避免各种限制.
  • 无需架设服务器:通过使用"云服务",减少额外服务器负担.
  • 可以同时推送消息到网站页面,android 手机
  • 耗电少,占用流量少.
  • http://zen-mobi.com/get_api_key.php获取apikey

    如何在 Android 应用中使用 Notification ?

    a) 在应用中添加 APNS 功能

    1. 下载 libaray: com_apns.jar
    2. 将com_apns.jar添加到工程
    3. 在工程上右键打开“属性”,选择 “Java Build Path”, 在 Libraries 中选择 “Add External JARs”, 选择下载的 com_apns.jar.

    4. 接收 push notification
    5. 使用BroadcastReceiver接收系统广播:public class MyBroadcastReceiver extends BroadcastReceiver {@Overridepublic void onReceive(Context context, Intent intent) {     if (intent.getAction().equals(APNService.ON_NOTIFICATION)) {String str = intent.getStringExtra("data");//todo, 处理收到的消息 } }}
    6. 启动 Push Notification Service
    7. 发送Intent 启动服务,将 chanel Id 以及 此设备的标识 (chanel中唯一表示此设备的字符串) 传递过去:     Intent intent = new Intent(APNService.START);    intent.putExtra("ch", chanel);    intent.putExtra("devId", devId);    startService(intent);
      Notes Chanel Id 在申请 API 后,登录开发者页面会看到. devId: chanel 内设备标识,要在chanel内保持唯一.
    8. 配置 AndroidManifest.xml
    9. ...<application android:icon="@drawable/icon"    ...  <service android:name="com.apns.APNSService" android:label="APNS">         <intent-filter>             <action android:name="com.apns.APNService.START" />             <action android:name="com.apns.APNService.STOP" />             <category android:name="android.intent.category.DEFAULT"/>         </intent-filter> </service> <receiver android:name="MyBroadcastReceiver">      <intent-filter>          <action android:name="com.apnsd.APNService.NOTIFICATION" />      </intent-filter> </receiver></application><uses-permission android:name="android.permission.INTERNET" /><uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />...


    b) 发送 Notification 到设备

    通过 rest 接口发送 Notification:
    http://www.push-notification.org/handlers/apns_v1.php?ch=YourChannelId&devId=xxxxx&msg =hello world&random=0123&hash=HashCode

    ch:Channel IddevId:接收设备 Idmsg:消息random:随机数hash:md5(ch + devId + msg + random + apiKey)
    Notes 申请API后,可登录开发者页面使用测试控制台进行API测试.

    更多相关文章

    1. Android消息机制——Handler、Looper、MessageQueue
    2. Android 消息提示框:五种Toast详解
    3. Android 消息机制之Message
    4. Android的消息处理机制(深入源码)
    5. Android消息处理系统原理简要概述
    6. 深入理解Android消息处理系统——Looper、Handler、Thread
    7. 【Android 开发】: Android 消息处理机制之三: Handler 中 sendM
    8. Android系统移植与调试之------->如何修改Android设备存储盘符名

    随机推荐

    1. [应用代码] android源码之多线程断点续传
    2. Android开发如何设置文字阴影
    3. 恶意吸费之后,你渴望开放还是开源?
    4. Android中的SQLite使用学习
    5. android 所有布局属性和UI控件
    6. (4) Android中Binder调用流程 --- bindServ
    7. android ListView没有数据时信息显示
    8. Android如何实现模糊的半透明窗口
    9. CyanogenMod创始人宣布加入三星移动 “让
    10. Android消息提示框Toast