对于部分需求,如在插sim卡的时候依然想让手机走wifi局域网,可以如下实现:
ConnectivityManager connMgr = (ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE);
// mWifiManager很容易获得
Network netWork = mWifiManager.getCurrentNetwork();
// 第一个参数是当前network;第二个参数是即使该wifi不能连接互联网,true:继续使用该网络通信,好比选择对话框的确定,false:不继续使用该网络通信,好比选择对话框的取消
// 第三个参数 true始终选择第二个参数不变,false每次都需要询问,好比选择对话框的是否不再提示.
connMgr.setAcceptUnvalidated(netWork, true, false);
注意:需要系统权限<uses-permission android:name="android.permission.CONNECTIVITY_INTERNAL" />
同时需要在Menifest中补充android:sharedUserId="android.uid.system"