一,前言
首先,要在Android系统中添加无线ADB调试功能,只需要在system.prop中配置service.adb.tcp.port = 5555 即可。那么,我们如何在设置中,添加一个开关,去动态的控制无线ADB调试功能的打开或者关闭呢?
二,具体实现
关于这个开关的显示逻辑这里就不做详细的赘述,主要是利用系统的SwitchPreference就可以了,我们主要看功能的实现。
在system/core/rootdir/init.rc中:
+
+on property:sys.connect.adb.wiress=1
+ setprop service.adb.tcp.port 5555
+ stop adbd
+ start adbd
+
+on property:sys.connect.adb.wiress=0
+ setprop service.adb.tcp.port ""
+ stop adbd
+ start adbd
然后在SwitchPreference的点击事件里面,去动态的控制sys.connect.adb.wiress这个系统属性就可以了。代码如下:
+ private void handleWirelessADBPreferenceScreenClick() {
+ boolean wirelessADBEnabled = mToggleWirelessADBPreference.isChecked();
+ if(wirelessADBEnabled){
+ SystemProperties.set("sys.connect.adb.wiress","1");
+ }else{
+ SystemProperties.set("sys.connect.adb.wiress","0");
+ }
+ }
三,总结
将sys.connect.adb.wiress属性值设为1时,系统会通过init.rc,将service.adb.tcp.port 设为5555,同理,将sys.connect.adb.wiress设为0时,系统会将service.adb.tcp.port 置空。这样就达到了动态控制无线ADB调试的目的。
网友评论