2015年4月22日 星期三

Disable the function - tethering or portable Wi-Fi hotspot

環境:4.4

不需要 tethering or portable Wi-Fi hotspot 這功能,所以一樣把它關掉

packages/apps/Settings/src/com/android/settings/WirelessSettings.java
public class WirelessSettings extends RestrictedSettingsFragment
        implements OnPreferenceChangeListener 
{
    ...
    // Disable Tethering if it's not allowed or if it's a wifi-only device
    ConnectivityManager cm =
            (ConnectivityManager) activity.getSystemService(Context.CONNECTIVITY_SERVICE);
    if (isSecondaryUser || !cm.isTetheringSupported()) {
        getPreferenceScreen().removePreference(findPreference(KEY_TETHER_SETTINGS));
    } else {
        Preference p = findPreference(KEY_TETHER_SETTINGS);
        p.setTitle(Utils.getTetheringLabel(cm));
    }
    protectByRestrictions(KEY_TETHER_SETTINGS)
}
isTetheringSupported有關

frameworks/base/services/java/com/android/server/ConnectivityService.java
public class ConnectivityService extends IConnectivityManager.Stub 
{
    ...
    public boolean isTetheringSupported() {
        enforceTetherAccessPermission();
        int defaultVal = (SystemProperties.get("ro.tether.denied").equals("true") ? 0 : 1);
        //boolean tetherEnabledInSettings = (Settings.Global.getInt(mContext.getContentResolver(),
        //        Settings.Global.TETHER_SUPPORTED, defaultVal) != 0);
        boolean tetherEnabledInSettings = false;
        return tetherEnabledInSettings && ((mTethering.getTetherableUsbRegexs().length != 0 || 
                mTethering.getTetherableWifiRegexs().length != 0 || 
                mTethering.getTetherableBluetoothRegexs().length != 0) &&
                mTethering.getUpstreamIfaceTypes().length != 0);
    }
    ...
}
這裡寫著能當hotspot的方法;return Wifi、USB和一個不認識的
tetherEnabledInSettings設定false後,就是不support Tether了
如此,在UI上就會少了tethering or portable Wi-Fi hotspot這功能

沒有留言:

張貼留言