Android开发萌新一枚,希望通过写博客的方式,记录自己Android开发的学习和成长过程,也当做是对工作的一个小总结,希望对未来的工作有所帮助吧。
这次的工作任务是将原生Settings的WifiVerboseLogging功能移植到本地的一个log工具中,只需要调用WifiManager的一个方法就可以了,还是很简单的,下面主要是移植过程的记录。
Android原生的Settings目录为:packages\apps\Settings\src\com\android\settings
WifiVerboseLogging功能在开发者选项中,所以找到开发者选项相关的Activity:DevelopmentSettings.java
当该功能开关打开时,调用了一个方法:
else if (preference == mWifiVerboseLogging) {
writeWifiVerboseLoggingOptions();
}
找到该方法,发现是调用了WifiManager的方法:
private void writeWifiVerboseLoggingOptions() {
mWifiManager.enableVerboseLogging(mWifiVerboseLogging.isChecked() ? 1 : 0);
}
所以,只需要在自己的apk里调用这个方法,就可以实现该log功能啦:-)
最后是在自己apk中实现的部分代码:
else if ((preference.getKey()).equals("WifiLogBox")) {
mWifiLoggingPreference.setChecked(!mWifiLoggingPreference.isChecked());
mWifiLogEnable = mWifiLoggingPreference.isChecked();
SystemProperties.set("persist.service.wifilogs.enable", mWifiLogEnable ? "1" : "0");
if (mWifiLogEnable) {
Log.d(TAG, "persist.service.wifilogs.enable = " + SystemProperties.get("persist.service.wifilogs.enable", "0"));
Toast.makeText(this, " System have WifiVerboseLog now!", Toast.LENGTH_LONG).show();
writeWifiVerboseLoggingOptions();
}else {
Log.d(TAG, "persist.service.wifilogs.enable= " + SystemProperties.get("persist.service.wifilogs.enable", "0"));
Toast.makeText(this, "System have no WifiVerboseLog now!", Toast.LENGTH_LONG).show();
writeWifiVerboseLoggingOptions();
}
}
这篇博客记录了Android新手在移植原生Settings的WifiVerboseLogging功能到自定义log工具的过程。主要涉及查找相关Activity,理解并调用WifiManager的方法,通过简单的代码实现功能移植。
2565

被折叠的 条评论
为什么被折叠?



