2 gamedragon gamedragon 于 2013.01.11 10:30 提问

关闭WIFI/3G/GPRS后,如何欺骗Android的ConnectiviyManager仍然存在可用连接?

我在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上,现在还没回应。链接在这里

2个回答

wangyaninglm
wangyaninglm   Ds   Rxr 2015.01.13 22:32

这个我估计你得去看雪论坛问问吧,那边有大牛的

lvcoffee
lvcoffee   2015.10.13 16:52

可以用Hack Connectivity Service 欺骗系统

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
Android实时判断网络连接(wifi/2G/3G/4G)
注册广播实时监测当前手机的连接网络(wifi/2G/3G/4G)以及可以检测当前数据连接所属的网络运行商(移动/电信/联通)
Android 判断网络是GPRS还是WIFI
package com.cwq.receiver; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.net.ConnectivityManager; import android.net.NetworkIn
Android判断设备是否打开WIFI、GPRS数据连接
 代码摘要: import android.content.Context; import android.net.ConnectivityManager; import android.net.NetworkInfo; ConnectivityManager cm; cm = (ConnectivityManager) getSystemService(Context
Android 判断网络是否可用、网络类型WIFI/2G/3G/4G及获取IP
在中
Android开发中WIFI和GPRS网络的切换
在项目的开发中因为要使用到WIFI和GPRS网络的切换,因此就研究了一下通过代码打开WIFI和GPRS的工作。 无论是切换WIFI还是切换GPRS网络都需要设置相应的权限,所以需要在AndroidManifest.xml文件中加入一下几行代码。 1、切换WIFI网络 public static void toggleWiFi(Context
GPRS 区分2g/3g/4g网络
/** * 区分2g/3g/4gGPRG网络 * @author Bubble * */ package com.yunchao.apn;import com.sparrow.constant.Constant;import android.content.Context; import android.net.ConnectivityManager; import android.ne
app判断当前网络是否可用并开启wifi和开启GPRS
/** * 判断当前网络是否可用 * @param context * @return false不可用 true可用 */ public static boolean isNetworkAvailable(Context context) { ConnectivityManager cm = (ConnectivityManage
Android之判断手机连接的网络类型是WIFI还是2G/3G/4G
首先定义不同网络类型返回的常量值:public class Constants { /** * Unknown network class */ public static final int NETWORK_CLASS_UNKNOWN = 0; /** * wifi net work */ public static final
解决 iPhone手机同时连接WiFi和3G/4G(蜂窝移动)的问题
头疼问题: 近期有个项目涉及APP连接硬件,APP和硬件处于同一局域网,那么问题来了,APP在连接硬件的同时也要能上网,比如在地图上显示当前手机的位置,那么就需要外网来定位,如果此时APP既能连接硬件—WIFI模式,又能连接蜂窝移动—3G/4G模式,问题就迎刃而解了; 解决方案: 1,国内搜索,基本没有,过; 2,翻墙国外搜索,一个台湾论坛发现方法,经测试可以; 具体步骤
Android 判断开启网络,wifi是否可用
Android 判断开启网络,wifi是否可用