gpt4 book ai didi

Wi-Fi无法上网时Android Lollipop默认使用Mobile Data?

转载 作者:IT王子 更新时间:2023-10-28 23:36:05 27 4
gpt4 key购买 nike

当您连接的 Wi-Fi 无法访问 Internet 时,

Android Lollipop 似乎默认为移动数据。有人知道这是否在某处有正式记录吗?

我们有一个应用程序需要通过 Wi-Fi 连接到没有互联网的机器。我们的客户现在报告 Wi-Fi 连接不再工作,因为手机会自动切换到 LTE

我的理解是,手机仍然保持 Wi-Fi 连接,但使用 LTE 除了提供对 Internet 的访问 (lollipop-feature-spotlight-android-now-defaults-to-mobile-data-when-wi-fi-has-no-internet-access-signal-icon-adds-a-for-no-connection )。

我对这个功能的理解有错吗?如果是这样,有没有办法在没有互联网的情况下强制使用Wi-Fi?我在开发人员文档中找不到任何关于此的内容。

非常感谢任何帮助。

最佳答案

为了扩展@ianhanniballake 的回答,我发现使用 ConnectivityManager.setProcessDefaultNetwork() 绑定(bind)网络防止漫游并允许完全 TCP 访问。因此,在 onAvailable()回调,您可以将应用程序进程绑定(bind)到该网络,而不是打开到特定 URL 的连接。

ConnectivityManager connection_manager = 
(ConnectivityManager) activity.getApplication().getSystemService(Context.CONNECTIVITY_SERVICE);

NetworkRequest.Builder request = new NetworkRequest.Builder();
request.addTransportType(NetworkCapabilities.TRANSPORT_WIFI);

connection_manager.registerNetworkCallback(request.build(), new NetworkCallback() {

@Override
public void onAvailable(Network network) {
ConnectivityManager.setProcessDefaultNetwork(network);
}
}

从 API 级别 23 开始:请使用以下 OnAvailable 方法:

@Override
public void onAvailable(Network network) {
connection_manager.bindProcessToNetwork(network);
}

关于Wi-Fi无法上网时Android Lollipop默认使用Mobile Data?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27164298/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com