android 模仿耳机检测 检测底层状态

--- a/frameworks/base/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java
+++ b/frameworks/base/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java
@@ -506,6 +506,19 @@ public class PhoneWindowManager implements WindowManagerPolicy {
             setHdmiPlugged("1".equals(event.get("SWITCH_STATE")));
         }
     };
+    private UEventObserver mInhuaSoftObserver = new UEventObserver() {
+        @Override
+        public void onUEvent(UEventObserver.UEvent event) {
+            if("1".equals(event.get("SWITCH_STATE")))
+            {
+                       Slog.i(TAG, "zougui  -------------------status :  1-------------------------!");
+            }else
+            {
+                     Slog.i(TAG, "zougui  -------------------status :  0-------------------------!");
+            }
+        }
+    };
+
 
     class SettingsObserver extends ContentObserver {
         SettingsObserver(Handler handler) {
@@ -986,7 +999,7 @@ public class PhoneWindowManager implements WindowManagerPolicy {
 
         // Controls rotation and the like.
         initializeHdmiState();
-
+        initializeInhuaSoftState();
         // Match current screen state.
         if (mPowerManager.isScreenOn()) {
             screenTurningOn(null);
@@ -3728,6 +3707,37 @@ public class PhoneWindowManager implements WindowManagerPolicy {
         setHdmiPlugged(!mHdmiPlugged);
     }
 
+    void initializeInhuaSoftState() {
+        boolean plugged = false;
+        if (new File("/sys/devices/virtual/switch/ihs/state").exists()) {
+            mInhuaSoftObserver.startObserving("DEVPATH=/devices/virtual/switch/ihs");
+
+            final String filename = "/sys/class/switch/ihs/state";
+            FileReader reader = null;
+            try {
+                reader = new FileReader(filename);
+                char[] buf = new char[15];
+                int n = reader.read(buf);
+                if (n > 1) {
+                    plugged = 0 != Integer.parseInt(new String(buf, 0, n-1));
+                }
+            } catch (IOException ex) {
+                Slog.w(TAG, "Couldn't read hdmi state from " + filename + ": " + ex);
+            } catch (NumberFormatException ex) {
+                Slog.w(TAG, "Couldn't read hdmi state from " + filename + ": " + ex);
+            } finally {
+                if (reader != null) {
+                    try {
+                        reader.close();
+                    } catch (IOException ex) {
+                    }
+                }
+            }
+        }
+              Slog.i(TAG, "zougui  ---------------------------------------inhuasoft status add!");
+    }
+    
+

kernel:  模仿耳机检测,注册一个switch_dev_register() 就好.


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值