强制第三方应用的Wi-Fi网络

我有一个Android应用程序和一个可通过Wi-Fi服务器。
对于某些操作(例如来自服务器的video流),我的应用程序通过共享文件的URL来使用第三方应用程序。

从Android L设备开始可以同时连接到Wi-Fi和蜂窝网络,这打破了我的应用程序,因为服务器没有互联网,而且蜂窝网络越来越受到Android的青睐(因为它有互联网),因此URL无法解析。 我通过bindProcessToNetwork()将我的应用程序绑定到Wi-Fi来修复此问题。 但是,当应用程序与第三方应用程序共享URL时,由于第三方应用程序未绑定到Wi-Fi,因此仍无法解析该URL。

有没有办法让第三方应用程序在打开我的应用程序提供的URL时使用Wi-Fi而不是蜂窝?

在此处输入图像描述

    在这里,您可以解释如何将某种types的网络强制到特定地址:

    如何在Android应用程序中使用3G连接而不是Wi-Fi?

    如果您知道第三方服务的URL,则可以尝试使用它。 请记住,代码依赖于网络,因此它应该运行UI线程。 此代码也使用了一些不推荐使用的方法。

    有许多方法可以实现这一目标……首先,我要创建一个vpn应用程序,捕获流入和流出设备的所有流量并根据需要重新进行重新路由,即使您的第三方应用程序认为其使用蜂窝,它的实际tcp数据包可以来自某个完全不同的地方,如果你愿意,甚至可以使用蓝牙。

    第二,快速和肮脏(不确定,没有尝试过,但快速谷歌搜索扔我的方式),转到您的数据使用,启用数据截止(红色和橙色线)无关紧要你设置他们但他们必须被启用。 接下来,向下滚动,您将find使用数据的应用列表,find您的第三方应用,您将find另一个checkbox来限制其背景数据,标记它。 现在,这个第三方应用程序无法在未经您同意的情况下使用移动数据:只有您自己触发的操作(“前景数据”)将由它执行,后台或其他后台活动不同步。 因此,如果你的应用程序在内部与第三方应用程序共享URL并且没有涉及到ui,那么这应该可行

    如果您只是手动复制并粘贴url,那么当您手动复制移动数据时。