代码之家  ›  专栏  ›  技术社区  ›  Tom

Android屏幕超时

  •  10
  • Tom  · 技术社区  · 15 年前

    我知道使用wakelock来保持屏幕、CPU等的状态是可能的,但是我如何通过编程来更改“ 屏幕超时 “在Android手机上设置。

    4 回复  |  直到 9 年前
        1
  •  11
  •   CommonsWare    15 年前

    这个 Settings.System 提供商提供 SCREEN_OFF_TIMEOUT 设置这可能是您正在寻找的。

        2
  •  27
  •   Nelson Ford    10 年前
    public class HelloWorld extends Activity 
    {
        private static final int DELAY = 3000;
        int defTimeOut = 0;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) 
        {
            // Be sure to call the super class.
            super.onCreate(savedInstanceState);
    
            // See assets/res/any/layout/hello_world.xml for this
            // view layout definition, which is being set here as
            // the content of our screen.
            setContentView(R.layout.hello_world);
            defTimeOut = Settings.System.getInt(getContentResolver(), 
                             Settings.System.SCREEN_OFF_TIMEOUT, DELAY);
            Settings.System.putInt(getContentResolver(), Settings.System.SCREEN_OFF_TIMEOUT, DELAY);
        }
    
        @Override
        protected void onDestroy() 
        {
            super.onDestroy();
            Settings.System.putInt(getContentResolver(), Settings.System.SCREEN_OFF_TIMEOUT, defTimeOut);
        }
    }
    

    也不要忘记在清单中添加此权限:

    android:name="android.permission.WRITE_SETTINGS"
    
        3
  •  14
  •   Botz3000 Amir Sheng    12 年前

    以上正确:

    Settings.System.putInt(getContentResolver(),Settings.System.SCREEN_OFF_TIMEOUT, DELAY); 
    

    但也包括舱单中的许可:

    android:name="android.permission.WRITE_SETTINGS"
    
        4
  •  1
  •   TeeTracker    11 年前

    这是一个代码表,您可以做更多。

    long stand = Settings.System.getLong(
                            mContext.getContentResolver(), Settings.System.SCREEN_OFF_TIMEOUT,
                            -1);
                    long sec = stand / 1000;
                    String time = null;
                                        if(stand<0) {
                                             //close.
                                        }
                    else if( sec >= 60) {//to minute
                        time = String.format(mContext.getString(R.string.minutes), (sec / 60) + "");
                    } else {
                        time = String.format( mContext.getString(R.string.seconds),sec + "");
                    }
    
    推荐文章