記Android 極光推送接入工作

1缝裤、JCenter接入

依賴jpush和jcore模塊屏轰,開啟廠商通道需依賴對(duì)應(yīng)模塊lib,并在極光后臺(tái)對(duì)應(yīng)的應(yīng)用設(shè)置中開啟廠商開關(guān)憋飞。

dependencies {
    implementation 'cn.jiguang.sdk:jpush:3.3.6'
    implementation 'cn.jiguang.sdk:jcore:2.1.4'
    api 'cn.jiguang.sdk.plugin:xiaomi:3.3.6'
    api 'cn.jiguang.sdk.plugin:huawei:3.3.6'
    api 'cn.jiguang.sdk.plugin:meizu:3.3.6'
}

AndroidManifest中配置權(quán)限霎苗,添加必要組件。

        <!-- Since JCore2.0.0 Required SDK核心功能-->
        <!-- 可配置android:process參數(shù)將Service放在其他進(jìn)程中搀崭;android:enabled屬性不能是false -->
        <!-- 這個(gè)是自定義Service叨粘,要繼承極光JCommonService,可以在更多手機(jī)平臺(tái)上使得推送通道保持的更穩(wěn)定 -->
        <service android:name=".PushService"
            android:enabled="true"
            android:exported="false">
            <intent-filter>
                <action android:name="cn.jiguang.user.service.action" />
            </intent-filter>
        </service>


        <receiver android:name=".JPushCustomMessageReceiver">
            <intent-filter android:priority="1000">
                <action android:name="cn.jpush.android.intent.NOTIFICATION_RECEIVED_PROXY" />
                <!--Required  顯示通知欄 -->
                <category android:name="${applicationId}" />
            </intent-filter>
            <intent-filter>
                <action android:name="android.intent.action.USER_PRESENT" />
                <action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
            </intent-filter>
            <!-- Optional -->
            <intent-filter>
                <action android:name="android.intent.action.PACKAGE_ADDED" />
                <action android:name="android.intent.action.PACKAGE_REMOVED" />

                <data android:scheme="package" />
            </intent-filter>
        </receiver>

JPushCustomMessageReceiver用戶自定義廣播接受者瘤睹,繼承JPushMessageReceiver升敲,在onMessage方法中用戶可以自己處理消息回調(diào)。

    /**
     * 收到自定義消息回調(diào)
     *
     * @param context       Application
     * @param customMessage Message
     */
    @Override
    public void onMessage(Context context, CustomMessage customMessage) {
        super.onMessage(context, customMessage);
        Log.i("jiguang", customMessage.extra);

        HandleMessage.handleCustomMessage(context, customMessage);
    }

最后在代碼中調(diào)用極光初始化Api轰传。

2驴党、廠商通道

通過集成廠商通道,即使應(yīng)用退出進(jìn)程也可以收到推送消息获茬,需要單獨(dú)去各廠商注冊(cè)應(yīng)用港庄,申請(qǐng)id倔既、key等值。
module的build.gradle中需要定義廠商渠道變量鹏氧。

            manifestPlaceholders = ["authoritiesID"  : applicationId,
                                    XIAOMI_APPKEY    : "MI-您的應(yīng)用對(duì)應(yīng)的小米的APPKEY",//小米平臺(tái)注冊(cè)的appkey
                                    XIAOMI_APPID     : "MI-您的應(yīng)用對(duì)應(yīng)的小米的APPID",//小米平臺(tái)注冊(cè)的appid
                                    HUAWEI_APPID     : "您的應(yīng)用對(duì)應(yīng)華為的appID",
                                    MEIZU_APPKEY     : "MZ-您的應(yīng)用對(duì)應(yīng)的魅族appkey",//魅族平臺(tái)注冊(cè)的appkey
                                    MEIZU_APPID      : "MZ-您的應(yīng)用對(duì)應(yīng)魅族的appid",//魅族平臺(tái)注冊(cè)的appid
            ]

注意小米渤涌、魅族的前綴,因?yàn)樾∶捉o的AppId是一個(gè)長(zhǎng)數(shù)字型字符把还,最終打包后的值會(huì)被gradle替換為一個(gè)錯(cuò)誤值实蓬。

3、推送消息

在極光后臺(tái)有兩只推送方式:通知和自定義消息吊履;而服務(wù)端則是通過Api推送安皱。
在極光后臺(tái)推送時(shí),可選擇通過channel艇炎、標(biāo)簽或者registeredId來精準(zhǔn)推送酌伊。

4、極光推送自定義鈴聲

通過極光后臺(tái)的自定義消息方式推送缀踪,在JPushCustomMessageReceiver的onMessage回調(diào)中居砖,創(chuàng)建自定義通知。
Android 26開始辜贵,創(chuàng)建通知需要使用NotificationChannel悯蝉,在NotificationManager#createNotificationChannel方法調(diào)用前归形,可通過NotificationChannel#setSound設(shè)置自定義鈴聲托慨。
此通道的名稱也將顯示在手機(jī)通知管理中,默認(rèn)鈴聲即為設(shè)置的自定義鈴聲暇榴。

    // 自定義消息的通知使用此channel厚棵,自定義鈴聲
    public static String CUSTOM_CHANNEL_ID = "custom_channel_id";
    public static String CUSTOM_CHANNEL_NAME = "自定義推送";

    /**
     * 創(chuàng)建通知渠道
     */
    @RequiresApi(api = Build.VERSION_CODES.O)
    private static void notificationChannel() {

        NotificationManager manager = (NotificationManager) ZBApplication.getApplication().getSystemService(NOTIFICATION_SERVICE);

        NotificationChannel channel = new NotificationChannel(CUSTOM_CHANNEL_ID,
                CUSTOM_CHANNEL_NAME, NotificationManager.IMPORTANCE_HIGH);

        Uri sound = Uri.parse("android.resource://" + ZBApplication.getApplication().getPackageName() + "/"+ R.raw.sound);
        channel.setSound(sound, Notification.AUDIO_ATTRIBUTES_DEFAULT);

        channel.enableLights(true);//顯示桌面紅點(diǎn)
        channel.setLightColor(Color.GREEN);
        channel.enableVibration(true);
        channel.setShowBadge(true);
        channel.setLockscreenVisibility(Notification.VISIBILITY_PUBLIC);
        manager.createNotificationChannel(channel);

    }

如果發(fā)現(xiàn)自定義鈴聲未生效,應(yīng)當(dāng)排查此channel的id是否在其他地方已經(jīng)注冊(cè)過了蔼紧。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末婆硬,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子奸例,更是在濱河造成了極大的恐慌彬犯,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,122評(píng)論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件查吊,死亡現(xiàn)場(chǎng)離奇詭異谐区,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)逻卖,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,070評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門宋列,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人评也,你說我怎么就攤上這事炼杖∶鸱担” “怎么了?”我有些...
    開封第一講書人閱讀 164,491評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵坤邪,是天一觀的道長(zhǎng)熙含。 經(jīng)常有香客問我,道長(zhǎng)艇纺,這世上最難降的妖魔是什么婆芦? 我笑而不...
    開封第一講書人閱讀 58,636評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮喂饥,結(jié)果婚禮上消约,老公的妹妹穿的比我還像新娘。我一直安慰自己员帮,他們只是感情好或粮,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,676評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著捞高,像睡著了一般氯材。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上硝岗,一...
    開封第一講書人閱讀 51,541評(píng)論 1 305
  • 那天氢哮,我揣著相機(jī)與錄音,去河邊找鬼型檀。 笑死冗尤,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的胀溺。 我是一名探鬼主播裂七,決...
    沈念sama閱讀 40,292評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼仓坞!你這毒婦竟也來了背零?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,211評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤无埃,失蹤者是張志新(化名)和其女友劉穎徙瓶,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體嫉称,經(jīng)...
    沈念sama閱讀 45,655評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡侦镇,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,846評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了澎埠。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片虽缕。...
    茶點(diǎn)故事閱讀 39,965評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出氮趋,到底是詐尸還是另有隱情伍派,我是刑警寧澤,帶...
    沈念sama閱讀 35,684評(píng)論 5 347
  • 正文 年R本政府宣布剩胁,位于F島的核電站诉植,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏昵观。R本人自食惡果不足惜晾腔,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,295評(píng)論 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望啊犬。 院中可真熱鬧灼擂,春花似錦、人聲如沸觉至。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,894評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽语御。三九已至峻贮,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間应闯,已是汗流浹背纤控。 一陣腳步聲響...
    開封第一講書人閱讀 33,012評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留碉纺,地道東北人船万。 一個(gè)月前我還...
    沈念sama閱讀 48,126評(píng)論 3 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像惜辑,于是被迫代替她去往敵國(guó)和親唬涧。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,914評(píng)論 2 355