1

我有一个为客户端定制的应用程序,并且在 Play 商店中不可用,当它检测到设备连接到他们的 WiFi 时,它基本上会进行一些网络调用。即使它没有互联网连接也应该发生这种情况,应用程序发出的每个请求都是针对本地地址的。
问题来自客户购买的新一批平板电脑(Galaxy Tab Active 2,Android 8.1.0,内部版本号 M1AJQ.T395XXU3BRJ5),它总是更喜欢通过我告诉它的任何网络连接互联网绑定到。
WiFi -> 高级 -> 切换到移动数据已被禁用,所以不应该这样。

这是我一直在使用的代码:

ConnectivityManager cm = (ConnectivityManager) getApplication().getSystemService(Context.CONNECTIVITY_SERVICE);
Network[] networks = cm.getAllNetworks();
for (int i = 0, networksLength = networks.length; !bound && i < networksLength; i++) {
    Network network = networks[i];
    if (correctNetwork(network)) { //SSID check
        bound = cm.bindProcessToNetwork(network);
        Log.i(TAG, "Bound? " + bound);
    }
}

在他们以前的所有设备上,我自己的手机,甚至 Galaxy Tab Active 1 上,这都在工作:我们在日志中看到“Bound?true”,并且每个连接都是通过正确的网络建立的。在 Active 2 上,我们总是看到“Bound? false”,它将使用 4G 连接。禁用数据不是一种选择。

如果这是三星的错误,是否有解决方法?或者可能是强制 HttpURLConnection 使用特定网络的替代方法?

4

0 回答 0