一、在设置的清单文件AndroidManifest.xml 添加入口
<!--添加用户item 20210207 -->
<!--android:priority="9"加这个属性与位置顺序有关 值越大在分组中越靠前-->
<activity android:name="Settings$LoginUserSettingsActivity"
android:label="@string/login_user"
android:icon="@drawable/ic_settings_accessibility"
android:configChanges="orientation|keyboardHidden|screenSize"
android:taskAffinity="">
<intent-filter android:priority="12">
<action android:name="com.android.settings.action.SETTINGS"/>
</intent-filter>
<!--添加此meta-data 才会在一级菜单中显示,与电池,声音等设置项同级->
<meta-data android:name="com.android.settings.category"
android:value="com.android.settings.category.ia.homepage"/>
<!--FRAGMENT_CLASS表示 实现类是一个fragment,value指向具体的fragment-->
<meta-data android:name="com.android.settings.FRAGMENT_CLASS"
android:value="com.android.settings.loginuser.LoginUserFragment" />
<meta-data android:name="com.android.settings.PRIMARY_PROFILE_CONTROLLED"
android:value="true" />
</activity>
二、在Settings.java 添加内部类
public static class LoginUserSettingsActivity extends SettingsActivity { /* empty */ }// 20210207 添加用户item
三、在SettingsActivity.java 中的doUpdateTilesList()方法中
setTileEnabled(new ComponentName(packageName,
Settings.LoginUserSettingsActivity.class.getName()),
OptimaUtil.isWorkMode(this), isAdmin);//OptimaUtil.isWorkMode(this) 为ture显示,false不显示
四、在SettingsGateway.java的
private static final String[] ENTRY_FRAGMENTS = {
...
LoginUserFragment.class.getName(),// 20210207 添加用户item
}
private static final String[] SETTINGS_FOR_RESTRICTED = {
...
Settings.LoginUserSettingsActivity.class.getName(),// 20210207 添加用户item
}
五、屏蔽一级菜单item的点击事件,在一级菜单的DashboardAdapter.java中作处理