需要修改的文件:
frameworks\base\services\java\com\android\server/SystemServer.java
framework/base/services/core/java/com/android/server/display/WifiDisplayController.java
1.SystemServer.java中去掉WIFI相关服务(以下内容全部注释掉)
if (context.getPackageManager().hasSystemFeature(
PackageManager.FEATURE_WIFI)) {
Wifi Service must be started first for wifi-related services.
traceBeginAndSlog("StartWifi");
mSystemServiceManager.startService(WIFI_SERVICE_CLASS);
traceEnd();
traceBeginAndSlog("StartWifiScanning");
mSystemServiceManager.startService(
"com.android.server.wifi.scanner.WifiScanningService");
traceEnd();
}
if (context.getPackageManager().hasSystemFeature(
PackageManager.FEATURE_WIFI_RTT)) {
traceBeginAndSlog("StartRttService");
mSystemServiceManager.startService(
"com.android.server.wifi.rtt.RttService");
traceEnd();
}
if (context.getPackageManager().hasSystemFeature(
PackageManager.FEATURE_WIFI_AWARE)) {
traceBeginAndSlog("StartWifiAware");
mSystemServiceManager.startService(WIFI_AWARE_SERVICE_CLASS);
traceEnd();
}
if (context.getPackageManager().hasSystemFeature(
PackageManager.FEATURE_WIFI_DIRECT)) {
traceBeginAndSlog("StartWifiP2P");
mSystemServiceManager.startService(WIFI_P2P_SERVICE_CLASS);
traceEnd();
}
2.WifiDisplayController.java
由于第一步裁掉wifi启动后,会造成系统无法正常启动起来,还需要做以下修改 才能正常使用
在构造方法中去掉其注释部分就可以了
public WifiDisplayController(Context context, Handler handler, Listener listener) {
mContext = context;
mHandler = handler;
mListener = listener;
// mWifiP2pManager = (WifiP2pManager)context.getSystemService(Context.WIFI_P2P_SERVICE);
// mWifiP2pChannel = mWifiP2pManager.initialize(context, handler.getLooper(), null);
// IntentFilter intentFilter = new IntentFilter();
// intentFilter.addAction(WifiP2pManager.WIFI_P2P_STATE_CHANGED_ACTION);
// intentFilter.addAction(WifiP2pManager.WIFI_P2P_PEERS_CHANGED_ACTION);
// intentFilter.addAction(WifiP2pManager.WIFI_P2P_CONNECTION_CHANGED_ACTION);
// intentFilter.addAction(WifiP2pManager.WIFI_P2P_THIS_DEVICE_CHANGED_ACTION);
// context.registerReceiver(mWifiP2pReceiver, intentFilter, null, mHandler);
// ContentObserver settingsObserver = new ContentObserver(mHandler) {
// @Override
// public void onChange(boolean selfChange, Uri uri) {
// updateSettings();
// }
// };
// final ContentResolver resolver = mContext.getContentResolver();
// resolver.registerContentObserver(Settings.Global.getUriFor(
// Settings.Global.WIFI_DISPLAY_ON), false, settingsObserver);
// resolver.registerContentObserver(Settings.Global.getUriFor(
// Settings.Global.WIFI_DISPLAY_CERTIFICATION_ON), false, settingsObserver);
// resolver.registerContentObserver(Settings.Global.getUriFor(
// Settings.Global.WIFI_DISPLAY_WPS_CONFIG), false, settingsObserver);
// updateSettings();
}
到这里wifi的相关服务基本被干掉
觉得我写的好的兄弟 帮梦点个赞!!!谢谢