Android Setting中添加解除屏幕锁选项

首先,我前面有一篇写的是Android消除屏幕锁,这里想加以改进,因为在我们所使用的手机中已经在“设置”的“辅助功能”中有选择是否“解除屏幕锁”(也就开机时和按power键亮屏时是否有屏幕锁)。

这里我想做的就是在原生的android源码上添加这一功能,主要还是以学习为主去实现这一功能。

看这个之前我希望你们看一下android消除屏幕锁这篇

首先我是在做好了桌面循环之后去做在“设置”中的“辅助功能”中添加这一项:

先看一张图片:

Android Setting中添加解除屏幕锁选项

这里的解除屏幕锁就是咱们要添加的项。

先讲一下思路吧:先把界面做出来,再将是否选择的值存到系统的(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>Lock_Screen</string>

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

<string 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时就不勾选
 /*****************************************/ 

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/b2182cfa7a18a99a40c5e2830170e3ed.html