Commit 0461cc0b authored by chengkun's avatar chengkun

初始化小米推送sdk

parent 8e515262
...@@ -20,6 +20,15 @@ ...@@ -20,6 +20,15 @@
android:name=".push.mipush.receiver.MiPushReceiver" android:name=".push.mipush.receiver.MiPushReceiver"
android:enabled="true" android:enabled="true"
android:exported="true"> android:exported="true">
<intent-filter>
<action android:name="com.xiaomi.mipush.RECEIVE_MESSAGE" />
</intent-filter>
<intent-filter>
<action android:name="com.xiaomi.mipush.MESSAGE_ARRIVED" />
</intent-filter>
<intent-filter>
<action android:name="com.xiaomi.mipush.ERROR" />
</intent-filter>
</receiver> </receiver>
<service <service
android:name="com.xiaomi.push.service.XMPushService" android:name="com.xiaomi.push.service.XMPushService"
......
package com.yidian.shenghuoquan.bpush.constant package com.yidian.shenghuoquan.bpush.constant
object BrandConstant { object BrandConstant {
const val XIAOMI = "XIAOMI11" const val XIAOMI = "XIAOMI"
const val HUAWEI = "HUAWEI" const val HUAWEI = "HUAWEI"
const val OPPO = "OPPO" const val OPPO = "OPPO"
const val VIVO = "VIVO" const val VIVO = "VIVO"
......
package com.yidian.shenghuoquan.bpush.constant
object Constant {
const val pushConnected:Int = 200
const val pushDisconnected:Int = -1
const val pushConnectedEvent = "pushConnectEvent"
}
package com.yidian.shenghuoquan.bpush.push package com.yidian.shenghuoquan.bpush.push
interface PushPolicy { abstract class PushPolicy {
fun initPushSdk() var pushStatus:Int = 0
fun pubMessage(message:String) open fun initPushSdk(){}
open fun pubMessage(message:String){}
} }
package com.yidian.shenghuoquan.bpush.push package com.yidian.shenghuoquan.bpush.push
import com.yidian.shenghuoquan.bpush.constant.Constant
import timber.log.Timber
class PushSdkManager { class PushSdkManager {
private val pushPolicy:PushPolicy private val pushPolicy:PushPolicy
constructor(pushPolicy: PushPolicy) { constructor(pushPolicy: PushPolicy) {
...@@ -13,4 +16,8 @@ class PushSdkManager { ...@@ -13,4 +16,8 @@ class PushSdkManager {
public fun pushMessage(message:String) { public fun pushMessage(message:String) {
pushPolicy.pubMessage(message) pushPolicy.pubMessage(message)
} }
public fun pushStatus():Int {
return pushPolicy.pushStatus
}
} }
...@@ -2,7 +2,7 @@ package com.yidian.shenghuoquan.bpush.push.huaweipush ...@@ -2,7 +2,7 @@ package com.yidian.shenghuoquan.bpush.push.huaweipush
import com.yidian.shenghuoquan.bpush.push.PushPolicy import com.yidian.shenghuoquan.bpush.push.PushPolicy
class HuaWdeiPushPolicy: PushPolicy { class HuaWeiPushPolicy: PushPolicy() {
override fun initPushSdk() { override fun initPushSdk() {
TODO("Not yet implemented") TODO("Not yet implemented")
} }
......
...@@ -5,15 +5,24 @@ import android.content.Context ...@@ -5,15 +5,24 @@ import android.content.Context
import android.os.Process import android.os.Process
import com.xiaomi.mipush.sdk.MiPushClient import com.xiaomi.mipush.sdk.MiPushClient
import com.yidian.shenghuoquan.bpush.app.BPushApplication import com.yidian.shenghuoquan.bpush.app.BPushApplication
import com.yidian.shenghuoquan.bpush.constant.Constant
import com.yidian.shenghuoquan.bpush.push.PushPolicy import com.yidian.shenghuoquan.bpush.push.PushPolicy
import com.yidian.xarc.xevent.XBaseEvent
import com.yidian.xarc.xevent.XEventManager
import org.greenrobot.eventbus.Subscribe
import org.greenrobot.eventbus.ThreadMode
import timber.log.Timber
class MiPushPolicy: PushPolicy { class MiPushPolicy: PushPolicy() {
companion object { companion object {
const val appId = "2882300000000000000" const val appId = "2882303761519906361"
const val appkey = "'5871990645361" const val appkey = "5871990645361"
const val packageName = "com.shenghuoquan.business" const val packageName = "com.shenghuoquan.business"
} }
override fun initPushSdk() { override fun initPushSdk() {
Timber.tag("MiPushPolicy").i("initPushSdk")
XEventManager.register(this)
pushStatus = 22;
if (shouldInit()) { if (shouldInit()) {
MiPushClient.registerPush(BPushApplication.context, appId, appkey) MiPushClient.registerPush(BPushApplication.context, appId, appkey)
} }
...@@ -35,4 +44,12 @@ class MiPushPolicy: PushPolicy { ...@@ -35,4 +44,12 @@ class MiPushPolicy: PushPolicy {
} }
return false return false
} }
@Subscribe(sticky = false, threadMode = ThreadMode.MAIN)
fun onEvent(event: XBaseEvent?) {
Timber.tag("MiPushPolicy").i("event name ${event?.name}, event body is ${event?.body}")
when (event?.name) {
Constant.pushConnectedEvent -> pushStatus = Constant.pushConnected
}
}
} }
...@@ -4,8 +4,10 @@ import android.annotation.SuppressLint ...@@ -4,8 +4,10 @@ import android.annotation.SuppressLint
import android.content.Context import android.content.Context
import android.os.Message import android.os.Message
import android.text.TextUtils import android.text.TextUtils
import android.util.Log
import com.xiaomi.mipush.sdk.* import com.xiaomi.mipush.sdk.*
import com.yidian.shenghuoquan.bpush.constant.Constant
import com.yidian.xarc.xevent.XBaseEvent
import com.yidian.xarc.xevent.XEventManager
import timber.log.Timber import timber.log.Timber
import java.text.SimpleDateFormat import java.text.SimpleDateFormat
import java.util.* import java.util.*
...@@ -59,6 +61,8 @@ class MiPushReceiver : PushMessageReceiver() { ...@@ -59,6 +61,8 @@ class MiPushReceiver : PushMessageReceiver() {
if (MiPushClient.COMMAND_REGISTER == command) { if (MiPushClient.COMMAND_REGISTER == command) {
if (message.resultCode == ErrorCode.SUCCESS.toLong()) { if (message.resultCode == ErrorCode.SUCCESS.toLong()) {
mRegId = cmdArg1 mRegId = cmdArg1
val event = XBaseEvent(Constant.pushConnectedEvent, Constant.pushConnected)
XEventManager.post(event)
} else { } else {
} }
} else if (MiPushClient.COMMAND_SET_ALIAS == command) { } else if (MiPushClient.COMMAND_SET_ALIAS == command) {
......
...@@ -6,12 +6,13 @@ import com.yidian.shenghuoquan.bpush.app.BPushApplication ...@@ -6,12 +6,13 @@ import com.yidian.shenghuoquan.bpush.app.BPushApplication
import com.yidian.shenghuoquan.bpush.push.PushPolicy import com.yidian.shenghuoquan.bpush.push.PushPolicy
import timber.log.Timber import timber.log.Timber
class OppoPushPolicy: PushPolicy, ICallBackResultService { class OppoPushPolicy: PushPolicy(), ICallBackResultService {
companion object{ companion object{
const val appKey = "d4553310f4704936bb48f2d1e5f7da22" const val appKey = "d4553310f4704936bb48f2d1e5f7da22"
const val appSecret = "31e239f66ce64309afd65e627fe44cf0" const val appSecret = "31e239f66ce64309afd65e627fe44cf0"
} }
override fun initPushSdk() { override fun initPushSdk() {
Timber.tag("OppoPushPolicy").i("Oppo push sdk init")
if (HeytapPushManager.isSupportPush()) { if (HeytapPushManager.isSupportPush()) {
HeytapPushManager.init(BPushApplication.context, true); HeytapPushManager.init(BPushApplication.context, true);
} else { } else {
......
...@@ -2,7 +2,7 @@ package com.yidian.shenghuoquan.bpush.push.umengpush ...@@ -2,7 +2,7 @@ package com.yidian.shenghuoquan.bpush.push.umengpush
import com.yidian.shenghuoquan.bpush.push.PushPolicy import com.yidian.shenghuoquan.bpush.push.PushPolicy
class UmengPushPolicy: PushPolicy { class UmengPushPolicy: PushPolicy() {
override fun initPushSdk() { override fun initPushSdk() {
TODO("Not yet implemented") TODO("Not yet implemented")
} }
......
...@@ -2,7 +2,7 @@ package com.yidian.shenghuoquan.bpush.push.vivopush ...@@ -2,7 +2,7 @@ package com.yidian.shenghuoquan.bpush.push.vivopush
import com.yidian.shenghuoquan.bpush.push.PushPolicy import com.yidian.shenghuoquan.bpush.push.PushPolicy
class ViVoPushPolicy: PushPolicy { class ViVoPushPolicy: PushPolicy() {
override fun initPushSdk() { override fun initPushSdk() {
TODO("Not yet implemented") TODO("Not yet implemented")
} }
......
...@@ -2,8 +2,9 @@ package com.yidian.shenghuoquan.bpush.service ...@@ -2,8 +2,9 @@ package com.yidian.shenghuoquan.bpush.service
import com.yidian.bcommon.services.ZapServiceActionConstants import com.yidian.bcommon.services.ZapServiceActionConstants
import com.yidian.shenghuoquan.bpush.constant.BrandConstant import com.yidian.shenghuoquan.bpush.constant.BrandConstant
import com.yidian.shenghuoquan.bpush.constant.Constant
import com.yidian.shenghuoquan.bpush.push.* import com.yidian.shenghuoquan.bpush.push.*
import com.yidian.shenghuoquan.bpush.push.huaweipush.HuaWdeiPushPolicy import com.yidian.shenghuoquan.bpush.push.huaweipush.HuaWeiPushPolicy
import com.yidian.shenghuoquan.bpush.push.mipush.MiPushPolicy import com.yidian.shenghuoquan.bpush.push.mipush.MiPushPolicy
import com.yidian.shenghuoquan.bpush.push.oppopush.OppoPushPolicy import com.yidian.shenghuoquan.bpush.push.oppopush.OppoPushPolicy
import com.yidian.shenghuoquan.bpush.push.umengpush.UmengPushPolicy import com.yidian.shenghuoquan.bpush.push.umengpush.UmengPushPolicy
...@@ -25,9 +26,13 @@ class PushService : ZapService() { ...@@ -25,9 +26,13 @@ class PushService : ZapService() {
when(action) { when(action) {
ZapServiceActionConstants.ActionPushMessage -> pushMessage(params.toString()) ZapServiceActionConstants.ActionPushMessage -> pushMessage(params.toString())
ZapServiceActionConstants.ActionInitPushService -> { ZapServiceActionConstants.ActionInitPushService -> {
when(SystemUtil.getDeviceBrand()) { if (this::pushSdkManager.isInitialized && pushSdkManager.pushStatus() == Constant.pushConnected) {
Timber.tag(TAG).i("push sdk has initiallized")
return
}
when(BrandConstant.XIAOMI/*SystemUtil.getDeviceBrand()*/) {
BrandConstant.HUAWEI -> { BrandConstant.HUAWEI -> {
pushSdkManager = PushSdkManager(HuaWdeiPushPolicy()) pushSdkManager = PushSdkManager(HuaWeiPushPolicy())
} }
BrandConstant.OPPO -> { BrandConstant.OPPO -> {
pushSdkManager = PushSdkManager(OppoPushPolicy()) pushSdkManager = PushSdkManager(OppoPushPolicy())
...@@ -38,9 +43,6 @@ class PushService : ZapService() { ...@@ -38,9 +43,6 @@ class PushService : ZapService() {
BrandConstant.XIAOMI -> { BrandConstant.XIAOMI -> {
pushSdkManager = PushSdkManager(MiPushPolicy()) pushSdkManager = PushSdkManager(MiPushPolicy())
} }
BrandConstant.UMENG -> {
pushSdkManager = PushSdkManager(UmengPushPolicy())
}
else -> { else -> {
pushSdkManager = PushSdkManager(UmengPushPolicy()) pushSdkManager = PushSdkManager(UmengPushPolicy())
} }
...@@ -59,7 +61,7 @@ class PushService : ZapService() { ...@@ -59,7 +61,7 @@ class PushService : ZapService() {
private fun pushMessage(message:String) { private fun pushMessage(message:String) {
Timber.tag("PushService").i(message) Timber.tag("PushService").i(message)
pushSdkManager.pushMessage(message) pushSdkManager?.pushMessage(message)
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment