更新於 2019/05/11閱讀時間約 8 分鐘

用 LightSpeed 做 Push Notification

    轉移自 LogDown 原文日期 May 30, 2014 10:14
    之前介紹過用 Parse 來做 push,這次換成另一家服務廠商。 Lightspeed 官網: http://www.lightspeedmbs.com/。 它是由 arrownock 延伸而來的,專職於推播和即時訊息。 SDK 和官方說明文件必須註冊後才能取得。 目前筆者主攻 Android ,所以以下都針對 Android 開發部分介紹。 它的推播可以用 gcm 的方式也可以用 Lightspeed 自己的服務,筆者採用的是後者。
    官方文件 提供的是 SDK 裡面 method 的用法。 官方導引頁面 已經有一陣子未更新,所以有些部分已不符合現況,比如說管理控制台裡面並沒有地方可以設定 Android App package 。
    將下載好的 SDK ,也就是 jar 檔,放到專案的 libary 資料夾。
    因為它的啟動是放在整個應用裡,所以要先新建一個 MyApplication.java 檔案。 值得注意的是: 註冊的頻道至少要有一個,否則會註冊無效。 筆者曾經痛苦的卡在這裡。

    MyApplication.java public class MyApplication extends android.app.Application { @Override public void onCreate() { super.onCreate(); List channels = new ArrayList(); //must at least one channel  channels.add("android"); try { /*     * connection default use https, if devices not support, do this    * AnPush.getInstance(getBaseContext()).setSecureConnection(false);    */ AnPush.getInstance(getBaseContext()).register(channels); AnPush.getInstance(getBaseContext()).enable(); } catch (ArrownockException ex) { Log.e(TAG, ex.getMessage()); } } }
     

    別忘了建立好之後在 AndroidManifest.xml 的 application 標簽裡加上去。

    AndroidManifest.xml <application ...... android:name=".MyApplication" >
     

    啟動完成再來就是設定接收 push 的部分了,請加在 AndroidManifest.xml 裡的 application 標簽之間。 MainActivity 的部分要換成負責接收的 Activity 全路徑,比如說: com.example.MainActivity arrownock_key 的部分請填從網頁(路徑一般是/settings/keys)拿到的 key 。

    AndroidManifest.xml  <meta-data android:name="com.arrownock.push.SERVICE_TYPE" android:value="ARROWNOCK" /> <meta-data android:name="com.arrownock.APP_KEY" android:value="arrownock_key"/> <meta-data android:name="com.arrownock.push.KEEPALIVE_INTERVAL_WIFI" android:value="14" /> <meta-data android:name="com.arrownock.push.KEEPALIVE_INTERVAL_2G" android:value="4" /> <meta-data android:name="com.arrownock.push.KEEPALIVE_INTERVAL_3G" android:value="4" /> <service android:name="com.arrownock.push.PushService" /> <receiver android:name="com.arrownock.push.PushBroadcastReceiver" > <intent-filter> <action android:name="android.intent.action.BOOT_COMPLETED" /> <action android:name="android.intent.action.USER_PRESENT" /> <action android:name="com.arrownock.push.PushService.MSG_ARRIVAL" /> <category android:name="android.intent.category.HOME" /> </intent-filter> <meta-data android:name="com.arrownock.push.BroadcastReceiver.ArrivalActivity" android:value="MainActivity" /> </receiver>
     

    最後是打開權限,加在 AndroidManifest.xml 裡的 manifest 標簽之間。

    AndroidManifest.xml  <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> <uses-permission android:name="android.permission.READ_PHONE_STATE" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.VIBRATE" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.WAKE_LOCK" />
     

    趕快去測試是不是已經可以收到推播啦!
    分享至
    成為作者繼續創作的動力吧!
    © 2024 vocus All rights reserved.