package org.getlantern.firetweet.extension.push.xiaomi;
import android.app.ActivityManager;
import android.app.ActivityManager.RunningAppProcessInfo;
import android.app.Application;
import android.content.Context;
import android.os.Process;
import android.util.Log;
import com.xiaomi.channel.commonutils.logger.LoggerInterface;
import com.xiaomi.mipush.sdk.Logger;
import com.xiaomi.mipush.sdk.MiPushClient;
import java.util.List;
/**
* 1、为了打开客户端的日志,便于在开发过程中调试,需要自定义一个Application。
* 并将自定义的application注册在AndroidManifest.xml文件中
* 2、为了提高push的注册率,您可以在Application的onCreate中初始化push。你也可以根据需要,在其他地方初始化push。
*
* @author wangkuiwei
*/
public class DemoApplication extends Application {
// user your appid the key.
public static final String APP_ID = "2882303761517305779";
// user your appid the key.
public static final String APP_KEY = "5311730548779";
// 此TAG在adb logcat中检索自己所需要的信息, 只需在命令行终端输入 adb logcat | grep
// com.xiaomi.mipushdemo
public static final String TAG = BuildConfig.APPLICATION_ID;
@Override
public void onCreate() {
super.onCreate();
// 注册push服务,注册成功后会向DemoMessageReceiver发送广播
// 可以从DemoMessageReceiver的onCommandResult方法中MiPushCommandMessage对象参数中获取注册信息
if (shouldInit()) {
MiPushClient.registerPush(this, APP_ID, APP_KEY);
}
LoggerInterface newLogger = new LoggerInterface() {
@Override
public void setTag(String tag) {
// ignore
}
@Override
public void log(String content, Throwable t) {
Log.d(TAG, content, t);
}
@Override
public void log(String content) {
Log.d(TAG, content);
}
};
Logger.setLogger(this, newLogger);
}
private boolean shouldInit() {
ActivityManager am = ((ActivityManager) getSystemService(Context.ACTIVITY_SERVICE));
List<RunningAppProcessInfo> processInfos = am.getRunningAppProcesses();
String mainProcessName = getPackageName();
int myPid = Process.myPid();
for (RunningAppProcessInfo info : processInfos) {
if (info.pid == myPid && mainProcessName.equals(info.processName)) {
return true;
}
}
return false;
}
}