问题背景:
Android手机目前都采用点击版本号开启开发者模式。现在有需求就是修改开发者模式的触发条件。也就是不能为众所周知的开发者模式开启方法。
解决思路:
同样也在设置里找到一个条目进行点击。并且与上时间触发条件。这样触发条件就较为苛刻。不那么容易被发现了。
首先参考原来的开发者模式的触发代码。
packages/apps/Settings/src/com/android/settings/DeviceInfoSettings.java
findPreference(KEY_BUILD_NUMBER).setEnabled(true);//setEnabled(true)的设置条目点击后会进入下面这个函数进行回调。
@Override
public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen, Preference preference) {
if (preference.getKey().equals(KEY_BUILD_NUMBER))//在这个回调里用preference判断当前点击的是哪个条目。
}
那么依葫芦画瓢儿就成了。
我们可以再当前文件下找到
private static final String KEY_DEVICE_PROCESSOR = "device_processor";//这个是处理器信息
//对应的条目设置setEnabled不然不会进到回调里面
findPreference(KEY_DEVICE_PROCESSOR).setEnabled(true); //对这个条目设置回调
@Override
public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen, Preference preference) {
if (preference.getKey().equals(KEY_DEVICE_PROCESSOR)){//添加新的if项判断进来的条目是否为处理器信息
if(new SimpleDateFormat("yyyMMddHHmm").format(new Date()).equals("199707010012")) {//是处理器信息的话判断当前时间是否为特殊值
Intent intent = new Intent();//如果是特殊值,则设置intent,startActivity直接跳转开发者界面就好。
intent.setClassName("com.android.settings","com.android.settings.DevelopmentSettings");
startActivity(intent);
}
}
}