Android Wi-Fi 設定頻寬程式碼流程
阿新 • • 發佈:2019-01-22
1 LINUX/android/frameworks/base/wifi/java/android/net/wifi/WifiManager.java
public void setFrequencyBand(int band, boolean persist) {
try {
mService.setFrequencyBand(band, persist);
} catch (RemoteException e) { }
}
2
LINUX/android/frameworks/opt/net/wifi/service/java/com/android/server/wifi/WifiServiceImpl.java
public void setFrequencyBand(int band, boolean persist) {
enforceChangePermission();
if (!isDualBandSupported()) return;
Slog.i(TAG, "WifiService trying to set frequency band to " + band +
" with persist set to " + persist);
final long token = Binder.clearCallingIdentity();
try {
mWifiStateMachine.setFrequencyBand(band, persist);
} finally {
Binder.restoreCallingIdentity(token);
}
}
3
LINUX/android/frameworks/opt/net/wifi/service/java/com/android/server/wifi/WifiStateMachine.java
public void setFrequencyBand(int band, boolean persist) {
if (persist) {
Settings.Global.putInt(mContext.getContentResolver(),
Settings.Global.WIFI_FREQUENCY_BAND,
band);
}
sendMessage(CMD_SET_FREQUENCY_BAND, band, 0);
}
4 LINUX/android/frameworks/opt/net/wifi/service/java/com/android/server/wifi/WifiNative.java
public boolean setBand(int band) {
String bandstr;
if (band == WifiManager.WIFI_FREQUENCY_BAND_5GHZ)
bandstr = "5G";
else if (band == WifiManager.WIFI_FREQUENCY_BAND_2GHZ)
bandstr = "2G";
else
bandstr = "AUTO";
return doBooleanCommand("SET SETBAND " + bandstr);
}