歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

Android Setting中添加解除屏幕鎖選項

首先,我前面有一篇寫的是Android消除屏幕鎖http://www.linuxidc.com/Linux/2013-03/81233.htm,這裡想加以改進,因為在我們所使用的手機中已經在“設置”的“輔助功能”中有選擇是否“解除屏幕鎖”(也就開機時和按power鍵亮屏時是否有屏幕鎖)。

這裡我想做的就是在原生的android源碼上添加這一功能,主要還是以學習為主去實現這一功能。

看這個之前我希望你們看一下android消除屏幕鎖這篇http://www.linuxidc.com/Linux/2013-03/81233.htm。

首先我是在做好了桌面循環之後去做在“設置”中的“輔助功能”中添加這一項:

先看一張圖片:

這裡的解除屏幕鎖就是咱們要添加的項。

先講一下思路吧:先把界面做出來,再將是否選擇的值存到系統的(adb shell進入)data/data/com.android.providers.settings/databases/settings.db數據庫中的system表中,

然後在framework/base/policy/src/com/android/internal/policy/impl/KeyguardViewMediator.java的源碼中取得數據庫中是否選擇循環桌面來執行相關代碼。

先做UI:

在settings源碼中的accessibility_settings.xml文件中添加一個checkbox:

 <!-- add by xxnan -->
    <CheckBoxPreference
            android:key="lock_screen"
            android:title="@string/lock_screen_title"
            android:persistent="false"/> 

在settings源碼的res中添加相關的代碼:

在values/string.xml中添加(英文顯示):

<string name="lock_screen_title">Lock_Screen</string>

在values-zh-rCN/string.xml中添加(中文顯示):

<string name="lock_screen_title" msgid="4676390750360727396">"循環桌面"</string>

在settings源碼的AccessibilitySettings.java中的OnCreate中添加:

 /*****************************************/
        mLockScreen=(CheckBoxPreference) findPreference(
          LOCK_SCREEN);
  int LockScreen=Settings.System.getInt(this.getContentResolver(),
                    "lock_screen",0);//取出是否被選擇
  if( LockScreen==1)
    mLockScreen.setChecked(true);//如果被選擇,那麼下次打開setting時就勾選
  else
    mLockScreen.setChecked(false);//如果沒被選擇,那麼下次打開setting時就不勾選
 /*****************************************/ 

Copyright © Linux教程網 All Rights Reserved