为第三方应用程序强制使用Wi-Finetworking

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

从Android L开始,设备可以同时连接到Wi-Fi和蜂窝,由于服务器没有互联网和蜂窝networking被Android(因为它具有互联网),所以会打破我的应用程序,所以URL不能被parsing。 我通过bindProcessToNetwork()将我的应用绑定到Wi-Fi来解决这个问题。 但是,当应用程序与第三方应用程序共享URL时,由于第三方应用程序未绑定到Wi-Fi,所以URL仍然无法parsing。

有没有办法让第三方应用程序使用Wi-Fi,而不是手机,而开放我的应用程序提供的url?

在这里输入图像说明

Solutions Collecting From Web of "为第三方应用程序强制使用Wi-Finetworking"

在这里你有一个解释如何强制一种networking到一个特定的地址:

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

如果你知道第三方服务的URL,你可以试试。 请记住,代码依赖于networking,所以它应该从UI线程运行。 此外,这段代码使用了一些废弃的方法。

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

其次,快速和肮脏(不知道,没有尝试过,但快速谷歌search抛出我的方式),去你的数据使用,启用数据中断(红色和橙色线)无关紧要你设置他们,但他们必须被启用。 接下来向下滚动,您将find使用数据的应用程序列表,find您的第三方应用程序,您会发现另一个checkbox来限制其背景数据,并将其标记。 现在,如果未经您的同意,此第三方应用将无法再使用移动数据:您只会触发自己触发的操作(“前景数据”),不会在后台同步或执行其他后台操作。 因此,如果您的应用程序与第三方应用程序在内部共享URL并且不涉及UI,那么应该可以工作

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