Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/187.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 当wifi连接到棉花糖中的OBD时,通过移动数据访问互联网_Android_Android 6.0 Marshmallow_Connectivity - Fatal编程技术网

Android 当wifi连接到棉花糖中的OBD时,通过移动数据访问互联网

Android 当wifi连接到棉花糖中的OBD时,通过移动数据访问互联网,android,android-6.0-marshmallow,connectivity,Android,Android 6.0 Marshmallow,Connectivity,我同时启用了WIFI和移动数据。在wifi中,我已连接到一个没有互联网连接的OBD,但如果连接,将传输一些数据。为了启动该流,我使用了以下代码: ConnectivityManager connectivityManager = (ConnectivityManager) getCurrentActivity().getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo ni = connectivityManage

我同时启用了WIFI移动数据。在wifi中,我已连接到一个没有互联网连接的OBD,但如果连接,将传输一些数据。为了启动该流,我使用了以下代码:

ConnectivityManager connectivityManager = (ConnectivityManager) getCurrentActivity().getSystemService(Context.CONNECTIVITY_SERVICE);

        NetworkInfo ni = connectivityManager.getActiveNetworkInfo();
        if (SDK_INT >= LOLLIPOP) {
            NetworkRequest.Builder request = new NetworkRequest.Builder();
            request.addTransportType(NetworkCapabilities.TRANSPORT_WIFI);

            connectivityManager.registerNetworkCallback(request.build(), new ConnectivityManager.NetworkCallback() {

                @Override
                public void onAvailable(Network network) {
                    if (SDK_INT >= LOLLIPOP && SDK_INT < M) {
                        ConnectivityManager.setProcessDefaultNetwork(network);
                    } else if (SDK_INT >= M) {
                        connectivityManager.bindProcessToNetwork(network);
                    }
                }
            });
        }
发生的情况是,当我调试此过程时,
NetworkInfo
始终具有WIFI连接,即使它点击了
onAvailable
方法


请指出我是否在某个地方出错或遗漏了什么。

我不确定这是否会影响OBD流(从未尝试过),但您是否尝试设置“ConnectionManager.setNetworkPreference(ConnectionManager.TYPE_MOBILE);”流启动后?你解决过这个问题吗?我正在尝试做一些非常类似的事情。你能解决这个问题吗?很抱歉延迟回复。但我们转向了另一种解决方案,即OBD不需要WiFi。无法找到此问题的任何解决方案。
ConnectivityManager connectivityManager = (ConnectivityManager) getCurrentActivity().getSystemService(Context.CONNECTIVITY_SERVICE);

        NetworkInfo ni = connectivityManager.getActiveNetworkInfo();
        if (SDK_INT >= LOLLIPOP) {
            NetworkRequest.Builder request = new NetworkRequest.Builder();
            request.addTransportType(NetworkCapabilities.TRANSPORT_CELLULAR);

            connectivityManager.registerNetworkCallback(request.build(), new ConnectivityManager.NetworkCallback() {

                @Override
                public void onAvailable(Network network) {
                    if (SDK_INT >= LOLLIPOP && SDK_INT < M) {
                        ConnectivityManager.setProcessDefaultNetwork(network);
                    } else if (SDK_INT >= M) {
                        connectivityManager.bindProcessToNetwork(network);
                    }
                }
            });
        }