Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 7eb90c3b authored by Xia Wang's avatar Xia Wang Committed by Android Git Automerger
Browse files

am 3946101c: am c2eb4094: am de1b1872: Merge "Test connecitvity manager...

am 3946101c: am c2eb4094: am de1b1872: Merge "Test connecitvity manager functionality in state change. * Verify state change when enabling/disabling wifi * Verify network connectivity change while switching among 3G, Wifi, and Airplane mode" into froyo
parents ffd8e0fe 3946101c
Loading
Loading
Loading
Loading
+1 −1
Original line number Original line Diff line number Diff line
@@ -46,5 +46,5 @@
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
    <uses-permission android:name="android.permission.WRITE_SETTINGS" />
    <uses-permission android:name="android.permission.WRITE_SETTINGS" />

    <uses-permission android:name="android.permission.WAKE_LOCK" />
</manifest>
</manifest>
+84 −26
Original line number Original line Diff line number Diff line
@@ -32,6 +32,7 @@ import android.net.NetworkInfo.State;


import android.net.wifi.WifiConfiguration;
import android.net.wifi.WifiConfiguration;
import android.net.wifi.WifiManager;
import android.net.wifi.WifiManager;
import android.net.wifi.WifiInfo;
import android.net.wifi.ScanResult;
import android.net.wifi.ScanResult;
import android.net.wifi.WifiConfiguration.KeyMgmt;
import android.net.wifi.WifiConfiguration.KeyMgmt;


@@ -58,6 +59,11 @@ public class ConnectivityManagerTestActivity extends Activity {
    public String mReason;
    public String mReason;
    public boolean mScanResultIsAvailable = false;
    public boolean mScanResultIsAvailable = false;
    public ConnectivityManager mCM;
    public ConnectivityManager mCM;
    public Object wifiObject = new Object();
    public Object connectivityObject = new Object();
    public int mWifiState;
    public NetworkInfo mWifiNetworkInfo;
    public String mBssid;


    /*
    /*
     * Control Wifi States
     * Control Wifi States
@@ -67,7 +73,7 @@ public class ConnectivityManagerTestActivity extends Activity {
    /*
    /*
     * Verify connectivity state
     * Verify connectivity state
     */
     */
    public static final int NUM_NETWORK_TYPES = ConnectivityManager.MAX_NETWORK_TYPE;
    public static final int NUM_NETWORK_TYPES = ConnectivityManager.MAX_NETWORK_TYPE + 1;
    NetworkState[] connectivityState = new NetworkState[NUM_NETWORK_TYPES];
    NetworkState[] connectivityState = new NetworkState[NUM_NETWORK_TYPES];


    /**
    /**
@@ -77,6 +83,7 @@ public class ConnectivityManagerTestActivity extends Activity {
    private class ConnectivityReceiver extends BroadcastReceiver {
    private class ConnectivityReceiver extends BroadcastReceiver {
        @Override
        @Override
        public void onReceive(Context context, Intent intent) {
        public void onReceive(Context context, Intent intent) {
            Log.v(LOG_TAG, "ConnectivityReceiver: onReceive() is called with " + intent);
            String action = intent.getAction();
            String action = intent.getAction();
            if (!action.equals(ConnectivityManager.CONNECTIVITY_ACTION)) {
            if (!action.equals(ConnectivityManager.CONNECTIVITY_ACTION)) {
                Log.v("ConnectivityReceiver", "onReceive() called with " + intent);
                Log.v("ConnectivityReceiver", "onReceive() called with " + intent);
@@ -100,10 +107,16 @@ public class ConnectivityManagerTestActivity extends Activity {


            mReason = intent.getStringExtra(ConnectivityManager.EXTRA_REASON);
            mReason = intent.getStringExtra(ConnectivityManager.EXTRA_REASON);
            mIsFailOver = intent.getBooleanExtra(ConnectivityManager.EXTRA_IS_FAILOVER, false);
            mIsFailOver = intent.getBooleanExtra(ConnectivityManager.EXTRA_IS_FAILOVER, false);

            Log.v(LOG_TAG, "mNetworkInfo: " + mNetworkInfo.toString());
            if (mOtherNetworkInfo != null) {
                Log.v(LOG_TAG, "mOtherNetworkInfo: " + mOtherNetworkInfo.toString());
            }
            recordNetworkState(mNetworkInfo.getType(), mNetworkInfo.getState());
            recordNetworkState(mNetworkInfo.getType(), mNetworkInfo.getState());
            if (mOtherNetworkInfo != null) {
            if (mOtherNetworkInfo != null) {
                recordNetworkState(mOtherNetworkInfo.getType(), mOtherNetworkInfo.getState());
                recordNetworkState(mOtherNetworkInfo.getType(), mOtherNetworkInfo.getState());
            }
            }
            notifyNetworkConnectivityChange();
        }
        }
    }
    }


@@ -111,11 +124,25 @@ public class ConnectivityManagerTestActivity extends Activity {
        @Override
        @Override
        public void onReceive(Context context, Intent intent) {
        public void onReceive(Context context, Intent intent) {
            String action = intent.getAction();
            String action = intent.getAction();
            if (!action.equals(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION)) {
            Log.v("WifiReceiver", "onReceive() is calleld with " + intent);
                Log.v(LOG_TAG, "onReceive() is calleld with " + intent);
            if (action.equals(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION)) {
                notifyScanResult();
            } else if (action.equals(WifiManager.NETWORK_STATE_CHANGED_ACTION)) {
                mWifiNetworkInfo =
                    (NetworkInfo) intent.getParcelableExtra(WifiManager.EXTRA_NETWORK_INFO);
                Log.v(LOG_TAG, "mWifiNetworkInfo: " + mWifiNetworkInfo.toString());
                if (mWifiNetworkInfo.getState() == State.CONNECTED) {
                    mBssid = intent.getStringExtra(WifiManager.EXTRA_BSSID);
                }
                notifyWifiState();
            } else if (action.equals(WifiManager.WIFI_STATE_CHANGED_ACTION)) {
                mWifiState = intent.getIntExtra(WifiManager.EXTRA_WIFI_STATE,
                                                WifiManager.WIFI_STATE_UNKNOWN);
                notifyWifiState();
            }
            else {
                return;
                return;
            }
            }
            notifyScanResult();
        }
        }
    }
    }


@@ -134,14 +161,19 @@ public class ConnectivityManagerTestActivity extends Activity {
        setContentView(contentView);
        setContentView(contentView);
        setTitle("ConnectivityManagerTestActivity");
        setTitle("ConnectivityManagerTestActivity");


        mConnectivityReceiver = new ConnectivityReceiver();

        // register a connectivity receiver for CONNECTIVITY_ACTION;
        // register a connectivity receiver for CONNECTIVITY_ACTION;
        mConnectivityReceiver = new ConnectivityReceiver();
        registerReceiver(mConnectivityReceiver,
        registerReceiver(mConnectivityReceiver,
                new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION));
                new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION));


        mWifiReceiver = new WifiReceiver();
        mWifiReceiver = new WifiReceiver();
        registerReceiver(mWifiReceiver,
        IntentFilter mIntentFilter = new IntentFilter();
                new IntentFilter(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION));
        mIntentFilter.addAction(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION);
        mIntentFilter.addAction(WifiManager.NETWORK_STATE_CHANGED_ACTION);
        mIntentFilter.addAction(WifiManager.WIFI_STATE_CHANGED_ACTION);
        registerReceiver(mWifiReceiver, mIntentFilter);

        // Get an instance of ConnectivityManager
        // Get an instance of ConnectivityManager
        mCM = (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);
        mCM = (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);
        // Get an instance of WifiManager
        // Get an instance of WifiManager
@@ -166,7 +198,7 @@ public class ConnectivityManagerTestActivity extends Activity {
    // deposit a network state
    // deposit a network state
    public void recordNetworkState(int networkType, State networkState) {
    public void recordNetworkState(int networkType, State networkState) {
        Log.v(LOG_TAG, "record network state for network " +  networkType +
        Log.v(LOG_TAG, "record network state for network " +  networkType +
                " state is " + networkState);
                ", state is " + networkState);
        connectivityState[networkType].recordState(networkState);
        connectivityState[networkType].recordState(networkState);
    }
    }


@@ -190,6 +222,12 @@ public class ConnectivityManagerTestActivity extends Activity {
        return connectivityState[networkType].getReason();
        return connectivityState[networkType].getReason();
    }
    }


    private void notifyNetworkConnectivityChange() {
        synchronized(connectivityObject) {
            Log.v(LOG_TAG, "notify network connectivity changed");
            connectivityObject.notifyAll();
        }
    }
    private void notifyScanResult() {
    private void notifyScanResult() {
        synchronized (this) {
        synchronized (this) {
            Log.v(LOG_TAG, "notify that scan results are available");
            Log.v(LOG_TAG, "notify that scan results are available");
@@ -197,6 +235,13 @@ public class ConnectivityManagerTestActivity extends Activity {
        }
        }
    }
    }


    public void notifyWifiState() {
        synchronized (wifiObject) {
            Log.v(LOG_TAG, "notify wifi state changed");
            wifiObject.notify();
        }
    }

    // Return true if device is currently connected to mobile network
    // Return true if device is currently connected to mobile network
    public boolean isConnectedToMobile() {
    public boolean isConnectedToMobile() {
        return (mNetworkInfo.getType() == ConnectivityManager.TYPE_MOBILE);
        return (mNetworkInfo.getType() == ConnectivityManager.TYPE_MOBILE);
@@ -259,9 +304,9 @@ public class ConnectivityManagerTestActivity extends Activity {
                config.SSID = sr.SSID;
                config.SSID = sr.SSID;
                config.allowedKeyManagement.set(KeyMgmt.NONE);
                config.allowedKeyManagement.set(KeyMgmt.NONE);
                int networkId = mWifiManager.addNetwork(config);
                int networkId = mWifiManager.addNetwork(config);
                mWifiManager.saveConfiguration();
                // Connect to network by disabling others.
                // Connect to network by disabling others.
                mWifiManager.enableNetwork(networkId, true);
                mWifiManager.enableNetwork(networkId, true);
                mWifiManager.saveConfiguration();
                mWifiManager.reconnect();
                mWifiManager.reconnect();
                break;
                break;
           }
           }
@@ -275,21 +320,17 @@ public class ConnectivityManagerTestActivity extends Activity {
        return true;
        return true;
    }
    }


    /**
    /*
     * Disable Wifi
     * Disconnect from the current AP
     * @return true if Wifi is disabled successfully
     */
    public boolean disableWiFi() {
        return mWifiManager.setWifiEnabled(false);
    }

    /**
     * Disconnect from the current Wifi and clear the configuration list
     */
     */
    public boolean clearWifi() {
    public boolean disconnectAP() {
        if (mWifiManager.isWifiEnabled()) {
        if (mWifiManager.isWifiEnabled()) {
            //remove the current network Id
            //remove the current network Id
            int curNetworkId = mWifiManager.getConnectionInfo().getNetworkId();
            WifiInfo curWifi = mWifiManager.getConnectionInfo();
            if (curWifi == null) {
                return false;
            }
            int curNetworkId = curWifi.getNetworkId();
            mWifiManager.removeNetwork(curNetworkId);
            mWifiManager.removeNetwork(curNetworkId);
            mWifiManager.saveConfiguration();
            mWifiManager.saveConfiguration();


@@ -303,16 +344,33 @@ public class ConnectivityManagerTestActivity extends Activity {
                    mWifiManager.removeNetwork(conf.networkId);
                    mWifiManager.removeNetwork(conf.networkId);
                }
                }
            }
            }
        }
        mWifiManager.saveConfiguration();
        mWifiManager.saveConfiguration();
            // disable Wifi
        return true;
    }
    /**
     * Disable Wifi
     * @return true if Wifi is disabled successfully
     */
    public boolean disableWifi() {
        return mWifiManager.setWifiEnabled(false);
    }

    /**
     * Disconnect from the current Wifi and clear the configuration list
     */
    public boolean clearWifi() {
            if (!disconnectAP()) {
                return false;
            }
            // Disable Wifi
            if (!mWifiManager.setWifiEnabled(false)) {
            if (!mWifiManager.setWifiEnabled(false)) {
                return false;
                return false;
            }
            }
            // wait for the actions to be completed
            // Wait for the actions to be completed
            try {
            try {
                Thread.sleep(5*1000);
                Thread.sleep(5*1000);
            } catch (InterruptedException e) {}
            } catch (InterruptedException e) {}
        }
        return true;
        return true;
    }
    }


+2 −2
Original line number Original line Diff line number Diff line
@@ -143,14 +143,14 @@ public class NetworkState {
        }
        }
        State lastState = mStateDepository.get(mStateDepository.size() - 1);
        State lastState = mStateDepository.get(mStateDepository.size() - 1);
        if ( lastState != mTransitionTarget) {
        if ( lastState != mTransitionTarget) {
            mReason += " the last state should be CONNECTED, but it is " + lastState;
            mReason += "The last state should be " + mTransitionTarget + ", but it is " + lastState;
            return false;
            return false;
        }
        }
        for (int i = 1; i < mStateDepository.size(); i++) {
        for (int i = 1; i < mStateDepository.size(); i++) {
            State preState = mStateDepository.get(i-1);
            State preState = mStateDepository.get(i-1);
            State curState = mStateDepository.get(i);
            State curState = mStateDepository.get(i);
            if ((preState == State.DISCONNECTED) && ((curState == State.CONNECTING) ||
            if ((preState == State.DISCONNECTED) && ((curState == State.CONNECTING) ||
                    (curState == State.CONNECTED))) {
                    (curState == State.CONNECTED) || (curState == State.DISCONNECTED))) {
                continue;
                continue;
            } else if ((preState == State.CONNECTING) && (curState == State.CONNECTED)) {
            } else if ((preState == State.CONNECTING) && (curState == State.CONNECTED)) {
                continue;
                continue;
+395 −12

File changed.

Preview size limit exceeded, changes collapsed.