package me.ele.trojan.receiver; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.net.ConnectivityManager; import android.os.BatteryManager; import java.util.LinkedList; import java.util.List; import me.ele.trojan.Trojan; import me.ele.trojan.config.LogConstants; import me.ele.trojan.executor.TrojanExecutor; import me.ele.trojan.helper.PerformanceHelper; import me.ele.trojan.log.Logger; import me.ele.trojan.utils.NetworkUtils; /** * Created by wangallen on 2017/3/29. */ public class TrojanReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { final String action = intent.getAction(); Logger.i("TrojanReceiver-->action:" + action); if (Intent.ACTION_BATTERY_CHANGED.equals(action)) { showBatteryState(intent); } else if (ConnectivityManager.CONNECTIVITY_ACTION.equals(action)) { showNetworkType(context); } else if (Intent.ACTION_TIME_TICK.equals(action)) { TrojanExecutor.getInstance().executeUpload(new Runnable() { @Override public void run() { PerformanceHelper.recordMemory(); PerformanceHelper.recordThread(); } }); } } private void showNetworkType(Context context) { int networkType = NetworkUtils.getNetworkType(context.getApplicationContext()); Trojan.log(LogConstants.NETWORK_TAG, networkType + ""); } private void showBatteryState(Intent intent) { int status = intent.getIntExtra("status", 0); int level = intent.getIntExtra("level", 0); String statusResult = "discharging"; switch (status) { case BatteryManager.BATTERY_STATUS_UNKNOWN: statusResult = "discharging"; break; case BatteryManager.BATTERY_STATUS_CHARGING: statusResult = "charging"; break; case BatteryManager.BATTERY_STATUS_DISCHARGING: statusResult = "discharging"; break; case BatteryManager.BATTERY_STATUS_NOT_CHARGING: statusResult = "discharging"; break; case BatteryManager.BATTERY_STATUS_FULL: statusResult = "charging"; break; } List<String> msgList = new LinkedList<>(); msgList.add(String.valueOf((level * 1.00 / 100))); msgList.add(statusResult); Trojan.log(LogConstants.BATTERY_TAG, msgList); } }