(以上純屬巧合)
以相聲風格說一說百度雲推送會是什么效果了。
百度雲推送,就他媽三個字呀,當里個當,當里個當.快呀呀准呀省,快呀呀是個啥,如箭一樣推過去。准字嗎是個嗎,億萬數據中最精確給他。省字什么啊,有了雲推送,流量沒有漲,沒有雲推送,流量刷嘩嘩。當里個當,當里個當。你是開發者,怎么來用它,你去看文檔,文檔哪兒有,網址再這呀。http://developer.baidu.com/wiki/index.php?title=docs/cplat/push/sdk/clientsdk。
上面一小段,我們說了嗎說了嗎,說了雲推送的大體框架,當里個當,當里個當.接下一小段,我們要干嘛要干嘛,來說說開發的具體事情呀。
打開這文檔,文檔這么長,一共有那32個頁。我撇機撇機大嘴巴,這讓我怎么看。我找啊找啊找,當里個當,當里個當.找的我老眼又昏花。以我多年編程的屁經驗,首先應該把那入口吧,就像一切函數有那main函數。項目中有個函數叫做oncreate函數。源代碼是這樣的:
public class DemoApplication extends FrontiaApplication { @Override public void onCreate() { //必須加上這一句,否則會崩潰 super.onCreate(); } }
這句代碼呀,真的要加上,否則真的會崩潰。
當里個當,這個application體現整個app的生命周期,倘若你沒初始化,manifest中的初始化不可少。你要加上android:name的標簽。代碼便如下:
<application android:name="com.baidu.push.example.DemoApplication" android:icon="@drawable/ic_launcher" android:label="@string/app_name">
當里個當,這個application中的oncreate函數必須加上這么一句呀!代碼這么咋:
FrontiaApplication.initFrontiaApplication(Context context)
當里個當,權限是個啥玩意,有了才能玩,一定要加上,manifest這個文件中,一定要加上,代碼便爬下:
<uses-permission android:name="android.permission.INTERNET"/> <uses-permission android:name="android.permission.READ_PHONE_STATE" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> <uses-permission android:name="android.permission.WRITE_SETTINGS" /> <uses-permission android:name="android.permission.VIBRATE" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.DISABLE_KEY GUARD" /> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
以上是代碼,有了這些的代碼,security的異常快快滾回家,從此logcat文件再也不見他.
當里個當,一個Reciver代碼要注冊,多了接收者,推送這個鬼,請到碗里來。代碼怎么樣,抬頭自己瞅。
<!-- push service client --> <receiver android:name="your.package.MyPushMessageReceiver"> <intent-filter> <!-- 接收 push消息 --> <action android:name="com.baidu.android.pushservice.action.MESSAGE" /> <!-- 接收 bind、setTags等 method的返回結果 --> <action android:name="com.baidu.android.pushservice.action.RECEIVE" /> <!-- 可選。接受通知點擊事件,和通知自定義內容 --> <action android:name=" com.baidu.android.pushservice.action.notification.CLICK”/> </intent-filter> </receiver>
當里個當,一個Service勞模對象不可少,我該字母哦做,繼續查資料,manifest清單又派上大用場,這就是源碼:
<!-- push service start --> <!-- 用於接收系統消息以保證 PushService正常運行 --> <receiver android:name="com.baidu.android.pushservice.MyPushServiceReceiver" android:process=": bdservice_v1"> <intent-filter> <action android:name="android.intent.action.BOOT_COMPLETED" /> <action android:name="android.net.conn.CONNECTIVITY_CHANGE" /> <action android:name="com.baidu.android.pushservice.action.notification.SHOW" /> <action android:name="com.baidu.android.pushservice.action.media.CLICK" /> </intent-filter> </receiver> <!-- Push服務接收客戶端發送的各種請求--> <!-- 注意:RegistrationReceiver 在 2.1.1及之前版本有拼寫失誤,為 RegistratonReceiver ,用新 版本 SDK 時請更改為如下代碼--> <receiver android:name="com.baidu.android.pushservice.RegistrationReceiver" android:process=": bdservice_v1"> <intent-filter> <action android:name="com.baidu.android.pushservice.action.METHOD " /> <action android:name="com.baidu.android.pushservice.action.BIND_SYNC " /> </intent-filter> <intent-filter> <action android:name="android.intent.action.PACKAGE_REMOVED"/> <data android:scheme="package" /> </intent-filter> </receiver> <!-- Push 服務 --> <service android:name="com.baidu.android.pushservice.PushService" android:exported="true" android:process=" bdservice_v1"/>
當里個當,這就是代碼,一個推送服務已介紹,如果要進步了解,懇請大家自己找。
當里個當,以上的篇幅,只是王婆來賣瓜,賣瓜又自誇。
當里個當,百度雲推送,方便又好用。特推,jpush簡直要弱爆,騰訊的產品,阿里的技術靈魂護體,代表了中國牛逼互聯網的光榮傳統和歷史,不要給google,amzon任何機會,李彥宏生日快樂。