參考文章
https://github.com/YoloHuang/PushLibrary
需求描述
最近要做推送相關(guān)的東西,主要是看了友盟的,它雖然可以集成廠商的通道,但是有推送的限制,在看完文檔后,還有一個(gè)給我的感覺(jué)就是,當(dāng)我把手機(jī)里面所有的APP都干死后,就不可能收到推送了。公司的業(yè)務(wù)需求就是干死APP也要收到推送,所以就只能自己集成廠商通道來(lái)操作,就發(fā)現(xiàn)上面黏貼的一個(gè)gitHub地址,他寫的還是很好的但是作者久久沒(méi)更新,我就自己又模仿著他魯了一份gitHub
業(yè)務(wù)代碼大概介紹圖

基本介紹.jpg
使用方法
//這里初始化各種平臺(tái)的對(duì)象
PushTargetManager.getInstance().init(this.getApplication());
//拿到對(duì)應(yīng)的對(duì)象
BasePushTargetInit basePushTargetInit = PushTargetManager.getInstance().getmPushTarget();
String aligis="abcd";
if (basePushTargetInit!=null && !TextUtils.isEmpty(aligis)){
if (basePushTargetInit instanceof JPushInit){
JPushInit jPushInit = (JPushInit) basePushTargetInit;
jPushInit.deleteAlias(0);
}else if (basePushTargetInit instanceof HuaWeiInit){
HuaWeiInit huaWeiInit = (HuaWeiInit) basePushTargetInit;
huaWeiInit.deleteToken();
}else if (basePushTargetInit instanceof XiaomiInit){
XiaomiInit xiaomiInit = (XiaomiInit) basePushTargetInit;
xiaomiInit.deleteAlias(aligis);
}else if (basePushTargetInit instanceof MeiZuInit){
MeiZuInit meiZuInit = (MeiZuInit) basePushTargetInit;
meiZuInit.deleteAlias(aligis);
}
}
//注冊(cè)廣播監(jiān)聽(tīng)
if (pushBroadcastReceiver==null){
pushBroadcastReceiver = new PushBroadcastReceiver();
}
IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction(PUSH_RECEIVE_INIT_RESULT);//初始化成功回調(diào)
intentFilter.addAction(PUSH_RECEIVE_MESSAGE);//得到透?jìng)飨? intentFilter.addAction(PUSH_RECEIVE_NOTIFICATION);//收到后臺(tái)推送
intentFilter.addAction(PUSH_RECEIVE_NOTIFICATION_CLICK);//用戶點(diǎn)擊推送
intentFilter.addAction(PUSH_RECEIVE_OTHER_OPTIONS);//其它事情操作
intentFilter.addAction(PUSH_RECEIVE_ALIAS);//其它事情操作
LocalBroadcastManager.getInstance(this).registerReceiver(pushBroadcastReceiver,intentFilter);
其它想說(shuō)的
1、透?jìng)鞲ㄖ?回事,透?jìng)鞑粫?huì)給你類似通知的那樣顯示出來(lái)
2、做華為推送的時(shí)候 agconnect-services.json 這個(gè)文件,每個(gè)包名不同,需要自行到華為上下載