【发布时间】:2013-01-07 09:13:46
【问题描述】:
我正在做一个使用 tun 作为 Android 上的虚拟网络设备的网络应用程序。我关闭了其他可用接口,例如 eth0(用于 WLAN)和 rmnet0(用于 3G/GPRS),但保持 tun0 设备处于活动状态并在路由表中添加规则
ip route add default dev tun0
所以我可以将所有互联网传输重定向到 tun 设备(我在这里所做的与 OpenVPN 相同)。然后我在ping其他IP时看到了数据传输。浏览器和其他一些应用程序运行良好。
但某些 Android 应用在访问网络之前会通过 ConnectivityManager 来检查 Connectivity。由于我关闭了 WIFI 和 3G/GPRS,ConnectivityManager 认为没有连接,这些应用程序将不再访问网络。
所以我的问题是:
如何欺骗 android ConnectiviyManager,让它相信仍然有可用的连接(对于任何类型)?
【问题讨论】:
-
没有。似乎没有办法做到这一点。所以我只是简单地关闭它?
-
是的,不幸的是,它本来就是这样工作的
标签: android network-programming tun