diff --git a/app/src/main/java/com/gh/gamecenter/receiver/UmengMessageReceiver.kt b/app/src/main/java/com/gh/gamecenter/receiver/UmengMessageReceiver.kt index f4e1bb7597..333e505fdb 100644 --- a/app/src/main/java/com/gh/gamecenter/receiver/UmengMessageReceiver.kt +++ b/app/src/main/java/com/gh/gamecenter/receiver/UmengMessageReceiver.kt @@ -16,6 +16,8 @@ class UmengMessageReceiver : BroadcastReceiver() { const val TYPE_REMOVE = "remove" const val TYPE_CLICK = "click" const val DIRECT_ONLY = "direct_only" // 只跳转,不记录 + + const val ACTION = "com.gh.gamecenter.UMENG" } override fun onReceive(context: Context, intent: Intent) { diff --git a/app/src/main/java/com/halo/assistant/HaloApp.java b/app/src/main/java/com/halo/assistant/HaloApp.java index b960609911..b460b02935 100644 --- a/app/src/main/java/com/halo/assistant/HaloApp.java +++ b/app/src/main/java/com/halo/assistant/HaloApp.java @@ -15,10 +15,17 @@ import com.gh.base.GHActivityLifecycleCallbacksImpl; import com.gh.common.LocalBroadcastReceiver; import com.gh.common.PushManager; import com.gh.common.exposure.ExposureManager; +import com.gh.common.im.ImReceiver; import com.gh.common.util.DataUtils; +import com.gh.download.DownloadNotification; import com.gh.gamecenter.Injection; +import com.gh.gamecenter.receiver.ActivitySkipReceiver; +import com.gh.gamecenter.receiver.DownloadReceiver; import com.gh.gamecenter.receiver.InstallAndUninstallReceiver; +import com.gh.gamecenter.receiver.InstallReceiver; +import com.gh.gamecenter.receiver.MeizuPushReceiver; import com.gh.gamecenter.receiver.NetworkStateReceiver; +import com.gh.gamecenter.receiver.UmengMessageReceiver; import com.gh.gid.GidHelper; import com.leon.channel.helper.ChannelReaderUtil; import com.m7.imkfsdk.chat.ChatActivity; @@ -108,6 +115,7 @@ public class HaloApp extends TinkerAppLike { GidHelper.getInstance().init(getApplication()); + initReceiver(); initLocalBroadcast(); initConnectivityChangesReceiver(); @@ -127,6 +135,44 @@ public class HaloApp extends TinkerAppLike { } } + // 3.5 开始将 targetSdk 升级至 26,原来写在 Manifest 的部分 receiver 由于系统限制需要换成在运行时注册 + private void initReceiver() { + DownloadReceiver downloadReceiver = new DownloadReceiver(); + IntentFilter downloadFilter = new IntentFilter(); + downloadFilter.addAction(DownloadNotification.ACTION_DOWNLOAD); + getApplication().registerReceiver(downloadReceiver, downloadFilter); + + InstallReceiver installReceiver = new InstallReceiver(); + IntentFilter installFilter = new IntentFilter(); + installFilter.addAction(DownloadNotification.ACTION_INSTALL); + getApplication().registerReceiver(installReceiver, installFilter); + + ActivitySkipReceiver skipReceiver = new ActivitySkipReceiver(); + IntentFilter skipFilter = new IntentFilter(); + skipFilter.addAction(ActivitySkipReceiver.ACTION_ACTIVITY_SKIP); + getApplication().registerReceiver(skipReceiver, skipFilter); + + UmengMessageReceiver umengMessageReceiver = new UmengMessageReceiver(); + IntentFilter umengFilter = new IntentFilter(); + umengFilter.addAction(UmengMessageReceiver.ACTION); + getApplication().registerReceiver(umengMessageReceiver, umengFilter); + + ImReceiver imReceiver = new ImReceiver(); + IntentFilter imFilter = new IntentFilter(); + imFilter.addAction(ImReceiver.UNIQUE_BROADCAST_ACTION); + imFilter.addAction("action_finish"); + getApplication().registerReceiver(imReceiver, imFilter); + + MeizuPushReceiver pushReceiver = new MeizuPushReceiver(); + IntentFilter pushFilter = new IntentFilter(); + pushFilter.addAction("com.meizu.flyme.push.intent.MESSAGE"); + pushFilter.addAction("com.meizu.flyme.push.intent.REGISTER.FEEDBACK"); + pushFilter.addAction("com.meizu.flyme.push.intent.UNREGISTER.FEEDBACK"); + pushFilter.addAction("com.meizu.c2dm.intent.REGISTRATION"); + pushFilter.addAction("com.meizu.c2dm.intent.RECEIVE"); + getApplication().registerReceiver(pushReceiver, pushFilter); + } + private void initPackageChangesReceiver() { InstallAndUninstallReceiver receiver = new InstallAndUninstallReceiver(); IntentFilter intentFilter = new IntentFilter();