我有一个Android应用程序和一个可通过Wi-Fi获得的服务器
对于某些操作(例如来自服务器的视频流),我的应用通过共享文件的URL来使用第三方应用。
从Android L设备开始可以同时连接到Wi-Fi和蜂窝网络,这打破了我的应用程序,因为服务器没有互联网,而且蜂窝网络越来越受到Android的青睐(因为它有互联网),因此URL无法解析。我通过使用bindProcessToNetwork()将我的应用绑定到Wi-Fi来解决此问题。但是,当应用与第三方应用共享网址时,由于第三方应用未绑定到Wi-Fi,因此无法解析该网址。
打开我的应用提供的网址时,有没有办法让第三方应用使用Wi-Fi而不是手机?
答案 0 :(得分:0)
您可以在此解释如何将某种类型的网络强制转换为特定地址:
How to use 3G Connection in Android Application instead of Wi-fi?
如果您知道第三方服务的网址,可以试试。请记住,代码依赖于网络,因此它应该运行UI线程。此代码也使用了一些不推荐使用的方法。
答案 1 :(得分:0)
有许多方法可以实现这一目标...首先,我要创建一个vpn应用程序,捕获流入和流出设备的所有流量并根据需要重新进行重新路由,即使您的第三方也是如此app认为它使用蜂窝它的实际tcp数据包可以来自某个完全不同的地方,甚至蓝牙,如果你想。
第二,快速和肮脏(不确定,没有尝试过,但快速谷歌搜索扔我的方式),转到您的数据使用,启用数据截止(红色和橙色线)无关紧要你设置它们但是他们必须启用。接下来向下滚动,您将找到使用数据的应用列表,找到您的第三方应用,您将找到另一个复选框来限制其背景数据,标记它。现在,这个第三方应用程序无法在未经您同意的情况下使用移动数据:只有您自己触发的操作(“前景数据”)才会执行,后台或其他后台活动无法同步。因此,如果你的应用程序在内部与第三方应用程序共享URL并且没有涉及到ui,那么这应该可行
如果您只是手动复制并粘贴网址,那么当您手动转动移动数据时。