Android11代码架构发生了重大变化,Wifi到AndoidO之后不再使用jni,所以Android 11也一样不再使用jni来实现Java代码与本地的C/C++代码交互,而是使用HIDL.目前Android 11 蓝牙还是通过jni的方式继续调用,感兴趣的朋友可以看看我写的其他博客.
一、Settings 里面从WifiEnabler开始,调用WiFiManager的setWifiEnabled.
packages/apps/Settings/src/com/android/settings/wifi/WifiEnabler.java
181 @Override
182 public boolean onSwitchToggled(boolean isChecked) {
183 //Do nothing if called as a result of a state machine event
184 if (mStateMachineEvent) {
185 return true;
186 }
187 // Show toast message if Wi-Fi is not allowed in airplane mode
188 if (isChecked && !WirelessUtils.isRadioAllowed(mContext, Settings.Global.RADIO_WIFI)) {
189 Toast.makeText(mContext, R.string.wifi_in_airplane_mode, Toast.LENGTH_SHORT).show();
190 // Reset switch to off. No infinite check/listener loop.
191 mSwitchWidget.setChe