增加电量百分比功能

2023-12-15 19:38
文章标签 功能 增加 百分比 电量

本文主要是介绍增加电量百分比功能,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

差分包:

--- a/idh.code/frameworks/base/core/java/android/provider/Settings.java
+++ b/idh.code/frameworks/base/core/java/android/provider/Settings.java
@@ -4519,6 +4519,10 @@ public final class Settings {*/public static final String PAYMENT_SERVICE_SEARCH_URI = "payment_service_search_uri";+        /*Yang Liu for <B5><E7><C1><BF><B0>ٷֱȹ<A6><C4><DC> start*/
+       public static final String BATTERY_PERCENTAGE = "battery_percentage";
+        /*Yang Liu for <B5><E7><C1><BF><B0>ٷֱȹ<A6><C4><DC> end*/
+               /*** This are the settings to be backed up.*
diff --git a/idh.code/frameworks/base/packages/SettingsProvider/res/values/defaults.xml b/idh.code/frameworks/base/packages/SettingsPro
index 506c0b1..b4c7d8b 100755
--- a/idh.code/frameworks/base/packages/SettingsProvider/res/values/defaults.xml
+++ b/idh.code/frameworks/base/packages/SettingsProvider/res/values/defaults.xml
@@ -190,4 +190,6 @@<integer name="def_sms_validity">255</integer><!--tangjc add--><string name="time_12_24" translatable="false">24</string>
+    <!--Yang Liu add-->
+    <bool name="def_battery_percentage">false</bool></resources>
diff --git a/idh.code/frameworks/base/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java b/idh.code/frame
index 22351dc..35b0554 100755
--- a/idh.code/frameworks/base/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java
+++ b/idh.code/frameworks/base/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java
@@ -2148,6 +2148,10 @@ public class DatabaseHelper extends SQLiteOpenHelper {R.string.config_default_input_method);}/* @} */
+/*Yang Liu for <B5><E7><C1><BF><B0>ٷֱȹ<A6><C4><DC> start*/
+            loadBooleanSetting(stmt, Settings.Secure.BATTERY_PERCENTAGE,
+                    R.bool.def_battery_percentage);
+/*Yang Liu for <B5><E7><C1><BF><B0>ٷֱȹ<A6><C4><DC> end*/            } finally {if (stmt != null) stmt.close();}
diff --git a/idh.code/frameworks/base/packages/SystemUI/res/layout/status_bar.xml b/idh.code/frameworks/base/packages/SystemUI/res/layo
old mode 100644
new mode 100755
index 1b67e8a..794a0c6
--- a/idh.code/frameworks/base/packages/SystemUI/res/layout/status_bar.xml
+++ b/idh.code/frameworks/base/packages/SystemUI/res/layout/status_bar.xml
@@ -95,6 +95,15 @@android:layout_width="wrap_content"android:layout_height="wrap_content"/>
+                 <TextView
+                       android:id="@+id/percentage"
+                       android:layout_height="wrap_content"
+                       android:layout_width="wrap_content"
+                       android:visibility = "gone"
+                       android:paddingLeft="4dip"
+                       android:textSize="16sp"
+                       android:textColor="@android:color/holo_blue_light"
+                /><!-- battery must be padded below by 2px to match assets --><com.android.systemui.BatteryMeterViewandroid:id="@+id/battery"
diff --git a/idh.code/frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java b/idh.code/framewo
old mode 100644
new mode 100755
index ba5c2a9..67ed407
--- a/idh.code/frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java
+++ b/idh.code/frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java
@@ -548,6 +548,9 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode {// Other iconsmLocationController = new LocationController(mContext); // will post a notificationmBatteryController = new BatteryController(mContext);
+       /*Yang Liu for <B5><E7><C1><BF><B0>ٷֱȹ<A6><C4><DC> start*/
+       mBatteryController.addLabelView((TextView) mStatusBarWindow.findViewById(R.id.percentage));
+       /*Yang Liu for <B5><E7><C1><BF><B0>ٷֱȹ<A6><C4><DC> end*/mNetworkController = new NetworkController(mContext);mBluetoothController = new BluetoothController(mContext);mRotationLockController = new RotationLockController(mContext);
diff --git a/idh.code/frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/policy/BatteryController.java b/idh.code/fra
old mode 100644
new mode 100755
index d098d3d..1c59ad1
--- a/idh.code/frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/policy/BatteryController.java
+++ b/idh.code/frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/policy/BatteryController.java
@@ -25,13 +25,23 @@ import android.graphics.drawable.Drawable;import android.os.BatteryManager;import android.util.Log;import android.widget.ImageView;
-
+/*Yang Liu for <B5><E7><C1><BF><B0>ٷֱȹ<A6><C4><DC> start*/
+import android.widget.TextView;
+import android.view.View;
+import android.provider.Settings;
+/*Yang Liu for <B5><E7><C1><BF><B0>ٷֱȹ<A6><C4><DC> end*/import java.util.ArrayList;import com.android.systemui.R;public class BatteryController extends BroadcastReceiver {private static final String TAG = "StatusBar.BatteryController";
+    /*Yang Liu for <B5><E7><C1><BF><B0>ٷֱȹ<A6><C4><DC> start*/
+    private boolean mShouldShowBatteryPercentage = false;
+    private String mBatteryPercentage = "100%";
+    private static final String ACTION_BATTERY_PERCENTAGE_SWITCH = "silence.intent.action.BATTERY_PERCENTAGE_SWITCH";
+    private ArrayList<TextView> mLabelViews = new ArrayList<TextView>();
+    /*Yang Liu for <B5><E7><C1><BF><B0>ٷֱȹ<A6><C4><DC> end*//* SPRD: Modify 20140319 of bug 290550,rm systemui animation {@ *//*Context mContext;private ArrayList<ImageView> mIconViews = new ArrayList<ImageView>();
@@ -63,8 +73,11 @@ public class BatteryController extends BroadcastReceiver {public BatteryController(Context context) {//mContext = context;
+        mShouldShowBatteryPercentage = (Settings.Secure.getInt(context.getContentResolver(), 
+                                               Settings.Secure.BATTERY_PERCENTAGE, 0) != 0);IntentFilter filter = new IntentFilter();filter.addAction(Intent.ACTION_BATTERY_CHANGED);
+       filter.addAction(ACTION_BATTERY_PERCENTAGE_SWITCH);context.registerReceiver(this, filter);/* SPRD: Modify 20140319 of bug 290550,rm systemui animation {@ *//*m_Anim_Charge_a = (AnimationDrawable) context.getResources().getDrawable(R.anim.stat_sys_battery_charge_anim_a);
@@ -76,7 +89,18 @@ public class BatteryController extends BroadcastReceiver {m_Anim_Charge_g = (AnimationDrawable) context.getResources().getDrawable(R.anim.stat_sys_battery_charge_anim_g);*//* @} */}
-
+       
+     /*Yang Liu for <B5><E7><C1><BF><B0>ٷֱȹ<A6><C4><DC> start*/
+     public void addLabelView(TextView v) {
+        mLabelViews.add(v);
+    }
+    private  String getBatteryPercentage(Intent batteryChangedIntent) {
+        int level = batteryChangedIntent.getIntExtra("level", 0);
+        int scale = batteryChangedIntent.getIntExtra("scale", 100);
+        return String.valueOf(level * 100 / scale) + "%";
+    }
+     /*Yang Liu for <B5><E7><C1><BF><B0>ٷֱȹ<A6><C4><DC> end*/
+        public void addStateChangedCallback(BatteryStateChangeCallback cb) {mChangeCallbacks.add(cb);}
@@ -189,7 +213,34 @@ public class BatteryController extends BroadcastReceiver {}}*//* @} */
+
+           /*Yang Liu for <B5><E7><C1><BF><B0>ٷֱȹ<A6><C4><DC> start*/
+           mBatteryPercentage = getBatteryPercentage(intent);
+            Log.d(TAG,"mBatteryPercentage is " + mBatteryPercentage + " mShouldShowBatteryPercentage is "
+                    + mShouldShowBatteryPercentage + " mLabelViews.size() " + mLabelViews.size());
+            TextView v = mLabelViews.get(0);
+            if (mShouldShowBatteryPercentage) {
+                v.setText(mBatteryPercentage);
+                v.setVisibility(View.VISIBLE);
+            } else {
+                v.setVisibility(View.GONE);
+            }
+           /*Yang Liu for <B5><E7><C1><BF><B0>ٷֱȹ<A6><C4><DC> end*/
+        } 
+           /*Yang Liu for <B5><E7><C1><BF><B0>ٷֱȹ<A6><C4><DC> start*/
+       else if (action.equals(ACTION_BATTERY_PERCENTAGE_SWITCH)) {
+            mShouldShowBatteryPercentage = (intent.getIntExtra("state",0) == 1);
+            Log.d(TAG, " OnReceive from mediatek.intent.ACTION_BATTERY_PERCENTAGE_SWITCH  mShouldShowBatteryPercentage" +
+                    " is " + mShouldShowBatteryPercentage);
+            TextView v = mLabelViews.get(0);
+            if (mShouldShowBatteryPercentage) {
+                v.setText(mBatteryPercentage);
+                v.setVisibility(View.VISIBLE);
+            } else {
+                v.setVisibility(View.GONE);
+            }}
+       /*Yang Liu for <B5><E7><C1><BF><B0>ٷֱȹ<A6><C4><DC> end*/}// SPRD: Modify 20140319 of bug 290550,rm systemui animation
diff --git a/idh.code/packages/apps/Settings/res/values-id/strings.xml b/idh.code/packages/apps/Settings/res/values-id/strings.xml
old mode 100644
new mode 100755
index a7d5455..f024973
--- a/idh.code/packages/apps/Settings/res/values-id/strings.xml
+++ b/idh.code/packages/apps/Settings/res/values-id/strings.xml
@@ -1562,4 +1562,5 @@<string name="master_clear_level">"Kapasitas kurang dari 30%, apakah melanjutkan operasi ulang telepon?"</string><string name="factory_dialog_title">"Minta"</string><string name="wep_password_tip_text">Silakan masukan 5,13,29 karakter ASCII atau 10,26,58 karakter lain untuk otentikasi WEP.</strin
+  <string name="battery_percent">baterai Persentase</string></resources>
\ No newline at end of file
diff --git a/idh.code/packages/apps/Settings/res/values-zh-rCN/strings_ex.xml b/idh.code/packages/apps/Settings/res/values-zh-rCN/strin
old mode 100644
new mode 100755
index 0de2451..deaae77
--- a/idh.code/packages/apps/Settings/res/values-zh-rCN/strings_ex.xml
+++ b/idh.code/packages/apps/Settings/res/values-zh-rCN/strings_ex.xml
@@ -60,4 +60,5 @@<string name="close">关闭</string><string name="apn_settings_ex">SIM<xliff:g id="SIM">%s</xliff:g> 接入点名称</string>
+  <string name="battery_percent">电量百分比</string></resources>
\ No newline at end of file
diff --git a/idh.code/packages/apps/Settings/res/values-zh-rTW/strings_ex.xml b/idh.code/packages/apps/Settings/res/values-zh-rTW/strin
old mode 100644
new mode 100755
index fc853f9..60e43c5
--- a/idh.code/packages/apps/Settings/res/values-zh-rTW/strings_ex.xml
+++ b/idh.code/packages/apps/Settings/res/values-zh-rTW/strings_ex.xml
@@ -60,4 +60,5 @@<string name="close">關閉</string><string name="apn_settings_ex">SIM<xliff:g id="SIM">%s</xliff:g> 存取點名稱</string>
+  <string name="battery_percent">電量百分比</string></resources>
diff --git a/idh.code/packages/apps/Settings/res/values/strings.xml b/idh.code/packages/apps/Settings/res/values/strings.xml
old mode 100644
new mode 100755
index b2cf46f..7f6af10
--- a/idh.code/packages/apps/Settings/res/values/strings.xml
+++ b/idh.code/packages/apps/Settings/res/values/strings.xml
@@ -5206,4 +5206,7 @@<!-- SPRD: Bug #313604 UMS Settings modify sprd USB storage@{ --><string name="move_app_to_internal_sdcard" product="default" msgid="1143379049903056407">"Move to internal SD card"</string><!-- @} -->
+    <!-- SPRD: battery percentage yang liu@{ -->
+    <string name="battery_percent">Battery Percentage</string>
+     <!-- @} --></resources>
diff --git a/idh.code/packages/apps/Settings/res/xml/power_usage_summary.xml b/idh.code/packages/apps/Settings/res/xml/power_usage_summ
old mode 100644
new mode 100755
diff --git a/idh.code/packages/apps/Settings/src/com/android/settings/fuelgauge/PowerUsageSummary.java b/idh.code/packages/apps/Setting
old mode 100644
new mode 100755
index fc65a8c..c362b3a
--- a/idh.code/packages/apps/Settings/src/com/android/settings/fuelgauge/PowerUsageSummary.java
+++ b/idh.code/packages/apps/Settings/src/com/android/settings/fuelgauge/PowerUsageSummary.java
@@ -43,12 +43,20 @@ import com.android.settings.R;import java.util.List;import com.android.internal.os.PowerProfile;
+
+import android.preference.CheckBoxPreference;
+/*Yang Liu for <B5><E7><C1><BF><B0>ٷֱȹ<A6><C4><DC> start*/
+import android.provider.Settings;
+import android.util.Log;
+/*Yang Liu for <B5><E7><C1><BF><B0>ٷֱȹ<A6><C4><DC> end*//*** Displays a list of apps and subsystems that consume power, ordered by how much power was* consumed since the last time it was unplugged.*/public class PowerUsageSummary extends PreferenceFragment {
-
+/*Yang Liu for <B5><E7><C1><BF><B0>ٷֱȹ<A6><C4><DC> start*/
+    private static final String ACTION_BATTERY_PERCENTAGE_SWITCH = "silence.intent.action.BATTERY_PERCENTAGE_SWITCH";
+/*Yang Liu for <B5><E7><C1><BF><B0>ٷֱȹ<A6><C4><DC> end*/private static final boolean DEBUG = false;private static final String TAG = "PowerUsageSummary";
@@ -133,7 +141,21 @@ public class PowerUsageSummary extends PreferenceFragment {@Overridepublic boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen, Preference preference) {
-        if (preference instanceof BatteryHistoryPreference) {
+/*Yang Liu for <B5><E7><C1><BF><B0>ٷֱȹ<A6><C4><DC> start*/
+       if (preference instanceof CheckBoxPreference) {
+            Log.d(TAG, "click battery percentage checkbox");
+            CheckBoxPreference prf = (CheckBoxPreference) preference;
+            int state = prf.isChecked() ? 1 : 0;
+            Log.d(TAG, "state: " + state);
+            Settings.Secure.putInt(getActivity().getContentResolver(), Settings.Secure.BATTERY_PERCENTAGE, state);
+            Intent intent = new Intent(ACTION_BATTERY_PERCENTAGE_SWITCH);
+            intent.putExtra("state", state);
+            Log.d(TAG, "sendBroadcast battery percentage switch");
+            getActivity().sendBroadcast(intent);
+            return super.onPreferenceTreeClick(preferenceScreen, preference);
+        }
+/*Yang Liu for <B5><E7><C1><BF><B0>ٷֱȹ<A6><C4><DC> end*/
+       if (preference instanceof BatteryHistoryPreference) {Parcel hist = Parcel.obtain();mStatsHelper.getStats().writeToParcelWithoutUids(hist, 0);byte[] histData = hist.marshall();
@@ -202,7 +224,19 @@ public class PowerUsageSummary extends PreferenceFragment {private void refreshStats() {mAppListGroup.removeAll();mAppListGroup.setOrderingAsAdded(false);
-
+               
+        /*Yang Liu for <B5><E7><C1><BF><B0>ٷֱȹ<A6><C4><DC> start*/
+        CheckBoxPreference batterrPercentPrf = new CheckBoxPreference(getActivity());
+        batterrPercentPrf.setTitle(getString(R.string.battery_percent));
+        batterrPercentPrf.setOrder(-3);
+       
+        final boolean enable = Settings.Secure.getInt(getActivity().getContentResolver(),
+                Settings.Secure.BATTERY_PERCENTAGE, 0) != 0;
+        
+        batterrPercentPrf.setChecked(enable);        
+        mAppListGroup.addPreference(batterrPercentPrf);
+       /*Yang Liu for <B5><E7><C1><BF><B0>ٷֱȹ<A6><C4><DC> end*/
+       mBatteryStatusPref.setOrder(-2);mAppListGroup.addPreference(mBatteryStatusPref);BatteryHistoryPreference hist = new BatteryHistoryPreference(


这篇关于增加电量百分比功能的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/497623

相关文章

C++11第三弹:lambda表达式 | 新的类功能 | 模板的可变参数

🌈个人主页: 南桥几晴秋 🌈C++专栏: 南桥谈C++ 🌈C语言专栏: C语言学习系列 🌈Linux学习专栏: 南桥谈Linux 🌈数据结构学习专栏: 数据结构杂谈 🌈数据库学习专栏: 南桥谈MySQL 🌈Qt学习专栏: 南桥谈Qt 🌈菜鸡代码练习: 练习随想记录 🌈git学习: 南桥谈Git 🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈�

让树莓派智能语音助手实现定时提醒功能

最初的时候是想直接在rasa 的chatbot上实现,因为rasa本身是带有remindschedule模块的。不过经过一番折腾后,忽然发现,chatbot上实现的定时,语音助手不一定会有响应。因为,我目前语音助手的代码设置了长时间无应答会结束对话,这样一来,chatbot定时提醒的触发就不会被语音助手获悉。那怎么让语音助手也具有定时提醒功能呢? 我最后选择的方法是用threading.Time

Spring框架5 - 容器的扩展功能 (ApplicationContext)

private static ApplicationContext applicationContext;static {applicationContext = new ClassPathXmlApplicationContext("bean.xml");} BeanFactory的功能扩展类ApplicationContext进行深度的分析。ApplicationConext与 BeanF

EMLOG程序单页友链和标签增加美化

单页友联效果图: 标签页面效果图: 源码介绍 EMLOG单页友情链接和TAG标签,友链单页文件代码main{width: 58%;是设置宽度 自己把设置成与您的网站宽度一样,如果自适应就填写100%,TAG文件不用修改 安装方法:把Links.php和tag.php上传到网站根目录即可,访问 域名/Links.php、域名/tag.php 所有模板适用,代码就不粘贴出来,已经打

JavaFX应用更新检测功能(在线自动更新方案)

JavaFX开发的桌面应用属于C端,一般来说需要版本检测和自动更新功能,这里记录一下一种版本检测和自动更新的方法。 1. 整体方案 JavaFX.应用版本检测、自动更新主要涉及一下步骤: 读取本地应用版本拉取远程版本并比较两个版本如果需要升级,那么拉取更新历史弹出升级控制窗口用户选择升级时,拉取升级包解压,重启应用用户选择忽略时,本地版本标志为忽略版本用户选择取消时,隐藏升级控制窗口 2.

Android 10.0 mtk平板camera2横屏预览旋转90度横屏拍照图片旋转90度功能实现

1.前言 在10.0的系统rom定制化开发中,在进行一些平板等默认横屏的设备开发的过程中,需要在进入camera2的 时候,默认预览图像也是需要横屏显示的,在上一篇已经实现了横屏预览功能,然后发现横屏预览后,拍照保存的图片 依然是竖屏的,所以说同样需要将图片也保存为横屏图标了,所以就需要看下mtk的camera2的相关横屏保存图片功能, 如何实现实现横屏保存图片功能 如图所示: 2.mtk

Spring+MyBatis+jeasyui 功能树列表

java代码@EnablePaging@RequestMapping(value = "/queryFunctionList.html")@ResponseBodypublic Map<String, Object> queryFunctionList() {String parentId = "";List<FunctionDisplay> tables = query(parent

PostgreSQL核心功能特性与使用领域及场景分析

PostgreSQL有什么优点? 开源和免费 PostgreSQL是一个开源的数据库管理系统,可以免费使用和修改。这降低了企业的成本,并为开发者提供了一个活跃的社区和丰富的资源。 高度兼容 PostgreSQL支持多种操作系统(如Linux、Windows、macOS等)和编程语言(如C、C++、Java、Python、Ruby等),并提供了多种接口(如JDBC、ODBC、ADO.NET等

寻迹模块TCRT5000的应用原理和功能实现(基于STM32)

目录 概述 1 认识TCRT5000 1.1 模块介绍 1.2 电气特性 2 系统应用 2.1 系统架构 2.2 STM32Cube创建工程 3 功能实现 3.1 代码实现 3.2 源代码文件 4 功能测试 4.1 检测黑线状态 4.2 未检测黑线状态 概述 本文主要介绍TCRT5000模块的使用原理,包括该模块的硬件实现方式,电路实现原理,还使用STM32类

nginx介绍及常用功能

什么是nginx nginx跟Apache一样,是一个web服务器(网站服务器),通过HTTP协议提供各种网络服务。 Apache:重量级的,不支持高并发的服务器。在Apache上运行数以万计的并发访问,会导致服务器消耗大量内存。操作系统对其进行进程或线程间的切换也消耗了大量的CPU资源,导致HTTP请求的平均响应速度降低。这些都决定了Apache不可能成为高性能WEB服务器  nginx: