ICS版本上,在飞行模式下关闭WIFI

默认设计是WIFI在飞行模式打开和关闭的情况下不受影响。如果想要在飞行模式下关闭wifi
请您做如下修改:
1. 更改framework/base/package/SettingsProvider/res/values/defaults.xml
<!-- Comma-separated list of bluetooth, wifi, and cell. -->
<string name="def_airplane_mode_radios"
translatable="false">cell,bluetooth,wifi,NFC</string>
<string name="airplane_mode_toggleable_radios"
translatable="false"></string>
改为:
<string name="def_airplane_mode_radios"
translatable="false">cell,bluetooth,nfc</string>
2. 由于加上了运营商的相关code。所以在设置wifi和airplane的关系时加上了对cmcc的判断。
如果不是cmcc的load,如果要default.xml中的判断和code中一致,除了修改default.xml文
件之外还需要修改如下位置。
将对应的CMCC的判断移除.
1. statusbar
alps\frameworks\base\packages\systemui\src\com\android\systemui\statusbar\
toolbar\ConnectionSwitchPanel.JAVA
(1) . public void initConfigurationState() {
if (FeatureOption.MTK_WLAN_SUPPORT) {
//注释掉 if (IS_CMCC) {
mWifiStateTracker.setAirlineMode(isAirlineModeOn);
// }
(2) private BroadcastReceiver mIntentReceiver = new BroadcastReceiver() {
if (IS_CMCC && FeatureOption.MTK_WLAN_SUPPORT) {
修改为: if (FeatureOption.MTK_WLAN_SUPPORT)
mWifiStateTracker.setAirlineMode(enabled);
mWifiIcon.getConfigView().setEnabled(mWifiStateTracker.isClickable());
}
2. widget
SettingsAppWidgetProvider.java
onReceive() 函数
if(!((isAirplaneModeOn(context)) && (Utils.isCmccLoad())))
改为: if(!isAirplaneModeOn(context))
// MTK_OP01_PROTECT_END
{
sWifiState.toggleState(context);
}
3. wifiEnabler
alps\packages\apps\settings\src\com\android\settings\wifi\WifiEnabler.java
(1) private void onAirplaneModeChanged() {
//注释掉 if(Utils.isCmccLoad()){
mSwitch.setEnabled(!AirplaneModeEnabler.isAirplaneModeOn(mContext));
// }
}
(2) private boolean shouldDisableWifi(){
String toggleable =
Settings.System.getString(mContext.getContentResolver(),
Settings.System.AIRPLANE_MODE_TOGGLEABLE_RADIOS);
if(/*toggleable == null ||
!toggleable.contains(Settings.System.RADIO_WIFI) || */Utils.isCmccLoad()){
改为 if(toggleable == null ||
!toggleable.contains(Settings.System.RADIO_WIFI) || Utils.isCmccLoad()){
return AirplaneModeEnabler.isAirplaneModeOn(mContext);
}
return false;
}
加上WifiEnabler.java resume()和setSwitch()函数中的有关cmcc的判断去除

 

 

此资料( ICS版本上,在飞行模式下关闭WIFI)转载于 一牛网
资料需要自己去下载,有需要的可以去论坛上面自己下载

posted @ 2016-04-08 14:50  16rd  阅读(374)  评论(0编辑  收藏  举报