Android默认打开便携式WIFI热点

目前判断Wifi开机后是否需要的自动开启实现是在wifiService.java的checkAndStartWifi() 函数里,类似的,可以参
照wifi在wifiService.java里添加一下如下函数:


public void checkAndStartSoftAp() {
mWifiStateMachine.autoConnectInit();
boolean isAirplaneModeOn = isAirplaneModeOn();
int persistedWifiState = getPersistedWifiState();
SXlog.d(TAG, "isAirplaneModeOn:" + isAirplaneModeOn + ", getPersistedWifiState:" +
persistedWifiState);
mAirplaneModeOn.set(isAirplaneModeOn);
mPersistWifiState.set(persistedWifiState);
if (mWifiStateMachine.hasCustomizedAutoConnect() && mAirplaneModeOn.get()) { //AirplaneMode下不打开SoftAp,也可以看情况不限制
SXlog.i(TAG, "Don't enable softAp when airplane mode is on for customization.");
} else {
Slog.i(TAG, "WifiService starting up with softAp");
setWifiApEnabled(null, true);
}
}

然后,在systemServer.java里搜索wifi.checkAndStartWifi(), 可以找见它在ServerThread的run里,将
wifi.checkAndStartWifi()替换成wifi.checkAndStartSoftAp(),然后,编译测试。
注:由于wifi和便携式热点是不能同时开启的,所以,若安装类似gms包这种默认会开启wifi的apk就会失败,需要自行评估。

发布了234 篇原创文章 · 获赞 64 · 访问量 95万+

猜你喜欢

转载自blog.csdn.net/zhoumushui/article/details/101427627