11

ウェイクロックを使用して画面、CPUなどを保持できることはわかっていますが、Androidフォンの「画面タイムアウト」設定をプログラムで変更するにはどうすればよいですか。

4

4 に答える 4

27
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"
于 2010-08-24T08:11:25.173 に答える
14

上記は正しいです:

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

ただし、マニフェストに許可も含めます。

android:name="android.permission.WRITE_SETTINGS"
于 2012-05-29T07:31:18.367 に答える
12

Settings.Systemプロバイダーは、あなたが探しているSCREEN_OFF_TIMEOUT設定を提供します。

于 2009-07-11T18:19:03.310 に答える
1

ここにコードシートがあります。さらに多くのことができます。

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 + "");
                }
于 2013-11-24T16:13:45.047 に答える