1. 程式人生 > >Android Wi-Fi 設定頻寬程式碼流程

Android Wi-Fi 設定頻寬程式碼流程

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