APNS 是什么?
APNS (Android Push Notification Service) 是一種在 android 上輕松實現(xiàn) push notification 的功能的解決方案. 只需申請一個 API Key, 經(jīng)過簡單的步驟即可實現(xiàn) push notification 的功能.
特點:
快速集成:提供一種比C2DM更加快捷的使用方式,避免各種限制.無需架設(shè)服務(wù)器:通過使用"云服務(wù)",減少額外服務(wù)器負(fù)擔(dān).可以同時推送消息到網(wǎng)站頁面,android 手機(jī)耗電少,占用流量少.
http://zen-mobi.com/get_api_key.php獲取apikey
如何在 Android 應(yīng)用中使用 Notification ?
a) 在應(yīng)用中添加 APNS 功能
- 下載 libaray: com_apns.jar
- 將com_apns.jar添加到工程
在工程上右鍵打開“屬性”,選擇 “Java Build Path”, 在 Libraries 中選擇 “Add External JARs”, 選擇下載的 com_apns.jar.
- 接收 push notification
使用BroadcastReceiver接收系統(tǒng)廣播: 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, 處理收到的消息 } } }
- 啟動 Push Notification Service
發(fā)送Intent 啟動服務(wù),將 chanel Id 以及 此設(shè)備的標(biāo)識 (chanel中唯一表示此設(shè)備的字符串) 傳遞過去: Intent intent = new Intent(APNService.START); intent.putExtra("ch", chanel); intent.putExtra("devId", devId); startService(intent);
Notes Chanel Id 在申請 API 后,登錄開發(fā)者頁面會看到. devId: chanel 內(nèi)設(shè)備標(biāo)識,要在chanel內(nèi)保持唯一.- 配置 AndroidManifest.xml
... <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) 發(fā)送 Notification 到設(shè)備
通過 rest 接口發(fā)送 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:接收設(shè)備 Id msg:消息 random:隨機(jī)數(shù) hash:md5(ch + devId + msg + random + apiKey)
posted on 2012-07-21 22:15
zhanghu198901 閱讀(1745)
評論(1) 編輯 收藏