客户定制需求:在系统中屏蔽wifi与蓝牙,分析后决定在系统设置和状态栏中都去掉wifi与蓝牙,这样就达到了屏蔽wifi与蓝牙的效果。
1.系统设置:去掉wifi与蓝牙相关配置
diff --git a/android/packages/apps/Settings/AndroidManifest.xml b/android/packages/apps/Settings/AndroidManifest.xml
index de8f43b..5d5d879 100644
--- a/android/packages/apps/Settings/AndroidManifest.xml
+++ b/android/packages/apps/Settings/AndroidManifest.xml
@@ -141,8 +141,8 @@
</intent-filter>
<meta-data android:name="com.android.settings.FRAGMENT_CLASS"
android:value="com.android.settings.wifi.WifiSettings" />
- <meta-data android:name="com.android.settings.TOP_LEVEL_HEADER_ID"
- android:resource="@id/wifi_settings" />
+ <!--meta-data android:name="com.android.settings.TOP_LEVEL_HEADER_ID"
+ android:resource="@id/wifi_settings" /-->
</activity>
<!-- Keep compatibility with old shortcuts. -->
@@ -155,8 +155,8 @@
android:exported="true">
<meta-data android:name="com.android.settings.FRAGMENT_CLASS"
android:value="com.android.settings.wifi.WifiSettings" />
- <meta-data android:name="com.android.settings.TOP_LEVEL_HEADER_ID"
- android:resource="@id/wifi_settings" />
+ <!--meta-data android:name="com.android.settings.TOP_LEVEL_HEADER_ID"
+ android:resource="@id/wifi_settings" /-->
</activity-alias>
<activity android:name=".wifi.WifiPickerActivity"
@@ -204,8 +204,8 @@
</intent-filter>
<meta-data android:name="com.android.settings.FRAGMENT_CLASS"
android:value="com.android.settings.wifi.AdvancedWifiSettings" />
- <meta-data android:name="com.android.settings.TOP_LEVEL_HEADER_ID"
- android:resource="@id/wifi_settings" />
+ <!--meta-data android:name="com.android.settings.TOP_LEVEL_HEADER_ID"
+ android:resource="@id/wifi_settings" /-->
<meta-data android:name="com.android.settings.PARENT_FRAGMENT_TITLE"
android:resource="@string/wifi_settings" />
<meta-data android:name="com.android.settings.PARENT_FRAGMENT_CLASS"
@@ -289,8 +289,8 @@
</intent-filter>
<meta-data android:name="com.android.settings.FRAGMENT_CLASS"
android:value="com.android.settings.bluetooth.BluetoothSettings" />
- <meta-data android:name="com.android.settings.TOP_LEVEL_HEADER_ID"
- android:resource="@id/bluetooth_settings" />
+ <!--meta-data android:name="com.android.settings.TOP_LEVEL_HEADER_ID"
+ android:resource="@id/bluetooth_settings" /-->
</activity>
<!-- Keep compatibility with old shortcuts. -->
@@ -302,8 +302,8 @@
android:clearTaskOnLaunch="true">
<meta-data android:name="com.android.settings.FRAGMENT_CLASS"
android:value="com.android.settings.bluetooth.BluetoothSettings" />
- <meta-data android:name="com.android.settings.TOP_LEVEL_HEADER_ID"
- android:resource="@id/bluetooth_settings" />
+ <!--meta-data android:name="com.android.settings.TOP_LEVEL_HEADER_ID"
+ android:resource="@id/bluetooth_settings" /-->
</activity-alias>
<activity android:name=".bluetooth.DevicePickerActivity"
diff --git a/android/packages/apps/Settings/res/xml/settings_headers.xml b/android/packages/apps/Settings/res/xml/settings_headers.xml
index a7628da..6b9871d 100644
--- a/android/packages/apps/Settings/res/xml/settings_headers.xml
+++ b/android/packages/apps/Settings/res/xml/settings_headers.xml
@@ -23,18 +23,18 @@
android:title="@string/header_category_wireless_networks" />
<!-- Wifi -->
- <header
+ <!--header
android:id="@+id/wifi_settings"
android:fragment="com.android.settings.wifi.WifiSettings"
android:title="@string/wifi_settings_title"
- android:icon="@drawable/ic_settings_wireless" />
+ android:icon="@drawable/ic_settings_wireless" /-->
<!-- Bluetooth -->
- <header
+ <!--header
android:id="@+id/bluetooth_settings"
android:fragment="com.android.settings.bluetooth.BluetoothSettings"
android:title="@string/bluetooth_settings_title"
- android:icon="@drawable/ic_settings_bluetooth2" />
+ android:icon="@drawable/ic_settings_bluetooth2" /-->
<!-- Data Usage -->
<header
diff --git a/android/packages/apps/Settings/src/com/android/settings/Settings.java b/android/packages/apps/Settings/src/com/android/settings/Settings.java
index 7f2919c..289a685 100644
--- a/android/packages/apps/Settings/src/com/android/settings/Settings.java
+++ b/android/packages/apps/Settings/src/com/android/settings/Settings.java
@@ -140,8 +140,8 @@ public class Settings extends PreferenceActivity
// Show only these settings for restricted users
private int[] SETTINGS_FOR_RESTRICTED = {
R.id.wireless_section,
- R.id.wifi_settings,
- R.id.bluetooth_settings,
+ //R.id.wifi_settings,
+ //R.id.bluetooth_settings,
R.id.data_usage_settings,
R.id.wireless_settings,
R.id.device_section,
@@ -565,7 +565,7 @@ public class Settings extends PreferenceActivity
int id = (int) header.id;
if (id == R.id.operator_settings || id == R.id.manufacturer_settings) {
Utils.updateHeaderToSpecificActivityFromMetaDataOrRemove(this, target, header);
- } else if (id == R.id.wifi_settings) {
+ /*} else if (id == R.id.wifi_settings) {
// Remove WiFi Settings if WiFi service is not available.
if (!getPackageManager().hasSystemFeature(PackageManager.FEATURE_WIFI)) {
target.remove(i);
@@ -574,7 +574,7 @@ public class Settings extends PreferenceActivity
// Remove Bluetooth Settings if Bluetooth service is not available.
if (!getPackageManager().hasSystemFeature(PackageManager.FEATURE_BLUETOOTH) || isCurrentDeviceConnected()) {
target.remove(i);
- }
+ }*/
} else if (id == R.id.data_usage_settings) {
// Remove data usage when kernel module not enabled
final INetworkManagementService netManager = INetworkManagementService.Stub
@@ -819,8 +819,8 @@ public class Settings extends PreferenceActivity
static int getHeaderType(Header header) {
if (header.fragment == null && header.intent == null) {
return HEADER_TYPE_CATEGORY;
- } else if (header.id == R.id.wifi_settings || header.id == R.id.bluetooth_settings) {
- return HEADER_TYPE_SWITCH;
+ /*} else if (header.id == R.id.wifi_settings || header.id == R.id.bluetooth_settings) {
+ return HEADER_TYPE_SWITCH;*/
} else if (header.id == R.id.security_settings) {
return HEADER_TYPE_BUTTON;
} else {
@@ -932,11 +932,11 @@ public class Settings extends PreferenceActivity
case HEADER_TYPE_SWITCH:
// Would need a different treatment if the main menu had more switches
- if (header.id == R.id.wifi_settings) {
+ /*if (header.id == R.id.wifi_settings) {
mWifiEnabler.setSwitch(holder.switch_);
} else {
mBluetoothEnabler.setSwitch(holder.switch_);
- }
+ }*/
updateCommonHeaderView(header, holder);
break;
2.状态栏下拉快捷设置:屏蔽掉wifi和蓝牙的选项
diff --git a/android/frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickSettings.java b/android/frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickSettings.java
index 648f55a..6809d41 100755
--- a/android/frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickSettings.java
+++ b/android/frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickSettings.java
@@ -445,7 +445,7 @@ class QuickSettings {
(wifiState.connected) ? wifiState.label : ""));
}
});
- parent.addView(wifiTile);
+ //parent.addView(wifiTile);
if (mModel.deviceHasMobileData()) {
// RSSI
@@ -647,7 +647,7 @@ class QuickSettings {
bluetoothTile.setText(state.label);
}
});
- parent.addView(bluetoothTile);
+ //parent.addView(bluetoothTile);
}
// Location
整编烧录固件,实测系统已经屏蔽了wifi与蓝牙,不影响功能。