[RK3288][Android6.0] 调试笔记 --- user版本默认显示开发者选项【转】
2018-06-05 17:46
661 查看
本文转载自:https://blog.csdn.net/kris_fei/article/details/70157137
Platform: ROCKCHIP
OS: Android 6.0
Kernel: 3.10.92
默认user版本不显示开发者选项这一栏,需要通过连续点击版本号7次来显示.
packages\apps\Settings\src\com\android\settings\DeviceInfoSettings.java
[cpp] view plain copy
static final int TAPS_TO_BE_A_DEVELOPER = 7;
public void onResume() {
super.onResume();
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;
}
public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen, Preference preference) {
......
if (mDevHitCountdown > 0) {
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();
// This is good time to index the Developer Options
Index.getInstance(
getActivity().getApplicationContext()).updateFromClassNameResource(
DevelopmentSettings.class.getName(), true, true);
} 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) { //点击完7次之后显示
if (mDevHitToast != null) {
mDevHitToast.cancel();
}
mDevHitToast = Toast.makeText(getActivity(), R.string.show_dev_already,
Toast.LENGTH_LONG);
mDevHitToast.show();
}
}
......
}
而默认开机是否显示由变量showDev控制
packages\apps\Settings\src\com\android\settings\SettingsActivity.java
[cpp] view plain copy
private void updateTilesList(List<DashboardCategory> target) {
final boolean showDev = mDevelopmentPreferences.getBoolean(
DevelopmentSettings.PREF_SHOW,
android.os.Build.TYPE.equals("eng")); //因此eng才返回true
......
} else if (id == R.id.development_settings) {
if (!showDev || um.hasUserRestriction(
UserManager.DISALLOW_DEBUGGING_FEATURES)) {
removeTile = true; //showDev为false则不显示
}
}
}
解决方法:
diff --git a/src/com/android/settings/SettingsActivity.java b/src/com/android/settings/SettingsActivity.java
index 645add3..11a9c55 100755
--- a/src/com/android/settings/SettingsActivity.java
+++ b/src/com/android/settings/SettingsActivity.java
@@ -1236,9 +1236,11 @@ public class SettingsActivity extends Activity
}
private void updateTilesList(List<DashboardCategory> target) {
- final boolean showDev = mDevelopmentPreferences.getBoolean(
- DevelopmentSettings.PREF_SHOW,
- android.os.Build.TYPE.equals("eng"));
+ /*Kris, 170413, show development options anytime.*/
+ // final boolean showDev = mDevelopmentPreferences.getBoolean(
+ // DevelopmentSettings.PREF_SHOW,
+ //android.os.Build.TYPE.equals("eng"));
+ final boolean showDev = true;
Platform: ROCKCHIP
OS: Android 6.0
Kernel: 3.10.92
默认user版本不显示开发者选项这一栏,需要通过连续点击版本号7次来显示.
packages\apps\Settings\src\com\android\settings\DeviceInfoSettings.java
[cpp] view plain copy
static final int TAPS_TO_BE_A_DEVELOPER = 7;
public void onResume() {
super.onResume();
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;
}
public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen, Preference preference) {
......
if (mDevHitCountdown > 0) {
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();
// This is good time to index the Developer Options
Index.getInstance(
getActivity().getApplicationContext()).updateFromClassNameResource(
DevelopmentSettings.class.getName(), true, true);
} 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) { //点击完7次之后显示
if (mDevHitToast != null) {
mDevHitToast.cancel();
}
mDevHitToast = Toast.makeText(getActivity(), R.string.show_dev_already,
Toast.LENGTH_LONG);
mDevHitToast.show();
}
}
......
}
而默认开机是否显示由变量showDev控制
packages\apps\Settings\src\com\android\settings\SettingsActivity.java
[cpp] view plain copy
private void updateTilesList(List<DashboardCategory> target) {
final boolean showDev = mDevelopmentPreferences.getBoolean(
DevelopmentSettings.PREF_SHOW,
android.os.Build.TYPE.equals("eng")); //因此eng才返回true
......
} else if (id == R.id.development_settings) {
if (!showDev || um.hasUserRestriction(
UserManager.DISALLOW_DEBUGGING_FEATURES)) {
removeTile = true; //showDev为false则不显示
}
}
}
解决方法:
diff --git a/src/com/android/settings/SettingsActivity.java b/src/com/android/settings/SettingsActivity.java
index 645add3..11a9c55 100755
--- a/src/com/android/settings/SettingsActivity.java
+++ b/src/com/android/settings/SettingsActivity.java
@@ -1236,9 +1236,11 @@ public class SettingsActivity extends Activity
}
private void updateTilesList(List<DashboardCategory> target) {
- final boolean showDev = mDevelopmentPreferences.getBoolean(
- DevelopmentSettings.PREF_SHOW,
- android.os.Build.TYPE.equals("eng"));
+ /*Kris, 170413, show development options anytime.*/
+ // final boolean showDev = mDevelopmentPreferences.getBoolean(
+ // DevelopmentSettings.PREF_SHOW,
+ //android.os.Build.TYPE.equals("eng"));
+ final boolean showDev = true;
相关文章推荐
- [RK3288][Android6.0] 调试笔记 --- user版本默认显示开发者选项
- [RK3288][Android6.0] 调试笔记 --- user版本固件升级无法开机问题
- [RK3288][Android6.0] 调试笔记 --- 设置系统默认显示为竖屏
- [RK3288][Android6.0] 调试笔记 --- user版本串口只有输出不能输入
- [RK3288][Android6.0] 调试笔记 --- 屏蔽系统下拉菜单显示
- [RK3288][Android6.0] 调试笔记 --- 开机语言默认为简体中文
- [RK3288][Android6.0] 调试笔记 --- Recovery模式下显示旋转180度
- [RK3288][Android6.0] 调试笔记 --- 设置中文为默认输入法
- [RK3288][Android6.0] 调试笔记 --- 替换默认Launcher
- [RK3288][Android6.0] 调试笔记 --- 系统识别不同硬件版本方法
- [RK3288][Android6.0] 调试笔记 --- 强制第三方apk横屏显示
- [RK3288][Android6.0] 调试笔记 --- 屏幕画面显示不完整问题
- [RK3288][Android6.0] 调试笔记 --- 开机默认选择24小时制时间格式
- [RK3288][Android6.0] 调试笔记 --- 系统识别不同硬件版本方法【转】
- [RK3288][Android6.0] 调试笔记 --- 修改浏览器默认地址
- [RK3288][Android6.0] 调试笔记 --- 默认允许安装未知来源apk
- [RK3288][Android6.0] 调试笔记 --- 双屏显示内核Patch
- [RK3288][Android6.0] 调试笔记 --- 电池电量一直显示100%
- [RK3288][Android6.0] 调试笔记 --- 开机设置默认出厂时间方法
- [RK3288][Android6.0] 调试笔记 --- 屏幕显示旋转方法