TownApplication.java
6.28 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
package com.lotus.town;
import android.app.Application;
import android.app.Notification;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.net.ConnectivityManager;
import android.net.wifi.WifiManager;
import android.widget.RemoteViews;
import com.ad.lib.AdManager;
import com.evernote.android.job.JobManager;
import com.lotus.town.ali.MonitorService;
import com.lotus.town.ali.job.AliveJob;
import com.lotus.town.ali.job.JobCreater;
import com.lotus.town.broadcast.BatteryBroadcast;
import com.lotus.town.broadcast.ScreenOnOffBroadCast;
import com.lotus.town.broadcast.WifiStatusBroadcast;
import com.lotus.town.config.SupportAction;
import com.lotus.town.dao.HubDatabaseHelper;
import com.lotus.town.notify.NotificationUtils;
import com.lotus.town.service.gms.GmsManager;
import com.lotus.town.service.rg.RegisterManager;
import com.lotus.town.wxapi.WxManager;
import com.sdk.Sdk;
import com.sdk.SharedPref;
import com.sdk.log.LogConstants;
import com.sdk.utils.ProcessUtils;
import com.umeng.api.UmengManager;
import com.umeng.message.PushAgent;
import com.umeng.message.UmengMessageHandler;
import com.umeng.message.UmengNotificationClickHandler;
import com.umeng.message.entity.UMessage;
public class TownApplication extends Application{
private ScreenOnOffBroadCast screenOnOffBroadCast;
private WifiStatusBroadcast wifiStatusBroadcast;
private BatteryBroadcast batteryReceiver;
private void initEverNote() {
JobManager.create(this).addJobCreator(new JobCreater());
AliveJob.scheduleJob();
}
@Override
public void onCreate() {
super.onCreate();
Sdk.init(this);
WxManager.register(this);
if(getPackageName().equals(ProcessUtils.getCurProcessName(this))) {
AdManager.init(this);
HubDatabaseHelper.getInstance(this).init();
Sdk.logger().logEvent(this, LogConstants.APP_START);
RegisterManager.register();
GmsManager.getUserInfo();
initBroadCast();
SharedPref.isFisrtLauncher(this);
initEverNote();
}
UmengManager.init(this);
PushAgent mPushAgent = UmengManager.initPush(this);
UmengMessageHandler messageHandler = new UmengMessageHandler() {
/**
* 自定义通知栏样式的回调方法
*/
@Override
public Notification getNotification(Context context, UMessage msg) {
switch (msg.builder_id) {
case 1:
NotificationUtils.init().createNotificationChannel(Sdk.app());
Notification.Builder builder = new Notification.Builder(context);
RemoteViews myNotificationView = new RemoteViews(context.getPackageName(),
R.layout.notification_view);
myNotificationView.setTextViewText(com.umeng.R.id.notification_title, msg.title);
myNotificationView.setTextViewText(com.umeng.R.id.notification_text, msg.text);
builder.setContent(myNotificationView)
.setSmallIcon(R.mipmap.ic_launcher)
.setTicker(msg.ticker)
.setAutoCancel(true);
builder.setContentIntent(PendingIntent.getActivity(context, 0,
NotificationUtils.getIntent(context,"com.lotus.town.SplashActivity"), PendingIntent.FLAG_UPDATE_CURRENT));
return builder.getNotification();
case 2:
NotificationUtils.init().createNotificationChannel(Sdk.app());
NotificationUtils.init().sendYmNotify(Sdk.app(),msg.text, msg.title);
default:
//默认为0,若填写的builder_id并不存在,也使用默认。
return super.getNotification(context, msg);
}
}
};
mPushAgent.setMessageHandler(messageHandler);
UmengNotificationClickHandler notificationClickHandler = new UmengNotificationClickHandler(){
@Override
public void dealWithCustomAction(Context context, UMessage msg){
}
};
mPushAgent.setNotificationClickHandler(notificationClickHandler);
initService();
}
private void initBroadCast() {
IntentFilter filter = new IntentFilter();
filter.addAction(Intent.ACTION_SCREEN_ON);
filter.addAction(Intent.ACTION_SCREEN_OFF);
filter.addAction(Intent.ACTION_USER_PRESENT);
filter.addAction(SupportAction.SCREEN_OFF_MY);
// filter.addAction(SupportAction.SCREEN_ON_MY);
filter.addAction(Intent.ACTION_TIME_TICK);
filter.addAction(Intent.ACTION_CLOSE_SYSTEM_DIALOGS);
filter.setPriority(IntentFilter.SYSTEM_HIGH_PRIORITY);
screenOnOffBroadCast = new ScreenOnOffBroadCast();
registerReceiver(screenOnOffBroadCast,filter);
registerNetworkConnectChangeReceiver();
registerBatteryReceiver();
// registerPhoneReceiver();
}
private void registerNetworkConnectChangeReceiver() {
IntentFilter filter = new IntentFilter();
filter.addAction(WifiManager.NETWORK_STATE_CHANGED_ACTION);
filter.addAction(WifiManager.WIFI_STATE_CHANGED_ACTION);
filter.addAction(ConnectivityManager.CONNECTIVITY_ACTION);
filter.addAction(WifiManager.SUPPLICANT_CONNECTION_CHANGE_ACTION);
filter.addAction(WifiManager.SUPPLICANT_STATE_CHANGED_ACTION);
wifiStatusBroadcast = new WifiStatusBroadcast();
registerReceiver(wifiStatusBroadcast, filter);
}
private void registerBatteryReceiver(){
IntentFilter filter = new IntentFilter();
filter.addAction(Intent.ACTION_BATTERY_CHANGED);
filter.addAction(Intent.ACTION_BATTERY_LOW);
filter.addAction(Intent.ACTION_BATTERY_OKAY);
filter.addAction(Intent.ACTION_POWER_CONNECTED);
filter.addAction(Intent.ACTION_POWER_DISCONNECTED);
batteryReceiver = new BatteryBroadcast();
this.registerReceiver(batteryReceiver, filter);
}
private void initService() {
MonitorService.invoke(this);
}
}