失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > android 强制开启wifi 强制Android使用无网络的Wifi网络

android 强制开启wifi 强制Android使用无网络的Wifi网络

时间:2022-02-12 21:13:56

相关推荐

android 强制开启wifi 强制Android使用无网络的Wifi网络

我正在构建一个需要通过无线网络进行通信的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 workCallback() {

@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);

}

});

}

}

如果觉得《android 强制开启wifi 强制Android使用无网络的Wifi网络》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。