我在Android上做了一个网络App,创建了一个tun设备作为网卡。首先我关闭其他的网络设备包括eth0(WLAN)和rmnet0(3G/GPRS),然后加一条路由
ip route add default dev tun0
来把所有网络数据转向到我创建的这个虚拟网卡。接下来当我做ping的时候,能够发现我的虚拟网卡收到了数据,这时候QQ和系统原生的浏览器也可以正常工作了。
但有些App是先检测连接可用性,然后再真正上网。因为我已经关闭了WIFI和GPRS,当这些App检测可用性的时候,Android告诉它们没有可用连接,然后这些App就不工作了。
我的问题就是:
如何欺骗Android的ConnectivityManager,使它通知App仍然有可用的连接?
这个问题我也发到了stackoverflow上,现在还没回应。链接在这里