2009-07-11 8 views
9

मैं इसके संभावित पता एक wakelock उपयोग करने के लिए स्क्रीन, सीपीयू ect पर पकड़ है, लेकिन मैं कैसे प्रोग्राम के रूप में "स्क्रीन टाइमआउट" को बदल सकते हैं एक Android फोन पर स्थापित कर लिया।एंड्रॉयड स्क्रीन टाइमआउट

उत्तर

11

Settings.System प्रदाता SCREEN_OFF_TIMEOUT सेटिंग प्रदान करता है जो आप जो खोज रहे हैं वह हो सकता है।

+0

धन्यवाद फिर से मार्क! – Tom

+0

लेकिन यह एक स्थिर अधिकार है? – usman

+0

@usman: नहीं, उपयोगकर्ता इसे सेटिंग्स के माध्यम से बदल सकते हैं। – 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); 
    } 
} 

और यह भी न प्रकट में इस अनुमति को जोड़ने के लिए भूल जाते हैं:

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

ऊपर सही है:

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

लेकिन यह भी प्रकट में अनुमति शामिल हैं:

android:name="android.permission.WRITE_SETTINGS" 
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 + ""); 
       } 

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^