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就會失敗,需要自行評估。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章