version:mtk 3.9
fix:优化解锁设置默认桌面 update:上传增加电池信息
This commit is contained in:
336
app/src/main/java/com/aoleyun/sn/utils/BatteryUtils.java
Normal file
336
app/src/main/java/com/aoleyun/sn/utils/BatteryUtils.java
Normal file
@@ -0,0 +1,336 @@
|
||||
package com.aoleyun.sn.utils;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
|
||||
import com.aoleyun.sn.R;
|
||||
import com.google.gson.JsonObject;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.FileNotFoundException;
|
||||
import java.io.FileReader;
|
||||
import java.io.IOException;
|
||||
|
||||
import static android.os.BatteryManager.BATTERY_HEALTH_COLD;
|
||||
import static android.os.BatteryManager.BATTERY_HEALTH_DEAD;
|
||||
import static android.os.BatteryManager.BATTERY_HEALTH_GOOD;
|
||||
import static android.os.BatteryManager.BATTERY_HEALTH_OVERHEAT;
|
||||
import static android.os.BatteryManager.BATTERY_HEALTH_OVER_VOLTAGE;
|
||||
import static android.os.BatteryManager.BATTERY_HEALTH_UNKNOWN;
|
||||
import static android.os.BatteryManager.BATTERY_HEALTH_UNSPECIFIED_FAILURE;
|
||||
import static android.os.BatteryManager.BATTERY_PLUGGED_AC;
|
||||
import static android.os.BatteryManager.BATTERY_PLUGGED_ANY;
|
||||
import static android.os.BatteryManager.BATTERY_PLUGGED_USB;
|
||||
import static android.os.BatteryManager.BATTERY_PLUGGED_WIRELESS;
|
||||
import static android.os.BatteryManager.BATTERY_STATUS_CHARGING;
|
||||
import static android.os.BatteryManager.BATTERY_STATUS_DISCHARGING;
|
||||
import static android.os.BatteryManager.BATTERY_STATUS_FULL;
|
||||
import static android.os.BatteryManager.BATTERY_STATUS_NOT_CHARGING;
|
||||
import static android.os.BatteryManager.BATTERY_STATUS_UNKNOWN;
|
||||
import static android.os.BatteryManager.EXTRA_HEALTH;
|
||||
import static android.os.BatteryManager.EXTRA_LEVEL;
|
||||
import static android.os.BatteryManager.EXTRA_MAX_CHARGING_CURRENT;
|
||||
import static android.os.BatteryManager.EXTRA_MAX_CHARGING_VOLTAGE;
|
||||
import static android.os.BatteryManager.EXTRA_PLUGGED;
|
||||
import static android.os.BatteryManager.EXTRA_SCALE;
|
||||
import static android.os.BatteryManager.EXTRA_STATUS;
|
||||
import static android.os.BatteryManager.EXTRA_TECHNOLOGY;
|
||||
import static android.os.BatteryManager.EXTRA_TEMPERATURE;
|
||||
import static android.os.BatteryManager.EXTRA_VOLTAGE;
|
||||
|
||||
public class BatteryUtils {
|
||||
|
||||
private static final int DEFAULT_CHARGING_VOLTAGE_MICRO_VOLT = 5000000;
|
||||
|
||||
public static String getBatteryStatus(Context context, Intent intent) {
|
||||
int status = intent.getIntExtra(EXTRA_STATUS, BATTERY_STATUS_UNKNOWN);
|
||||
int plugged = intent.getIntExtra(EXTRA_PLUGGED, BATTERY_PLUGGED_ANY);
|
||||
int level = intent.getIntExtra(EXTRA_LEVEL, 0);
|
||||
int scale = intent.getIntExtra(EXTRA_SCALE, 0);
|
||||
int health = intent.getIntExtra(EXTRA_HEALTH, BATTERY_HEALTH_UNKNOWN);
|
||||
|
||||
int maxChargingMicroAmp = intent.getIntExtra(EXTRA_MAX_CHARGING_CURRENT, -1);
|
||||
int maxChargingMicroVolt = intent.getIntExtra(EXTRA_MAX_CHARGING_VOLTAGE, -1);
|
||||
int batteryVolt = intent.getIntExtra(EXTRA_VOLTAGE, -1);
|
||||
int temperature = intent.getIntExtra(EXTRA_TEMPERATURE, -1);
|
||||
String batteryTechnologyDescript = intent.getStringExtra(EXTRA_TECHNOLOGY);
|
||||
|
||||
final int maxChargingMicroWatt;
|
||||
|
||||
if (maxChargingMicroVolt <= 0) {
|
||||
maxChargingMicroVolt = DEFAULT_CHARGING_VOLTAGE_MICRO_VOLT;
|
||||
}
|
||||
if (maxChargingMicroAmp > 0) {
|
||||
// Calculating muW = muA * muV / (10^6 mu^2 / mu); splitting up the divisor
|
||||
// to maintain precision equally on both factors.
|
||||
maxChargingMicroWatt = (maxChargingMicroAmp / 1000)
|
||||
* (maxChargingMicroVolt / 1000);
|
||||
} else {
|
||||
maxChargingMicroWatt = -1;
|
||||
}
|
||||
|
||||
String statusStr = getStatus(context, status);
|
||||
String healthStr = getHealth(context, health);
|
||||
String pluggedStr = getPlugged(context, plugged);
|
||||
String levelStr = getLevel(level);
|
||||
String scaleStr = getLevel(scale);
|
||||
String temperatureStr = getTemperature(temperature);
|
||||
String batteryVoltStr = getBatteryVolt(batteryVolt);
|
||||
String maxChargingMicroAmpStr = getMaxChargingMicroAmp(maxChargingMicroAmp);
|
||||
String maxChargingMicroVoltStr = getMaxChargingMicroVolt(maxChargingMicroVolt);
|
||||
|
||||
int currentChargingCurrent = getCurrentChargingCurrent();
|
||||
String currentChargingCurrentStr = getCurrentChargingCurrentStr(currentChargingCurrent);
|
||||
int currentChargingVoltage = getCurrentChargingVoltage();
|
||||
String currentChargingVoltageStr = getCurrentChargingVoltageStr(currentChargingVoltage);
|
||||
|
||||
|
||||
String result = "\n" + context.getString(R.string.battery_current_level) + levelStr
|
||||
+ "\n" + context.getString(R.string.battery_current_temperature) + temperatureStr
|
||||
+ "\n" + context.getString(R.string.battery_current_volt) + batteryVoltStr
|
||||
+ "\n" + context.getString(R.string.battery_current_charging_current) + currentChargingCurrentStr
|
||||
+ "\n" + context.getString(R.string.battery_current_charging_voltage) + currentChargingVoltageStr
|
||||
+ "\n" + context.getString(R.string.battery_status_titls) + statusStr
|
||||
+ "\n" + context.getString(R.string.battery_plugged_titls) + pluggedStr
|
||||
+ "\n" + context.getString(R.string.battery_max_charging_current) + maxChargingMicroAmpStr
|
||||
+ "\n" + context.getString(R.string.battery_max_charging_voltage) + maxChargingMicroVoltStr
|
||||
+ "\n" + context.getString(R.string.battery_health_titls) + healthStr
|
||||
+ "\n" + context.getString(R.string.battery_max_level) + scaleStr
|
||||
+ "\n" + context.getString(R.string.battery_technology_describing) + batteryTechnologyDescript
|
||||
+ "\n充电速度 = " + maxChargingMicroWatt
|
||||
+ "\n";
|
||||
return result;
|
||||
}
|
||||
|
||||
public static JsonObject getBatteryJson(Context context, Intent intent) {
|
||||
int status = intent.getIntExtra(EXTRA_STATUS, BATTERY_STATUS_UNKNOWN);
|
||||
int plugged = intent.getIntExtra(EXTRA_PLUGGED, BATTERY_PLUGGED_ANY);
|
||||
int level = intent.getIntExtra(EXTRA_LEVEL, 0);
|
||||
int scale = intent.getIntExtra(EXTRA_SCALE, 0);
|
||||
int health = intent.getIntExtra(EXTRA_HEALTH, BATTERY_HEALTH_UNKNOWN);
|
||||
|
||||
int maxChargingMicroAmp = intent.getIntExtra(EXTRA_MAX_CHARGING_CURRENT, -1);
|
||||
int maxChargingMicroVolt = intent.getIntExtra(EXTRA_MAX_CHARGING_VOLTAGE, -1);
|
||||
int batteryVolt = intent.getIntExtra(EXTRA_VOLTAGE, -1);
|
||||
int temperature = intent.getIntExtra(EXTRA_TEMPERATURE, -1);
|
||||
String batteryTechnologyDescript = intent.getStringExtra(EXTRA_TECHNOLOGY);
|
||||
|
||||
final int maxChargingMicroWatt;
|
||||
|
||||
if (maxChargingMicroVolt <= 0) {
|
||||
maxChargingMicroVolt = DEFAULT_CHARGING_VOLTAGE_MICRO_VOLT;
|
||||
}
|
||||
if (maxChargingMicroAmp > 0) {
|
||||
// Calculating muW = muA * muV / (10^6 mu^2 / mu); splitting up the divisor
|
||||
// to maintain precision equally on both factors.
|
||||
maxChargingMicroWatt = (maxChargingMicroAmp / 1000)
|
||||
* (maxChargingMicroVolt / 1000);
|
||||
} else {
|
||||
maxChargingMicroWatt = -1;
|
||||
}
|
||||
|
||||
String statusStr = getStatus(context, status);
|
||||
String healthStr = getHealth(context, health);
|
||||
String pluggedStr = getPlugged(context, plugged);
|
||||
String levelStr = getLevel(level);
|
||||
String scaleStr = getLevel(scale);
|
||||
String temperatureStr = getTemperature(temperature);
|
||||
String batteryVoltStr = getBatteryVolt(batteryVolt);
|
||||
String maxChargingMicroAmpStr = getMaxChargingMicroAmp(maxChargingMicroAmp);
|
||||
String maxChargingMicroVoltStr = getMaxChargingMicroVolt(maxChargingMicroVolt);
|
||||
|
||||
int currentChargingCurrent = getCurrentChargingCurrent();
|
||||
String currentChargingCurrentStr = getCurrentChargingCurrentStr(currentChargingCurrent);
|
||||
int currentChargingVoltage = getCurrentChargingVoltage();
|
||||
String currentChargingVoltageStr = getCurrentChargingVoltageStr(currentChargingVoltage);
|
||||
|
||||
JsonObject jsonObject = new JsonObject();
|
||||
jsonObject.addProperty("battery_quantity", levelStr);
|
||||
jsonObject.addProperty("battery_temperature", temperatureStr);
|
||||
jsonObject.addProperty("battery_voltage", batteryVoltStr);
|
||||
jsonObject.addProperty("charge_current", currentChargingCurrentStr);
|
||||
jsonObject.addProperty("charge_voltage", currentChargingVoltageStr);
|
||||
jsonObject.addProperty("battery_status", statusStr);
|
||||
jsonObject.addProperty("charge_type", pluggedStr);
|
||||
jsonObject.addProperty("charge_current_max", maxChargingMicroAmpStr);
|
||||
jsonObject.addProperty("charge_voltage_max", maxChargingMicroVoltStr);
|
||||
jsonObject.addProperty("battery_health", healthStr);
|
||||
jsonObject.addProperty("quantity_max", scaleStr);
|
||||
jsonObject.addProperty("battery_desc", batteryTechnologyDescript);
|
||||
jsonObject.addProperty("charge_speed", maxChargingMicroWatt);
|
||||
return jsonObject;
|
||||
}
|
||||
|
||||
|
||||
private static String getCurrentChargingVoltageStr(int currentChargingVoltage) {
|
||||
return String.format("%.3f V", currentChargingVoltage / 1000000.0);
|
||||
}
|
||||
|
||||
private static String getCurrentChargingCurrentStr(int currentChargingCurrent) {
|
||||
return String.format("%.3f A", currentChargingCurrent / 1000.0);
|
||||
}
|
||||
|
||||
/**
|
||||
* 当前充电电流 mA
|
||||
* <p>
|
||||
* adb shell "cat /sys/class/power_supply/battery/BatteryAverageCurrent"
|
||||
*/
|
||||
private static int getCurrentChargingCurrent() {
|
||||
int result = 0;
|
||||
BufferedReader br = null;
|
||||
try {
|
||||
String line;
|
||||
br = new BufferedReader(new FileReader("/sys/class/power_supply/battery/BatteryAverageCurrent"));
|
||||
if ((line = br.readLine()) != null) {
|
||||
result = Integer.parseInt(line);
|
||||
}
|
||||
|
||||
br.close();
|
||||
} catch (FileNotFoundException e) {
|
||||
e.printStackTrace();
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
} finally {
|
||||
if (br != null) {
|
||||
try {
|
||||
br.close();
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* 当前充电电压 uV
|
||||
* <p>
|
||||
* adb shell "cat /sys/class/power_supply/battery/batt_vol"
|
||||
*/
|
||||
private static int getCurrentChargingVoltage() {
|
||||
int result = 0;
|
||||
BufferedReader br = null;
|
||||
try {
|
||||
String line;
|
||||
br = new BufferedReader(new FileReader("/sys/class/power_supply/battery/batt_vol"));
|
||||
if ((line = br.readLine()) != null) {
|
||||
result = Integer.parseInt(line);
|
||||
}
|
||||
|
||||
br.close();
|
||||
} catch (FileNotFoundException e) {
|
||||
e.printStackTrace();
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
} finally {
|
||||
if (br != null) {
|
||||
try {
|
||||
br.close();
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
private static String getMaxChargingMicroVolt(int maxChargingMicroVolt) {
|
||||
return String.format("%.1f V", maxChargingMicroVolt / 1000000.0);
|
||||
}
|
||||
|
||||
private static String getMaxChargingMicroAmp(int maxChargingMicroAmp) {
|
||||
return String.format("%.1f A", maxChargingMicroAmp / 1000000.0);
|
||||
}
|
||||
|
||||
private static String getBatteryVolt(int batteryVolt) {
|
||||
return String.format("%.3f V", batteryVolt / 1000.0);
|
||||
}
|
||||
|
||||
|
||||
private static String getTemperature(int temperature) {
|
||||
return String.format("%.1f ℃", temperature / 10.0);
|
||||
}
|
||||
|
||||
private static String getLevel(int level) {
|
||||
return String.format("%d %%", level);
|
||||
}
|
||||
|
||||
private static String getPlugged(Context context, int plugged) {
|
||||
String result = context.getString(R.string.battery_plugged_any);
|
||||
|
||||
switch (plugged) {
|
||||
case BATTERY_PLUGGED_ANY:
|
||||
break;
|
||||
case BATTERY_PLUGGED_AC:
|
||||
result = context.getString(R.string.battery_plugged_ac);
|
||||
break;
|
||||
case BATTERY_PLUGGED_USB:
|
||||
result = context.getString(R.string.battery_plugged_usb);
|
||||
break;
|
||||
case BATTERY_PLUGGED_WIRELESS:
|
||||
result = context.getString(R.string.battery_plugged_wireless);
|
||||
break;
|
||||
default:
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
private static String getHealth(Context context, int health) {
|
||||
String result = context.getString(R.string.battery_health_unknow);
|
||||
|
||||
switch (health) {
|
||||
case BATTERY_HEALTH_UNKNOWN:
|
||||
break;
|
||||
case BATTERY_HEALTH_GOOD:
|
||||
result = context.getString(R.string.battery_health_good);
|
||||
break;
|
||||
case BATTERY_HEALTH_OVERHEAT:
|
||||
result = context.getString(R.string.battery_health_overheat);
|
||||
break;
|
||||
case BATTERY_HEALTH_DEAD:
|
||||
result = context.getString(R.string.battery_health_dead);
|
||||
break;
|
||||
case BATTERY_HEALTH_UNSPECIFIED_FAILURE:
|
||||
result = context.getString(R.string.battery_health_unspecified_failure);
|
||||
break;
|
||||
case BATTERY_HEALTH_OVER_VOLTAGE:
|
||||
result = context.getString(R.string.battery_health_over_voltage);
|
||||
break;
|
||||
case BATTERY_HEALTH_COLD:
|
||||
result = context.getString(R.string.battery_health_cold);
|
||||
break;
|
||||
default:
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
private static String getStatus(Context context, int status) {
|
||||
String result = context.getString(R.string.battery_status_unknown);
|
||||
|
||||
switch (status) {
|
||||
case BATTERY_STATUS_FULL:
|
||||
result = context.getString(R.string.battery_status_full);
|
||||
break;
|
||||
case BATTERY_STATUS_NOT_CHARGING:
|
||||
result = context.getString(R.string.battery_status_not_charging);
|
||||
break;
|
||||
case BATTERY_STATUS_DISCHARGING:
|
||||
result = context.getString(R.string.battery_status_discharging);
|
||||
break;
|
||||
case BATTERY_STATUS_CHARGING:
|
||||
result = context.getString(R.string.battery_status_charging);
|
||||
break;
|
||||
case BATTERY_STATUS_UNKNOWN:
|
||||
break;
|
||||
default:
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
}
|
||||
@@ -2109,7 +2109,7 @@ public class JGYUtils {
|
||||
} else {
|
||||
//爱华设置,暂时屏蔽
|
||||
// setDefaultLauncher(mContext, pkg, className);
|
||||
Log.e(TAG, "setDefaultDesktop: setDefaultLauncher");
|
||||
Log.e(TAG, "setDefaultDesktop: setDefaultLauncher: " + pkg);
|
||||
}
|
||||
// String oldDesktop = (String) SPUtils.get(mContext, "default_launcher", "");
|
||||
// if (Objects.equals(oldDesktop, pkg)) {
|
||||
|
||||
Reference in New Issue
Block a user