适配 Android 8.0 的 Receiver 限制
This commit is contained in:
@ -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) {
|
||||
|
||||
@ -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();
|
||||
|
||||
Reference in New Issue
Block a user