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);
}