内容简介:http://stackoverflow.com/questions/42492136/force-android-to-use-wifi-network-with-no-internet
我正在构建一个需要通过无线网络进行通信的Android应用程序.问题在于,即使WiFi连接,当WiFi网络上没有连接互联网时,Android会选择使用蜂窝/移动数据.
我已经阅读了许多关于这个问题的帖子,其中很多都涉及生根的设备,但这是不可能的生产应用程序(生根设备不是一个选择).其他解决方案(像我的代码如下)建议使用bindProcessToNetwork(),它完美地在我的Sony Z2上工作,但不是在我测试过的其他设备上(全部运行6.0.1)
private void bindToNetwork() { final ConnectivityManager connectivityManager = (ConnectivityManager) mActivity.getSystemService(Context.CONNECTIVITY_SERVICE); NetworkRequest.Builder builder; if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { builder = new NetworkRequest.Builder(); //set the transport type do WIFI builder.addTransportType(NetworkCapabilities.TRANSPORT_WIFI); connectivityManager.requestNetwork(builder.build(), new ConnectivityManager.NetworkCallback() { @Override public void onAvailable(Network network) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { connectivityManager.bindProcessToNetwork(null); if (barCodeData.getSsid().contains("screenspace")) { connectivityManager.bindProcessToNetwork(network); } } else { //This method was deprecated in API level 23 ConnectivityManager.setProcessDefaultNetwork(null); if (barCodeData.getSsid().contains("screenspace")) { ConnectivityManager.setProcessDefaultNetwork(network); } } connectivityManager.unregisterNetworkCallback(this); } }); } }
您可以尝试将全局设置captive_portal_detection_enabled设置为0(false).
实际发生的情况是,默认情况下,每次连接到WiFi时,FW将针对服务器(通常为谷歌)进行测试,以查看它是否是一个强制性的WiFi(需要登录).所以如果你的wifi没有连接到谷歌,这个检查将失败.之后,该设备知道wifi没有互联网连接,根本不会自动连接到它.
将此设置设置为0,将避免此检查.
编程方式:
Settings.Global.putInt(getContentResolver(),Settings.Global.CAPTIVE_PORTAL_DETECTION_ENABLED,0);
编辑:您可能需要直接使用字符串“captive_portal_detection_enabled”,而不是根据Android版本不可见的常量.
http://stackoverflow.com/questions/42492136/force-android-to-use-wifi-network-with-no-internet
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
计算机网络(第7版)
谢希仁 / 电子工业出版社 / 2017-1 / 45.00
本书自1989年首次出版以来,曾于1994年、1999年、2003年、2008年和2013年分别出了修订版。在2006年本书通过了教育部的评审,被纳入普通高等教育“十一五”国家级规划教材;2008年出版的第5版获得了教育部2009年精品教材称号。2013年出版的第6版是“十二五”普通高等教育本科国家级规划教材。 目前2017年发行的第7版又在第6版的基础上进行了一些修订。 全书分为9章,比较......一起来看看 《计算机网络(第7版)》 这本书的介绍吧!