Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/186.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 棒棒糖中的多网络_Android_Networking_Wifi_Android 5.0 Lollipop_Cellular Network - Fatal编程技术网

Android 棒棒糖中的多网络

Android 棒棒糖中的多网络,android,networking,wifi,android-5.0-lollipop,cellular-network,Android,Networking,Wifi,Android 5.0 Lollipop,Cellular Network,我正在开发一个应用程序,当连接到特定ssid时,它会自动保存您的凭据并登录到大学wifi。一切正常。但当移动数据打开且wifi连接时,登录请求通过移动数据发送(因为wifi连接未激活)。 我阅读了文档并尝试了这个 if(Build.VERSION.SDK_INT >= 21){ ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.

我正在开发一个应用程序,当连接到特定ssid时,它会自动保存您的凭据并登录到大学wifi。一切正常。但当移动数据打开且wifi连接时,登录请求通过移动数据发送(因为wifi连接未激活)。 我阅读了文档并尝试了这个

if(Build.VERSION.SDK_INT >= 21){
    ConnectivityManager connectivityManager = (ConnectivityManager)       context.getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkRequest.Builder requestBuilder = new NetworkRequest.Builder();
    requestBuilder.addTransportType(NetworkCapabilities.TRANSPORT_WIFI);
    connectivityManager.registerNetworkCallback(requestBuilder.build(), new ConnectivityManager.NetworkCallback() {
        @Override
        public void onAvailable(Network network) {
            ConnectivityManager.setProcessDefaultNetwork(network);
        }
    });
}
new LoginTask().execute();
这不能解决我的问题。
有什么建议吗?

我自己解决了这个问题

ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);    
Network[] networks = connectivityManager.getAllNetworks();
NetworkInfo networkInfo;
Network network;
    for (int i = 0; i < networks.length; i++){               
        network = networks[i];
        networkInfo = connectivityManager.getNetworkInfo(network);
        if ((networkInfo.getType() ==     ConnectivityManager.TYPE_WIFI) && (networkInfo.getState().equals(NetworkInfo.State.CONNECTED))) {
           ConnectivityManager.setProcessDefaultNetwork(network);
            break;
        }
    }
ConnectivityManager ConnectivityManager=(ConnectivityManager)context.getSystemService(context.CONNECTIVITY_服务);
Network[]networks=connectivityManager.getAllNetworks();
网络信息网络信息;
网络;
对于(int i=0;i
这是我在S5中唯一能用棉花糖的东西。我一开始也用
requestNetwork
(适用于大多数手机)尝试了上述方法,但我从未收到过S5 M的
onAvailable
回调