1. 程式人生 > >華為推送-華為PUSH SDK Android版接入方法

華為推送-華為PUSH SDK Android版接入方法

    整理了整個接入過程以及常用用法

檢查通道是否連線: adb shell netstat –ano | find "118"

整合過程

1.拷貝jar及res資原始檔 androidManifest.xml檔案中的所有activity, receiver, service, meta-data拷 貝至自己的AndroidManifest.xml檔案中
2.混淆打包 開發者編譯APK時請不要混淆本SDK,避免功能異常。在配置檔案中加入:-keep class com.huawei.android.pushagent.**{*;}-keep class com.huawei.android
. pushselfshow.**{*;}
-keep class com.huawei.android. microkernel.**{*;}-keep class com.baidu.mapapi.**{*;} 3.App 使用 SDK 進行開發
1.Token 申請 // 獲取客戶端AccessToken,獲取之前請先確定該應用(包名)已經在開發者聯盟上建立成功,並申請、稽核通過Push權益// 該測試應用已經註冊過PushManager.requestToken(PustDemoActivity.this); 2.設定標籤資訊,標籤以 key-value 的 Map 提供
String
tag1KeyStr = mEdTag1Key.getText().toString();
String tag1ValueStr = mEdTag1Value.getText().toString();HashMap<String,String> map =newHashMap<String,String>();if(!TextUtils.isEmpty(tag1KeyStr)&&!TextUtils.isEmpty(tag1ValueStr)){ map.put(tag1KeyStr, tag1ValueStr);
}try{PushManager.setTags(TagReportActivity.this, map);}catch(PushException e){Log.e(TAG, e.toString());} 3.獲取當前裝置當前應用已經設定的標籤資訊
Map<String,String> tags;try{ tags =PushManager.getTags(TagReportActivity.this);String tip ="";if(null!= tags &&!tags.isEmpty()){for(Map.Entry<String,String> mapEntry : tags.entrySet()){String key = mapEntry.getKey();String value = mapEntry.getValue(); tip +=("tagKey:"+ key +", tagValue:"+ value+"; ");}Log.w(TAG, tip);Toast.makeText(TagReportActivity.this, tip,Toast.LENGTH_SHORT).show();}}catch(PushException e){Log.e(TAG, e.toString());} 刪除當前裝置當前應用的標籤資訊
String delKeyStr = mEdDeleteKey.getText().toString();List<String> list =newArrayList<String>(); list.add(delKeyStr);try{PushManager.deleteTags(TagReportActivity.this, list);}catch(PushException e){Log.e(TAG, e.toString());}

回撥介面說明

回撥介面由業務繼承com.huawei.android.pushagent.api.PushEventReceiver 現必要的回撥方法。 各回調方法都是在新開啟的執行緒中處理。
1.實現 Token 返回給應用:本介面必須被實現 2.實現訊息透傳給應用: 本介面必須被實現 3.實現業務事件的回撥  由業務決定是否呼叫該函式。 publicvoid onEvent(Context context,Event event,Bundle extras){if(Event.NOTIFICATION_OPENED.equals(event)||Event.NOTIFICATION_CLICK_BTN.equals(event)){int notifyId = extras.getInt(BOUND_KEY.pushNotifyId,0);if(0!= notifyId){NotificationManager manager =(NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE); manager.cancel(notifyId);}String content ="收到通知附加訊息: "+ extras.getString(BOUND_KEY.pushMsgKey);Log.w(PustDemoActivity.TAG, content); showPushMessage(PustDemoActivity.RECEIVE_NOTIFY_CLICK_MSG, content);}elseif(Event.PLUGINRSP.equals(event)){finalint TYPE_LBS =1;finalint TYPE_TAG =2;int reportType = extras.getInt(BOUND_KEY.PLUGINREPORTTYPE,-1);boolean isSuccess = extras.getBoolean(BOUND_KEY.PLUGINREPORTRESULT,false);String message ="";if(TYPE_LBS == reportType){ message ="LBS report result :";}elseif(TYPE_TAG == reportType){ message ="TAG report result :";}Log.w(PustDemoActivity.TAG, message + isSuccess); showPushMessage(PustDemoActivity.RECEIVE_TAG_LBS_MSG, message + isSuccess);}super.onEvent(context, event, extras);} 注意事項1)建議不要在繼承的PushEventReceiver中做過多的邏輯處理,如啟執行緒、啟動hander等。2 push業務邏輯需要將push相關的ReceiverService在一個程序中,請勿修改下面部分:<receiver android:name=" com.huawei.android.pushagent.PushEventReceiver "android:process=":pushservice"><receiver android:name="com.huawei.android.pushagent.PushBootReceiver"android:process=":pushservice"><service android:name=" com.huawei.android.pushagent.PushService "android:process=":pushservice">3)因為APP涉及到多程序,每個程序啟動時,會預設初始化Application,所以為了防止標籤重複上報,建議不要在自定義的Application類裡面呼叫標籤上報等操作。4)在某些手機上申請token不成功,可能是被手機系統或其他安全性軟體限制,建議在手機中設定允許應用開機自啟動再嘗試 透傳訊息偶爾不能夠拉起應用 在小米手機上,給這個應用設定:保持後臺執行和允許開機啟動。在部分品牌手機上也可以使用該方法解決。 官方文件中說明:透傳訊息需要設定開機自啟動才能拉起應用 華為手機上:Emui3.0上,Push廣播有很大概率被限制,如:Mate73.0版本,榮耀6plusP7 3.0版本,4X4A等。Emui3.1上,Push廣播基本不被限制,但個別型號機型存在問題,如:榮耀5x等。Emui4.0及以上,Push廣播有較高概率被限制,不被限制的機型如:榮耀暢玩4C,榮耀暢玩4XMate S

相關推薦

-PUSH SDK Android接入方法

    整理了整個接入過程以及常用用法 檢查通道是否連線: adb shell netstat –ano | find "118" 整合過程 1.拷貝jar及res資原始檔 androidMa

接入,開發流程, 與遇到的坑(PUSH SDK 和 HMS SDK

本文收到以下連結,的一部分啟發: http://cn.club.vmall.com/thread-12831573-1-1.html 一、思路: 首先映入眼簾的當然是註冊“華為開發者聯盟”,然後下載sdk,看文件,新增程式碼,在開發者聯盟填寫包名, 填寫keystone的S

Android 整合 push

由於專案需要我們不得不對華為push進行研究。 按照國際慣例先百度一波,發現各個大牛都是對於華為push的填坑,很明顯,這個推送的問題還是有很多的。 這裡引用:Android整合華為推送踩坑問題總結 使用老版push還是新版push PushReceiver中的onEve

Android 整合

Android的推送業務現狀還是比較混亂,手機廠商各有一套推送機制和SDK需要你去整合,今天先談一談華為的推送服務整合吧 整合背景:React Native專案,已經集成了一套JPush,但是目前相當一部分Android機型極光推送在應用殺掉之後是不能喚醒的,Android和Appl

Android詳細總結功能

1、前言 Android整合推送功能也算是有好幾個SDK了,包括極光、個推、小米。但是真心感覺華為的文件寫的太差,封裝的也不好,別的開發文件看一兩遍就能按照文件整合成功,而華為仔細看了幾遍都沒完全搞懂要幹啥。還去查了一下別人的封裝過程才看懂。本來還對中國第一大品牌抱有很大期望,看了以後感覺有

android接入注意點

        由於公司產品有及時聊天功能,因此對資訊達到及時性要求比較高,因此安排我處理部分android手機在app不執行情況下的資訊推送。下面分別介紹華為推送和小米推送接入。        一、華為推送 接入之前,我先研究了華為推送的demo,目前華為推送官網是HMS

Delphi呼叫

華為開發平臺網址: http://developer.huawei.com/push 華為HMS文件地址 http://developer.huawei.com/consumer/cn/wiki/index.php?title=HMS開發指導書-開發準備 華為推送文件地址

的文件就是垃圾垃圾垃圾!

華為手機加入程序組機制,後臺幹掉應用後進程也隨之被幹掉,這對推送和常駐程序相關方面開發有很大影響,為了解決這一問題使用華為推送,華為推送程序就是常駐,這樣我們可以保證推送送達率以及搞點小動作:程序保活。 在接入華為推送請不要看那垃圾文件,有問題參考簡書相關部落

Java Access Token過期重新整理

相信大家都遇到過這樣的需求,就是整合各種各樣的推送通道,信鴿、小米、華為等等。今天我就來說說我在整合華為推送過程中遇到的小坑------Access Token過期問題。 //標註1 //樣例中

使用向伺服器註冊,並接收訊息,處理訊息點選事件。

華為推送是華為公司推出的,優秀的推送服務,在專案中,我使用了華為的推送服務,記錄下來,供其他同學參考。 1.配置Maven庫 在allprojects->repositories 裡面配置HMSSDK的maven倉。  allprojects {         

android接入

最近公司產品想要提高使用者體驗,便讓我研究一下華為推送的問題。其實推送最重要的就是程序保活的這個問題,這是一個比較棘手的問題。現在比較普遍的做法是整合多個廠商的推送,例如小米,華為,魅族推送等,再加一個另外的第三方推送(個推,極光,信鴿)。今天主要講的是華為推動

整合手機App在活動點開重啟App並且未進入到落地頁

問題描述:1、為了提高推送的到達率,在有極光推送的基礎上,App又集成了小米、魅族、華為三家自己的推送服務。2、華為手機在App在前臺時候,點選推送App重啟,並且推送沒有進入到對應的落地頁。(又是你,華為!)解決問題:後臺傳送推送時頁面,會有如圖內容:解決步驟:1、首先在A

安卓統一聯盟成立——何”?

推送是什麼? 大家可能聽說過, iOS 系統有統一的推送通道,而安卓則每個 APP 各自為政,幾乎每個軟體都請求後臺任務以接收通知。而現在,安卓統一推送聯盟成立,目標就是為了解決這個問題。不過,你知道這個“推送通道”的原理是什麼嗎? 概括起來說,就是:各軟體

最簡單的基於FFmpeg的流器(以RTMP例)

由於工作一部分工作是作為流媒體伺服器的程式設計師。所以自己那塊也算是處理了推流器的一塊程式碼吧。 這邊是從網上轉載的文章,原文:http://blog.csdn.net/leixiaohua1020/article/details/46890487 =========

HTTP/2 服務器(Server Push)教程(HTTP/2 協議的主要目的是提高網頁性能,配置Nginx和Apache)

tcp tac 面板 參考 寫入 修改 現實 多個 後端 HTTP/2 協議的主要目的是提高網頁性能。 頭信息(header)原來是直接傳輸文本,現在是壓縮後傳輸。原來是同一個 TCP 連接裏面,上一個回應(response)發送完了,服務器才能發送下一個,現在可以多個回

APP訊息(APP Push)解決方案-服務端工作邏輯和實現

一、APP 推送概述: App推送訊息是我們常見的一種app訊息提醒方式。 我們的實現需要第三方的支援,實現方式是後臺通過介面將Push請求傳送至第三方,第三方實現在App所在裝置上的推送。 二、APP推送後臺處理邏輯: 在與推送平臺互動時,後臺需要向第三方傳送兩部分資訊

HTTP/2 伺服器(Server Push)教程

HTTP/2 協議的主要目的是提高網頁效能。頭資訊(header)原來是直接傳輸文字,現在是壓縮後傳輸。原來是同一個 TCP 連線裡面,上一個迴應(response)傳送完了,伺服器才能傳送下一個,現在可以多個迴應一起傳送。伺服器推送(server push)是 HTTP/2

基於UMeng訊息測試-demo教程(iOS

基於UMeng訊息推送測試-demo教程(iOS版) 眼看著就要過年了(2017本命年終於快過去了臨來嶄新的2018大發年),每個人的心裡就像飛了一樣,這個時候能夠在辦公間待下來的,每個人都是精英,突然想起了那首張含韻的歌《放假了》。 今天是2017年臘月25距離2018年僅有5天,依舊在外

React Native 極光的實現,支援Android和iOS

在接到需求後對如何實現進行了預研,發現有極光官網維護的 jpush-react-native 和 React Native 中文網維護的 react-native-jpush 供我們使用,我選擇的是 jpush-react-native。 一,相關版本資訊 { "nam

WordPress文章不收錄實時新連結到百度收錄的方法

WordPress部落格不收錄是許多站長的一個心病了因為許多的好文章原創不收錄但被其它站轉走又收錄了並且排名也不錯了,對於不知道程式開發的朋友幾乎找不到解決辦法了,今天小編就來為各位介紹就是你不懂也可以按下面的方法來進行升級修改讓你的部落格秒收哦,具體如下。 1、主動推送 開啟WordPress主題檔案