隨筆-31  評論-14  文章-0  trackbacks-0

          APNS 是什么?

          APNS (Android Push Notification Service) 是一種在 android 上輕松實現 push notification 的功能的解決方案. 只需申請一個 API Key, 經過簡單的步驟即可實現 push notification 的功能.

          特點:

        1. 快速集成:提供一種比C2DM更加快捷的使用方式,避免各種限制.
        2. 無需架設服務器:通過使用"云服務",減少額外服務器負擔.
        3. 可以同時推送消息到網站頁面,android 手機
        4. 耗電少,占用流量少.
        5.  

          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 { 	@Override 	public 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 Id devId:接收設備 Id msg:消息 random:隨機數 hash:md5(ch + devId + msg + random + apiKey)
          posted on 2012-07-21 22:15 zhanghu198901 閱讀(1750) 評論(1)  編輯  收藏

          評論:
          # re: android push notification serfice android中的push機制[未登錄] 2014-08-26 16:11 |
          啊啊   回復  更多評論
            

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 行唐县| 宁武县| 闻喜县| 札达县| 怀柔区| 昌平区| 陆川县| 富宁县| 广平县| 黎城县| 延吉市| 常宁市| 喜德县| 大渡口区| 浦东新区| 南靖县| 上林县| 金门县| 哈巴河县| 米林县| 福鼎市| 四会市| 山东省| 泾源县| 台山市| 阜康市| 漳浦县| 策勒县| 吴江市| 南投市| 卢湾区| 望城县| 永昌县| 阳曲县| 乐山市| 洛扎县| 泾源县| 波密县| 达日县| 若羌县| 大方县|