阅读:14045回复:6

默认关闭HDMI-CEC功能

楼主#
更多 发布于:2019-07-18 09:40
   

   对于HDMI-CEC这个功能,想必做过Amlogic方案的小伙伴们都深有体会,不说完全没用吧,多少有点用,4个开关默认都是是打开的,这个就有点坑了,比如你用个三星的电视,接上盒子发现,语言自动切到了韩文,设置里面所有菜单选项都变成不认识的圈圈方块,当然这对于我们这些Android资深从业者来说轻而易举就可以切回到英文或中文,但是对于普通小白用户来说就抓狂了, What Fuck!!!完全不知道怎么切换语言,个别脾气暴躁的可能会做出砸掉电视或盒子等不理智的行为,有鉴于此,采购商们基本上都一致要求把这个功能默认关闭,看看我的修改如下:



diff --git a/services/core/java/com/android/server/hdmi/HdmiControlService.java b/services/core/java/com/android/server/hdmi/HdmiControlService.java
index 6762f8b..c58f168 100755
--- a/services/core/java/com/android/server/hdmi/HdmiControlService.java
+++ b/services/core/java/com/android/server/hdmi/HdmiControlService.java
@@ -100,6 +100,8 @@ public final class HdmiControlService extends SystemService {
     private final Locale MACAU = new Locale("zh", "MO");
 
    static final String PERMISSION = "android.permission.HDMI_CEC";
+ public static final String HDMI_CONTROL_ONE_TOUCH_PLAY_ENABLED = "hdmi_control_one_touch_play_enabled";
+    public static final String HDMI_CONTROL_AUTO_CHANGE_LANGUAGE_ENABLED = "hdmi_control_auto_change_language_enabled";
 
     // The reason code to initiate intializeCec().
     static final int INITIATED_BY_ENABLE_CEC = 0;
@@ -402,7 +404,10 @@ public final class HdmiControlService extends SystemService {
  /*add by jachary.zhao 2018.5.22*/
+ mHdmiControlEnabled = readBooleanSetting(Global.HDMI_CONTROL_ENABLED, false);


- mHdmiControlEnabled = readBooleanSetting(Global.HDMI_CONTROL_ENABLED, true);

+ writeBooleanSetting(Global.HDMI_CONTROL_ENABLED,mHdmiControlEnabled); //default off "CEC"
+ writeBooleanSetting(Global.HDMI_CONTROL_AUTO_DEVICE_OFF_ENABLED,false);//default off "One key play"
+ writeBooleanSetting(HDMI_CONTROL_ONE_TOUCH_PLAY_ENABLED,false);   //default off "One key power off"
+ writeBooleanSetting(HDMI_CONTROL_AUTO_CHANGE_LANGUAGE_ENABLED,false);//default off "Auto change language"
  mMhlInputChangeEnabled = readBooleanSetting(Global.MHL_INPUT_SWITCHING_ENABLED, true);

[url]http://190.lsal.cn/195/1329.gif?0728100424873[/url]
沙发#
发布于:2019-07-18 19:20
感谢分享
If you have nothing to lose, then you can do anything.
板凳#
发布于:2019-12-25 17:24
地板#
发布于:2020-09-02 08:45
Android P上的修改貌似变成了设置property就可以了。
4楼#
发布于:2020-09-03 11:42
只需要关闭HDMI AUTO CHANGE LANGUAGE 功能:修改如下:




Author: sunhouzan <sunhouzan@163.com>
Date:   Tue Aug 4 17:46:37 2020 +0800

    [HDMI] 关闭自动切换语言

diff --git a/frameworks/base/core/java/android/provider/Settings.java b/frameworks/base/core/java/android/provider/Settings.java
index f914d84ce7..a0b2b447cb 100644
--- a/frameworks/base/core/java/android/provider/Settings.java
+++ b/frameworks/base/core/java/android/provider/Settings.java
@@ -7936,6 +7936,7 @@ public final class Settings {
         */
        public static final String HDMI_CONTROL_ENABLED = "hdmi_control_enabled";
 
+
        /**
         * Whether HDMI System Audio Control feature is enabled. If enabled, TV will try to turn on
         * system audio mode if there's a connected CEC-enabled AV Receiver. Then audio stream will
@@ -7971,6 +7972,8 @@ public final class Settings {
        public static final String HDMI_CONTROL_AUTO_DEVICE_OFF_ENABLED =
                "hdmi_control_auto_device_off_enabled";
 
+          public static final String HDMI_CONTROL_AUTO_CHANGE_LANGUAGE_ENABLED = "hdmi_control_auto_change_language_enabled";
+
        /**
         * The interval in milliseconds at which location requests will be throttled when they are
         * coming from the background.
diff --git a/frameworks/base/packages/SettingsProvider/res/values/defaults.xml b/frameworks/base/packages/SettingsProvider/res/values/defaults.xml
index 5c355d3c1f..f9105668ff 100644
--- a/frameworks/base/packages/SettingsProvider/res/values/defaults.xml
+++ b/frameworks/base/packages/SettingsProvider/res/values/defaults.xml
@@ -193,7 +193,8 @@
 
     <!-- default setting for mouse input enable-->
     <integer name="mouse_enable">1</integer>
-
+    <bool name="hdmi_control_auto_change_language_enabled">false</bool>
+    
     <string name="config_default_input_method" translatable="false">com.sohu.inputmethod.sogouoem/.SogouIME</string>
     <string name="enabled_input_methods" translatable="false">com.sohu.inputmethod.sogouoem/.SogouIME</string>
 </resources>
diff --git a/frameworks/base/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java b/frameworks/base/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java
index 345630868a..d8b5cece88 100644
--- a/frameworks/base/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java
+++ b/frameworks/base/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java
@@ -2649,6 +2649,8 @@ class DatabaseHelper extends SQLiteOpenHelper {
             loadStringSetting(stmt,Settings.Secure.DEFAULT_INPUT_METHOD,
                                R.string.config_default_input_method);
 
+                       loadBooleanSetting(stmt,  Settings.Global.HDMI_CONTROL_AUTO_CHANGE_LANGUAGE_ENABLED,
+                                       R.bool.hdmi_control_auto_change_language_enabled);




开始也是想关闭HDMI-CEC,但是 CEC的按键就用不了了  只关闭自动语言切换就可以了, 只需要给HDMI_CONTROL_AUTO_CHANGE_LANGUAGE_ENABLED 赋一个初始值
5楼#
发布于:2020-09-03 11:43
阿赞88:只需要关闭HDMI AUTO CHANGE LANGUAGE 功能:修改如下:




Author: sunhouzan <sunhouzan@163.com>
Date:   Tue Aug 4 17:46:37 2020 +0800...
回到原帖
为啥我的代码不高亮?
6楼#
发布于:2021-07-15 20:09
在build.prop 中将 ro.vendor.platform.need.display.hdmicec=false   就可以了,关闭了CEC
游客

返回顶部