2009-07-11 33 views
9

Tôi biết có thể sử dụng wakelock để giữ màn hình, CPU, vv nhưng làm cách nào tôi có thể thay đổi cài đặt "Thời gian chờ màn hình" trên điện thoại Android.Thời gian chờ màn hình Android

Trả lời

11

Nhà cung cấp Settings.System cung cấp cài đặt SCREEN_OFF_TIMEOUT có thể là những gì bạn đang tìm kiếm.

+0

Cảm ơn một lần nữa Đánh dấu! – Tom

+0

nhưng đó là một quyền không đổi? – usman

+0

@usman: Không, người dùng có thể thay đổi thông qua Cài đặt. – CommonsWare

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); 
    } 
} 

Và cũng không quên thêm sự cho phép này trong manifest:

android:name="android.permission.WRITE_SETTINGS" 
13

Trên đây là đúng:

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

Nhưng cũng bao gồm cho phép trong manifest:

android:name="android.permission.WRITE_SETTINGS" 
1

Đây là một bảng mã, bạn có thể làm mo lại.

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 + ""); 
       } 
Các vấn đề liên quan