Android11.0给相机添加低电Toast提醒

修改前的效果:当电量小于等于15%时,可以点击按钮进行操作但没有实际去打开闪光灯,因为底层添加了判断,当系统电量小于等于15%时,是不会去执行打开闪光灯等相关灯光操作的

修改后的效果:无论是打开闪光灯常亮、闪光灯自动、手电筒只要当前系统电量小于等于15%时,都会让用户点击按钮直接强制为按钮关闭闪光灯并且提示用户当前系统电量低请充电等字样信息

需要修改的文件列表(注意:各个版本或平台可能要修改的文件不一样,作者源码为非原生,均属于MTK平台)

vendor/mediatek/proprietary/packages/apps/Camera2/feature/setting/flash/src/com/mediatek/camera/feature/setting/flash/FlashViewController.java
vendor/mediatek/proprietary/packages/apps/Camera2/host/res/values-zh-rCN/strings.xml
vendor/mediatek/proprietary/packages/apps/Camera2/host/res/values-zh-rHK/strings.xml
vendor/mediatek/proprietary/packages/apps/Camera2/host/res/values-zh-rTW/strings.xml
vendor/mediatek/proprietary/packages/apps/Camera2/host/res/values/strings.xml

--- a/vendor/mediatek/proprietary/packages/apps/Camera2/feature/setting/flash/src/com/mediatek/camera/feature/setting/flash/FlashViewController.java
+++ b/vendor/mediatek/proprietary/packages/apps/Camera2/feature/setting/flash/src/com/mediatek/camera/feature/setting/flash/FlashViewController.java
@@ -53,6 +53,8 @@ import com.mediatek.camera.common.debug.LogHelper;import com.mediatek.camera.common.debug.LogUtil;import com.mediatek.camera.common.utils.CameraUtil;import com.mediatek.camera.common.widget.RotateImageView;
+import android.provider.Settings;//add jsp221220 add electric quantity toast
+import android.widget.Toast;//add jsp221220 add electric quantity toast/**
@@ -90,7 +92,7 @@ public class FlashViewController {private final Flash mFlash;private final IApp mApp;private MainHandler mMainHandler;
-
+    private static final String kEY_SYSTEM_CURRENT_BATTERY_VALUE = "key_system_current_battery_value";//add jsp221220 add electric quantity toast/*** Constructor of flash view.* @param flash Flash instance.
@@ -297,6 +299,21 @@ public class FlashViewController {}};+    //startadd jsp221220 add electric quantity toast
+    /**
+     * get battery value for provider settings cache
+     *
+     * @return battery value
+     */
+    private int getBatteryValueForSettings() {+        if (mApp.getActivity() == null) return -1;
+        int currentBatteryLevel = Settings.System.getInt(mApp.getActivity().getContentResolver(), kEY_SYSTEM_CURRENT_BATTERY_VALUE, -1);
+        return currentBatteryLevel;
+    }
+    //endadd jsp221220 add electric quantity toast
+
+
+private View.OnClickListener mFlashChoiceViewListener = new View.OnClickListener() {@Overridepublic void onClick(View view) {@@ -313,6 +330,13 @@ public class FlashViewController {value = FLASH_OFF_VALUE;}mApp.getAppUi().hideQuickSwitcherOption();
+            //startadd jsp221220 add electric quantity toast
+            int currentBatteryLevel = getBatteryValueForSettings();
+            if (view != mFlashOffIcon && currentBatteryLevel >= 0 && currentBatteryLevel <= 15) {+                Toast.makeText(mApp.getActivity(), R.string.battery_low_alert, Toast.LENGTH_SHORT).show();
+                value = FLASH_OFF_VALUE;
+            }
+            //endadd jsp221220 add electric quantity toastupdateFlashEntryView(value);// Flash indicator no need to show now,would be enable later// updateFlashIndicator(value);
diff --git a/vendor/mediatek/proprietary/packages/apps/Camera2/host/res/values-zh-rCN/strings.xml b/vendor/mediatek/proprietary/packages/apps/Camera2/host/res/values-zh-rCN/strings.xml
index 78cae921b40..f8f370ff397 100755
--- a/vendor/mediatek/proprietary/packages/apps/Camera2/host/res/values-zh-rCN/strings.xml
+++ b/vendor/mediatek/proprietary/packages/apps/Camera2/host/res/values-zh-rCN/strings.xml
@@ -31,4 +31,5 @@<string name="switch_back_camera">后摄</string><string name="switch_night_camera">星光夜视</string><!-- endadd fuhaifa20220720 3rdCameraSwitch -->
+    <string name="battery_low_alert">系统电量偏低,请尽快充电!</string><!-- add jsp221220 add electric quantity toast --></resources>
diff --git a/vendor/mediatek/proprietary/packages/apps/Camera2/host/res/values-zh-rHK/strings.xml b/vendor/mediatek/proprietary/packages/apps/Camera2/host/res/values-zh-rHK/strings.xml
index 4ccbf371ed2..299605e3dca 100755
--- a/vendor/mediatek/proprietary/packages/apps/Camera2/host/res/values-zh-rHK/strings.xml
+++ b/vendor/mediatek/proprietary/packages/apps/Camera2/host/res/values-zh-rHK/strings.xml
@@ -23,4 +23,5 @@<string name="pref_thermal_dialog_content_launch">裝置溫度過高,請稍後使用相機。</string><string name="pref_thermal_dialog_content">裝置溫度過高而相機將於30秒後自動退出。請稍後再使用。</string><string name="pref_thermal_preview_toast">點擊螢幕以繼續</string>
+    <string name="battery_low_alert">系統電量偏低,請盡快充電!</string><!-- add jsp221220 add electric quantity toast --></resources>
diff --git a/vendor/mediatek/proprietary/packages/apps/Camera2/host/res/values-zh-rTW/strings.xml b/vendor/mediatek/proprietary/packages/apps/Camera2/host/res/values-zh-rTW/strings.xml
index 18c82e4d7f8..aabe459222c 100755
--- a/vendor/mediatek/proprietary/packages/apps/Camera2/host/res/values-zh-rTW/strings.xml
+++ b/vendor/mediatek/proprietary/packages/apps/Camera2/host/res/values-zh-rTW/strings.xml
@@ -23,4 +23,5 @@<string name="pref_thermal_dialog_content_launch">裝置溫度偏高,請稍候再使用攝影機。</string><string name="pref_thermal_dialog_content">裝置溫度偏高,攝影機30秒內會自動停機。請稍候再使用攝影機。</string><string name="pref_thermal_preview_toast">輕觸螢幕後繼續。</string>
+    <string name="battery_low_alert">系統電量偏低,請盡快充電!</string><!-- add jsp221220 add electric quantity toast --></resources>
diff --git a/vendor/mediatek/proprietary/packages/apps/Camera2/host/res/values/strings.xml b/vendor/mediatek/proprietary/packages/apps/Camera2/host/res/values/strings.xml
index 95e0dd12a5f..c29f293bd2d 100755
--- a/vendor/mediatek/proprietary/packages/apps/Camera2/host/res/values/strings.xml
+++ b/vendor/mediatek/proprietary/packages/apps/Camera2/host/res/values/strings.xml
@@ -33,4 +33,5 @@<string name="switch_back_camera">Back camera</string><string name="switch_night_camera">Night camera</string><!-- endadd fuhaifa20220720 3rdCameraSwitch -->
+    <string name="battery_low_alert">System battery is low, Please charge immediately!</string><!-- add jsp221220 add electric quantity toast --></resources>

以上是关于添加此功能的全部修改

Android系统之路(初识MTK) ------Android11.0给系统相机添加闪光灯低电Toast提醒相关推荐

  1. Android系统之路(初识MTK) ------ OTA打包ROM安装系统img等到ZIP

    在做OTA升级包的时候,我编译了好多次都没过,老是IO异常,刚开始以为是我 make 的错误,后来多次检查 Error 发现是我的配置信息写错了,与驱动工程师一起检查源码, 修改配置信息后再次 OTA ...

  2. Android系统之路(初识MTK) ------ Default Voice Control/输入法校准、自动校准、首字母大写、按键声音

    今天给大家分享MTK平台系统编程与修改的另一个部分,分别是输入法校准.自动校准默认关.首字母大写默认开.按键声音默认关.Voice Control 移除系统中文,默认 英文,下面一个一个的介绍给大家 ...

  3. Android系统之路(初识MTK) ------ (详细精华)添加客供系统壁纸去除系统动态壁纸/Camera默认fine/remove android beam

    ① the first one 进入Camera 设置里面默认 Video quality 摄录像fine 1920*1088 使用 eclipse Dump view hierarchy for u ...

  4. Android系统之路(初识MTK) ------ 内置三方apk到Rom可移动/可卸载

    客户给了一个内置他们自己apk的需求,定制到Rom里,我们需要在编译系统源码的时候配置好相关的文件即可将apk一起打包到ROM里面,下面我们就来一起打包apk到系统 首先需要在 device/medi ...

  5. Android系统之路(初识MTK) ------ 设置系统默认语言/客制化可选语言/设置默认时区

    在这一版本的平板系统定制中,客户需要定制系统默认语言,默认英语,可选语种分别是 语言代码      国家/地区 bn_BD      孟加拉语(孟加拉) en_US      英文  ar       ...

  6. 华为鸿蒙系统是马甲,华为一小步,国产系统一大步,鸿蒙OS2.0手机系统低调发布...

    原标题:华为一小步,国产系统一大步,鸿蒙OS2.0手机系统低调发布 12月16日上午,华为如约低调发布了鸿蒙OS 2.0的手机开发者Beta版.从发布会上展示的鸿蒙OS 2.0界面来看,似乎就是EMU ...

  7. Android中获取系统语言(适用于Android7.0以上系统)

    2019独角兽企业重金招聘Python工程师标准>>> public static String getSysLang(Context context) {Locale locale ...

  8. Android框架之路——Banner实现轮播图(RecyclerView添加Header)

    一.简介 Banner能实现循环播放多个广告图片和手动滑动循环等功能.因为原生ViewPager并不支持循环翻页, 要实现循环还得需要自己去动手.Banner框架可以进行不同样式.不同动画设置, 以及 ...

  9. Android11.0(R) HAL 相机集成水印算法+多帧算法

    一.写在前面 上网

最新文章

  1. java上传png_java图片上传
  2. 不要随随便便听别人安利买基金。。。
  3. 下位机和上位机是什么意思_单反无反选择高速机是什么意思?什么是高速机
  4. (转)MOMO的Unity3D研究院之深入理解Unity脚本的执行顺序(六十二)
  5. 突发,Gitee 图床废了
  6. 济南计算机学校排名2015,济南高中排名前十名有哪些
  7. springboot基于电脑商城的购物系统l.rar(项目源码+数据库文件)
  8. [python]python生成md5
  9. 常用音频单位简介:dBSPL、dBm、dBu、dBV、dBFS
  10. 如何绘制一幅优雅的列线图
  11. 我看过的关于职业规划最好最全面的一篇文章
  12. 低效率只因环境太乱?43 个方法帮你减少干扰
  13. 日常Java练习题(每天进步一点点系列)【含通知】
  14. python matplotlib绘制 3D图像专题 (三维柱状图、曲面图、散点图、曲线图合集)
  15. vue+elementui实现非常好看的博客、网站首页,网站模板
  16. [应用模板]HTML5+Phonegap通讯录
  17. 全球及中国电动汽车产业产销规模与十四五发展方向调研报告2022版
  18. stm32倒计时秒表proteus_倒计时秒表 单片机
  19. kibana安装教程
  20. Paper中含有Type3的字体,需要修改为Type1字体

热门文章

  1. 高品质充电宝推荐,好的充电宝盘点
  2. MySQL基础到高级
  3. 用动态规划算法编程实现数字三角形问题
  4. http错误403 解决办法
  5. 无限法则登录超时中的服务器错误,网友吐槽《无限法则》游戏无法登录 其实解决的办法很简单!...
  6. 互联网动物园 - Logo 合集
  7. 浏览器兼容模式下网页无法访问
  8. SQL case when 用法
  9. update case when 多字段,多条件, mysql中case when用法
  10. Emacs 选择文字