关于HDMI添加Screen_timeout

添加Display>>HDMI settings>>Screen Timeout选项
1,编辑
frameworks/base/services/core/java/com/android/server/power/PowerManagerService.java

+import com.mediatek.hdmi.IMtkHdmiManager;
+import android.os.ServiceManager;
@
+private IMtkHdmiManager mHdmiManager = null;
   private boolean mLowPowerModeEnabled;
@
+       filter = new IntentFilter();
+               filter.addAction("android.intent.action.HDMI_PLUG");
+               mContext.registerReceiver(new BroadcastReceiver() {
+                   @Override
+                   public void onReceive(Context context, Intent intent) {
+                       TurnonScreen();
+                   }
+               }, filter, null, mHandler); 
       // Register for settings changes.
             final ContentResolver resolver = mContext.getContentResolver();
             resolver.registerContentObserver(Settings.Secure.getUriFor(
@   
+            resolver.registerContentObserver(Settings.System.getUriFor(
+                    Settings.System.HDMI_LCD_TIMEOUT),
+                    false, mSettingsObserver, UserHandle.USER_ALL);
             resolver.registerContentObserver(Settings.System.getUriFor(
                     Settings.System.SCREEN_AUTO_BRIGHTNESS_ADJ),
                     false, mSettingsObserver, UserHandle.USER_ALL);
@
+            mHdmiManager = IMtkHdmiManager.Stub.asInterface(ServiceManager.getService(Context.HDMI_SERVICE));
             // Go.
             if (DEBUG) {
                 Slog.d(TAG, "system ready!");

@
     mDirty |= DIRTY_SETTINGS;

+         lcd_delay_timeout = Settings.System.getIntForUser(resolver,
+                Settings.System.HDMI_LCD_TIMEOUT, 10,
+                UserHandle.USER_CURRENT);
+         
+         if(isAbleChangeHDMIMode()){
+                TurnonScreen();
+         }
     }
     private void postAfterBootCompleted(Runnable r) {

@

+    private void TurnonScreen() {
+
+       ContentResolver resolver = mContext.getContentResolver();
+       final long currentTimeout = Settings.System.getLong(resolver,
+               Settings.System.HDMI_LCD_TIMEOUT, 10);
+       mHandlerTimeout.removeCallbacks(mScreenTimeout);
+       if (lcd_delay_timeout != -1) {
+
+           if (mTimeout) {
+               try {
+                   setTemporaryScreenBrightnessSettingOverrideInternal(mScreenBrightnessSetting);
+               } catch (Exception e) {
+                   Slog.e(TAG, "Exception" + e);
+               }
+           }
+           mTimeout = false;
+           if(isAbleChangeHDMIMode())
+               LockScreenOff();
+       }
+
+       return;
+   }
+
+   private boolean isAbleChangeHDMIMode()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值