如题,打个比方,现在网络没有连接,打开QQ,输入帐号和密码,点登录,然后网络自动连接,在点QQ的退出后,网络自动断开

解决方案 »

  1.   

    应该可以,你调用配置网络的API不就行了~
      

  2.   

    HttpUrlConnection可以使用disconnect方法断开连接 而HttpClient使用HttpClient.getConnectionManager().shutdown();断开连接试下可以么
      

  3.   

    从技术来说是可行的,但是从应用来说是不太可能的,要是可以这样的话,你里边自动打开连接,人家的流量不到一天就被你搞完了,而且人家还不知道怎么用掉的,所以说从系统的角度来说我觉得Android不可能这样
      

  4.   

    呵呵,谢谢ANDY哥。你说的这种方式并不是达到在网络界面里设置网络的效果啊。效果是如在“无线和网络”里设置“WLAN”或“移动网络”,打了勾,我有代码就可以让其设置成不打勾
      

  5.   

    NewWork Setting 里面 Date enabled 勾上的时候,可以实现LZ想要的效果,通过代码控制网络的连接与断开,但是Date enabled 没有勾上,是不能实现的。like this:    public void onSwitched(boolean enable) {        boolean mobileDataAllowed = Settings.Secure.getInt(
                            mActivity.getContentResolver(), "mobile_data", 1) == 1;
            if (enable && !mobileDataAllowed) {
                // cannot switch - system Mobile Data should be enabled first
                Toast.makeText(mActivity, R.string.txt_enable_data_access_first,
                                Toast.LENGTH_LONG).show();
                onSelected(0); // open system settings
                return;
            }        boolean wifiConnected = mTelephonyManager.getWiFiInfo().getState() == State.CONNECTED;
            if (enable && wifiConnected) {
                // cannot switch - WiFi should be disabled first
                WifiManager wifiManager = (WifiManager) mActivity
                                .getSystemService(Context.WIFI_SERVICE);
                wifiManager.setWifiEnabled(false);
            }        if (enable) {
                // is APN is disabled we need to enable it first
                Context context = mActivity;
                SharedPreferences prefs = mActivity.getApp().getPreferences();
                int state = ApnControl.getApnState(context, prefs);
                if (state == STATE_OFF) {
                    ApnControl.setApnState(context, prefs, true);
                }
            }        int perm = mActivity
                            .checkCallingOrSelfPermission("android.permission.MODIFY_PHONE_STATE");
            System.out.println("android.permission.MODIFY_PHONE_STATE: "
                            + (PackageManager.PERMISSION_DENIED == perm ? "denied"
                                            : "granted"));        perm = mActivity.checkCallingOrSelfPermission("android.permission.FLASHLIGHT");
            System.out.println("android.permission.FLASHLIGHT: "
                            + (PackageManager.PERMISSION_DENIED == perm ? "denied"
                                            : "granted"));        // now try to enable connection
            mTelephonyManager.setMobileDataEnabled(enable);        if (enable) {
                if (++mTryCounter > 2) {
                    // show 2G hint
                    Toast.makeText(mActivity, R.string.msg_2g_hint,
                                    Toast.LENGTH_LONG).show();
                    if (mTryCounter > 3) {
                        onSelected(0); // open system settings
                    }
                } else {
                    Toast.makeText(mActivity, R.string.msg_enabling_mobile_data,
                                    Toast.LENGTH_SHORT).show();
                }
            }        updateState(enable ? mTelephonyManager.getMobileDataInfo().getState()
                            : State.DISCONNECTING);
        }