隨筆-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 |
          啊啊   回復  更多評論
            

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


          網站導航:
           
          主站蜘蛛池模板: 涞水县| 含山县| 集贤县| 天长市| 林口县| 六安市| 宁德市| 宁陕县| 台东县| 蚌埠市| 郁南县| 云安县| 仁化县| 平果县| 中方县| 津市市| 宝应县| 通道| 荣昌县| 灵山县| 青浦区| 宁蒗| 衡阳市| 扶余县| 麦盖提县| 泾阳县| 磐安县| 蓬安县| 张家口市| 内丘县| 荥阳市| 武乡县| 芦溪县| 监利县| 楚雄市| 阿图什市| 昔阳县| 锡林浩特市| 两当县| 漾濞| 昌江|