Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> 如何在settings裡的休眠模式裡添加永不休眠

如何在settings裡的休眠模式裡添加永不休眠

編輯:關於Android編程

最近項目需求裡需要在設置菜單的休眠模式裡添加一項永不休眠選擇項。針對MTK平台的修改方式有如下幾步驟。(其他平台和android原生系統的修改方式類似,只是android原生系統修改永不休眠需要通過設置較長的時間實現)

1.由於代碼不同,在Jelly Bean(android4.2)之前,如下

alps\frameworks\base\packages\SettingsProvider\res\values\defaults.xml中設置def_screen_off_timeout為-1,即

-1

同時請注意,經由下面的操作,setting裡面休眠時間的Never菜單才會出來:

修改alps\packages\apps\Settings\res\values\arrays.xml:



    

        15 seconds

        30 seconds

        1 minute

        2 minutes

        10 minutes

        30 minutes

        never

    

 

    

   

        

        15000

        

        30000

        

        60000

        

        120000

        

        600000

        

        1800000

         -1

    

修改對比語言value文件夾下的arrays.xml,修改screen_timeout_entries對應的翻譯。不用管那個msgid,只是google用來表示是他自己的資源而已,直接添加"不滅"即可,請知悉。

2,若是android4.2的code,請在前面的修改基礎上再修改下面的代碼:

PowerManagerService.java

private void updateUserActivitySummaryLocked(long now, int dirty) {

.....

 

//change code here ==============

                      Slog.d(TAG,"mScreenOffTimeoutSetting ="+mScreenOffTimeoutSetting);

                      //if (mUserActivitySummary != 0 ) {

                if (mUserActivitySummary != 0 && mScreenOffTimeoutSetting > 0) {

//change code here  end ==============

                    Message msg = mHandler.obtainMessage(MSG_USER_ACTIVITY_TIMEOUT);

                    msg.setAsynchronous(true);

                    mHandler.sendMessageAtTime(msg, nextTimeout);

                }
3.最後對packages/apps/Settings/src/com/android/settings下的DisplaySettings.java文件進行修改,修改如下:

private void updateTimeoutPreferenceDescription(long currentTimeout) {
String summary;

//code here
//if (currentTimeout < 0) {
            // Unsupported value
            //summary = "";
       // } else {
final CharSequence[] entries = preference.getEntries();
final CharSequence[] values = preference.getEntryValues();
//code end

....................................

if (entries.length != 0) {

//code here

if(best == 7){
			summary = "無操作 永不滅";
		}else{
			summary = preference.getContext().getString(
                        R.string.screen_timeout_summary, entries[best]);
Log.i("zfc","summary="+summary+",best="+best);
}
//code end
} else {
                summary = "";
            }


  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved