Commit 0461cc0b authored by chengkun's avatar chengkun

初始化小米推送sdk

parent 8e515262
......@@ -20,6 +20,15 @@
android:name=".push.mipush.receiver.MiPushReceiver"
android:enabled="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>
<service
android:name="com.xiaomi.push.service.XMPushService"
......
package com.yidian.shenghuoquan.bpush.constant
object BrandConstant {
const val XIAOMI = "XIAOMI11"
const val XIAOMI = "XIAOMI"
const val HUAWEI = "HUAWEI"
const val OPPO = "OPPO"
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
interface PushPolicy {
fun initPushSdk()
fun pubMessage(message:String)
abstract class PushPolicy {
var pushStatus:Int = 0
open fun initPushSdk(){}
open fun pubMessage(message:String){}
}
package com.yidian.shenghuoquan.bpush.push
import com.yidian.shenghuoquan.bpush.constant.Constant
import timber.log.Timber
class PushSdkManager {
private val pushPolicy:PushPolicy
constructor(pushPolicy: PushPolicy) {
......@@ -13,4 +16,8 @@ class PushSdkManager {
public fun pushMessage(message:String) {
pushPolicy.pubMessage(message)
}
public fun pushStatus():Int {
return pushPolicy.pushStatus
}
}
......@@ -2,7 +2,7 @@ package com.yidian.shenghuoquan.bpush.push.huaweipush
import com.yidian.shenghuoquan.bpush.push.PushPolicy
class HuaWdeiPushPolicy: PushPolicy {
class HuaWeiPushPolicy: PushPolicy() {
override fun initPushSdk() {
TODO("Not yet implemented")
}
......
......@@ -5,15 +5,24 @@ import android.content.Context
import android.os.Process
import com.xiaomi.mipush.sdk.MiPushClient
import com.yidian.shenghuoquan.bpush.app.BPushApplication
import com.yidian.shenghuoquan.bpush.constant.Constant
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 {
const val appId = "2882300000000000000"
const val appkey = "'5871990645361"
const val appId = "2882303761519906361"
const val appkey = "5871990645361"
const val packageName = "com.shenghuoquan.business"
}
override fun initPushSdk() {
Timber.tag("MiPushPolicy").i("initPushSdk")
XEventManager.register(this)
pushStatus = 22;
if (shouldInit()) {
MiPushClient.registerPush(BPushApplication.context, appId, appkey)
}
......@@ -35,4 +44,12 @@ class MiPushPolicy: PushPolicy {
}
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
import android.content.Context
import android.os.Message
import android.text.TextUtils
import android.util.Log
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 java.text.SimpleDateFormat
import java.util.*
......@@ -59,6 +61,8 @@ class MiPushReceiver : PushMessageReceiver() {
if (MiPushClient.COMMAND_REGISTER == command) {
if (message.resultCode == ErrorCode.SUCCESS.toLong()) {
mRegId = cmdArg1
val event = XBaseEvent(Constant.pushConnectedEvent, Constant.pushConnected)
XEventManager.post(event)
} else {
}
} else if (MiPushClient.COMMAND_SET_ALIAS == command) {
......
......@@ -6,12 +6,13 @@ import com.yidian.shenghuoquan.bpush.app.BPushApplication
import com.yidian.shenghuoquan.bpush.push.PushPolicy
import timber.log.Timber
class OppoPushPolicy: PushPolicy, ICallBackResultService {
class OppoPushPolicy: PushPolicy(), ICallBackResultService {
companion object{
const val appKey = "d4553310f4704936bb48f2d1e5f7da22"
const val appSecret = "31e239f66ce64309afd65e627fe44cf0"
}
override fun initPushSdk() {
Timber.tag("OppoPushPolicy").i("Oppo push sdk init")
if (HeytapPushManager.isSupportPush()) {
HeytapPushManager.init(BPushApplication.context, true);
} else {
......
......@@ -2,7 +2,7 @@ package com.yidian.shenghuoquan.bpush.push.umengpush
import com.yidian.shenghuoquan.bpush.push.PushPolicy
class UmengPushPolicy: PushPolicy {
class UmengPushPolicy: PushPolicy() {
override fun initPushSdk() {
TODO("Not yet implemented")
}
......
......@@ -2,7 +2,7 @@ package com.yidian.shenghuoquan.bpush.push.vivopush
import com.yidian.shenghuoquan.bpush.push.PushPolicy
class ViVoPushPolicy: PushPolicy {
class ViVoPushPolicy: PushPolicy() {
override fun initPushSdk() {
TODO("Not yet implemented")
}
......
......@@ -2,8 +2,9 @@ package com.yidian.shenghuoquan.bpush.service
import com.yidian.bcommon.services.ZapServiceActionConstants
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.huaweipush.HuaWdeiPushPolicy
import com.yidian.shenghuoquan.bpush.push.huaweipush.HuaWeiPushPolicy
import com.yidian.shenghuoquan.bpush.push.mipush.MiPushPolicy
import com.yidian.shenghuoquan.bpush.push.oppopush.OppoPushPolicy
import com.yidian.shenghuoquan.bpush.push.umengpush.UmengPushPolicy
......@@ -25,9 +26,13 @@ class PushService : ZapService() {
when(action) {
ZapServiceActionConstants.ActionPushMessage -> pushMessage(params.toString())
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 -> {
pushSdkManager = PushSdkManager(HuaWdeiPushPolicy())
pushSdkManager = PushSdkManager(HuaWeiPushPolicy())
}
BrandConstant.OPPO -> {
pushSdkManager = PushSdkManager(OppoPushPolicy())
......@@ -38,9 +43,6 @@ class PushService : ZapService() {
BrandConstant.XIAOMI -> {
pushSdkManager = PushSdkManager(MiPushPolicy())
}
BrandConstant.UMENG -> {
pushSdkManager = PushSdkManager(UmengPushPolicy())
}
else -> {
pushSdkManager = PushSdkManager(UmengPushPolicy())
}
......@@ -59,7 +61,7 @@ class PushService : ZapService() {
private fun pushMessage(message:String) {
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