frameworks\base\services\java\com\android\server\wifi\WifiService.java
public void checkAndStartWifi() { /* Check if wi-fi needs to be enabled */ /* 默认开启无线WiFi的代码 boolean wifiEnabled = mSettingsStore.isWifiToggleEnabled(); Slog.i(TAG, "WifiService starting up with Wi-Fi " + (wifiEnabled ? "enabled" : "disabled")); // softap save v1.0 if (wifiEnabled) { if (!shouldStartWifiAP()) setWifiEnabled(wifiEnabled); else { mSettingsStore.setttingsStoreSetWifiSaveState(1); setWifiApEnabled(null, true); } } else if (shouldStartWifiAP()) { setWifiApEnabled(null, true); } // end mWifiWatchdogStateMachine = WifiWatchdogStateMachine. makeWifiWatchdogStateMachine(mContext); */ /** 修改点,修改成开启流量热点**/ // 获取之前设置的热点配置信息,这是异步的 效果不是很理想(导致打开不了) WifiConfiguration apConfig =null /*= getWifiApConfiguration()*/; if(apConfig == null){ // 没有配置过设置一个默认的配置信息 //热点的配置类 apConfig = new WifiConfiguration(); //配置热点的名称(可以在名字后面加点随机数什么的) apConfig.SSID = "OG123"; // 设置加密类型,下面的密码才有效 apConfig.allowedKeyManagement.set(KeyMgmt.WPA2_PSK); //配置热点的密码 apConfig.preSharedKey="00000000"; } setWifiEnabled(false); //setWifiApEnabled(null, true); // 不配置就写null,采用之前设置过的配置 setWifiApEnabled(apConfig, true); mWifiWatchdogStateMachine = WifiWatchdogStateMachine. makeWifiWatchdogStateMachine(mContext); }
###
在frameworks\base\services\java\com\android\server\SystemServer.java里搜索wifi.checkAndStartWifi(),
可以找见它在ServerThread的run里调用
###
frameworks\base\wifi\java\android\net\wifi\WifiApConfigStore.java
// 配置默认热点信息
private void setDefaultApConfiguration() { WifiConfiguration config = new WifiConfiguration(); config.SSID = mContext.getString(R.string.wifi_tether_configure_ssid_default); config.SSID = SystemProperties.get("persist.sys.wifi.name", "OG123");// 名称 config.allowedKeyManagement.set(KeyMgmt.WPA2_PSK);// 加密类型 String randomUUID = UUID.randomUUID().toString(); //first 12 chars from xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx config.preSharedKey = randomUUID.substring(0, 8) + randomUUID.substring(9,13); config.preSharedKey = SystemProperties.get("persist.sys.wifi.passwd", "00000000");// 密码 sendMessage(WifiStateMachine.CMD_SET_AP_CONFIG, config); }