android 开发者选项
来源:互联网 发布:淘宝数据 编辑:程序博客网 时间:2024/06/10 04:41
默认User版本没有“开发者选项”,我们可以通过点击版本号7次来显示开发者模式,今天来看下代码中是如何处理的:
首先是
ackages/apps/Settings/src/com/android/settings/Settings.java的初始化处理:
布尔值showDev是否默认显示“开发者选项”:
final boolean showDev = mDevelopmentPreferences.getBoolean( DevelopmentSettings.PREF_SHOW, android.os.Build.TYPE.equals("eng"));
如果想让开发者选项默认显示,不需要点击7次版本号,可直接将showDev置为true即可:
final boolean showDev = true;
如果showDev为false,则在如下代码中隐藏“开发者选项”:
Resume函数:
if (id == R.id.development_settings) { if (!showDev) { target.remove(i); } }
代码路径:packages/apps/Settings/src/com/android/settings/DeviceInfoSettings.java
首先是定义点击次数:
static final int TAPS_TO_BE_A_DEVELOPER = 7;
点击版本号的处理逻辑,若mDevHitCountdown小于0,则表示”开发者选项“已经显示,参考Resume函数的处理:
if (preference.getKey().equals(KEY_BUILD_NUMBER)) { // Don't enable developer options for secondary users. if (UserHandle.myUserId() != UserHandle.USER_OWNER) return true; if (mDevHitCountdown > 0) { if (mDevHitCountdown == 1) { if (super.ensurePinRestrictedPreference(preference)) { return true; } } mDevHitCountdown--; if (mDevHitCountdown == 0) { getActivity().getSharedPreferences(DevelopmentSettings.PREF_FILE, Context.MODE_PRIVATE).edit().putBoolean( DevelopmentSettings.PREF_SHOW, true).apply(); if (mDevHitToast != null) { mDevHitToast.cancel(); } mDevHitToast = Toast.makeText(getActivity(), R.string.show_dev_on, Toast.LENGTH_LONG); mDevHitToast.show(); } else if (mDevHitCountdown > 0 && mDevHitCountdown < (TAPS_TO_BE_A_DEVELOPER-2)) { if (mDevHitToast != null) { mDevHitToast.cancel(); } mDevHitToast = Toast.makeText(getActivity(), getResources().getQuantityString( R.plurals.show_dev_countdown, mDevHitCountdown, mDevHitCountdown), Toast.LENGTH_SHORT); mDevHitToast.show(); } } else if (mDevHitCountdown < 0) { if (mDevHitToast != null) { mDevHitToast.cancel(); } mDevHitToast = Toast.makeText(getActivity(), R.string.show_dev_already, Toast.LENGTH_LONG); mDevHitToast.show(); } }
Resume函数:
@Override public void onResume() { super.onResume(); PreferenceGroup parentPreference = getPreferenceScreen(); mDevHitCountdown = getActivity().getSharedPreferences(DevelopmentSettings.PREF_FILE, Context.MODE_PRIVATE).getBoolean(DevelopmentSettings.PREF_SHOW, android.os.Build.TYPE.equals("eng")) ? -1 : TAPS_TO_BE_A_DEVELOPER; mDevHitToast = null; }
0 0
- android 开发者选项
- android打开开发者选项
- Android 开发者选项详述
- 在Android 4.2中打开"开发者选项"
- 隐藏Android设备的开发者选项
- 15个必知的Android开发者选项
- 15个必知的Android开发者选项
- android 开发人员须了解的开发者选项
- 15个必知的Android开发者选项
- 15 个必知的 Android 开发者选项
- 15 个必知的 Android 开发者选项
- 15 个必知的 Android 开发者选项
- Android产品研发(十六)-->开发者选项
- 15个必知的Android开发者选项
- Android开发者选项之GPU过度绘制
- Android产品研发(十六)-->开发者选项
- Android开发者选项-GPU显示配置文件无效
- Android产品研发(十六)-->开发者选项
- 九度OJ 题目1006:ZOJ问题
- 线程的调度
- 基于java的描绘函数波形代码
- 如何比较三个字符串大小。
- HBase hbck——检察HBase集群的一致性
- android 开发者选项
- poj1228 Grandpa's Estate 凸包
- Atom飞行手册翻译: 4.3 作用域设置、作用域和作用域描述符
- hdu 1698 Just a Hook(线段树区间更新·经典)
- uva 11624 Fire!(多源BFS)
- 社交游戏之通用任务服务器设计与实践
- HDU2.1.3 相遇周期
- 杭电2074叠筐
- matlab 画network,papa的儿子