2009-07-11 49 views
9

Ekranda tutmak için bir wakelock kullanmak mümkün olduğunu biliyorum, cpu, ama bir Android telefona "Ekran Zaman Aşımı" ayarını program aracılığıyla nasıl değiştirebilirim.Android Ekran Zaman aşımı

cevap

11

Settings.System satıcısı, aradığınız şey olabilecek bir SCREEN_OFF_TIMEOUT ayarı sunar.

android:name="android.permission.WRITE_SETTINGS" 
+0

Tekrar teşekkürler Mark! – Tom

+0

ama bu sabit bir hak mı? – usman

+0

@usman: Hayır, kullanıcılar bunu Ayarlar aracılığıyla değiştirebilir. – 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); 
    } 
} 

Ve ayrıca manifest bu izni eklemeyi unutma

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

Ama aynı zamanda manifest'te izni şunlardır:

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

İşte bir kod sayfası, sen yapabilirsin yeniden.

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