关于开发者模式开启的暗门

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/LEAD_SOLO/article/details/53301368

问题背景:

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判断当前点击的是哪个条目。

扫描二维码关注公众号,回复: 3796493 查看本文章

}

那么依葫芦画瓢儿就成了。

我们可以再当前文件下找到

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);
                 }
         }

}




猜你喜欢

转载自blog.csdn.net/LEAD_SOLO/article/details/53301368