version:mtk 3.9

fix:优化解锁设置默认桌面
update:上传增加电池信息
This commit is contained in:
2022-08-10 18:09:50 +08:00
parent 7c9f21ed73
commit 99a8038e41
15 changed files with 653 additions and 25 deletions

View 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;
}
}

View File

@@ -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)) {