Android下如何同时开启wifi和移动网络 android移动wifi网络3g 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 通过API 可以主动连接一个可用的WIFI 和2G网络。 不知道你是不是想通过底层的方式弄。 但是我看网上的解释说的是Android开启wifi时会关闭移动网络,我就是想问怎么才能跳过关闭移动网络这一个点,去开启wifi使两种网络能同时开启,由于小弟我的英语不太好,看了两天的源码也没怎么看明白,所以请求各位大神帮小弟解释解释。如果可以告诉我wifi开启运行时按什么顺序调用了哪部分的代码的话,小弟感激不尽。 开启wifi不会关闭移动网络,只是你连接上wifi后,网络通道默认走wifi通道,但是你可以设置,优先走移动网络通道,有adb命令:svc wifi prefer 这个是默认的状态,有wifi就是wifi优先。svc data prefer 这个使移动数据连接比wifi优先。有移动数据开启的话先用移动数据,没有就用wifi。另外开启/关闭 wifi 和移动数据的命令svc data enable/disablesvc wifi enable/disable 不是关闭了移动网络,只是开启wifi后,将优先使用wifi。 不是关闭了移动网络,只是开启wifi后,将优先使用wifi。不行哦,我使用海卓上网大师禁掉了应用程序的wifi功能,开启了3G网络和wifi,提示是联不到网络的,这样只能说明3G网络被关闭了不是吗。 不是关闭了移动网络,只是开启wifi后,将优先使用wifi。不行哦,我使用海卓上网大师禁掉了应用程序的wifi功能,开启了3G网络和wifi,提示是联不到网络的,这样只能说明3G网络被关闭了不是吗。你是想禁用某个程序使用wifi,然后使用3G? 不是关闭了移动网络,只是开启wifi后,将优先使用wifi。不行哦,我使用海卓上网大师禁掉了应用程序的wifi功能,开启了3G网络和wifi,提示是联不到网络的,这样只能说明3G网络被关闭了不是吗。你是想禁用某个程序使用wifi,然后使用3G?我是想要让wifi和3G同时开启啊 不是关闭了移动网络,只是开启wifi后,将优先使用wifi。不行哦,我使用海卓上网大师禁掉了应用程序的wifi功能,开启了3G网络和wifi,提示是联不到网络的,这样只能说明3G网络被关闭了不是吗。你是想禁用某个程序使用wifi,然后使用3G?我是想要让wifi和3G同时开启啊两个本来就能同时开的啊 不是关闭了移动网络,只是开启wifi后,将优先使用wifi。不行哦,我使用海卓上网大师禁掉了应用程序的wifi功能,开启了3G网络和wifi,提示是联不到网络的,这样只能说明3G网络被关闭了不是吗。你是想禁用某个程序使用wifi,然后使用3G?我是想要让wifi和3G同时开启啊两个本来就能同时开的啊不行哦,我使用海卓上网大师禁掉了应用程序的wifi功能,开启了3G网络和wifi,提示是联不到网络的,这样只能说明3G网络被关闭了不是吗。 我就是想问下怎么通过代码的方式同时开启wifi和无线网络 不是关闭了移动网络,只是开启wifi后,将优先使用wifi。不行哦,我使用海卓上网大师禁掉了应用程序的wifi功能,开启了3G网络和wifi,提示是联不到网络的,这样只能说明3G网络被关闭了不是吗。你是想禁用某个程序使用wifi,然后使用3G?我是想要让wifi和3G同时开启啊两个本来就能同时开的啊似乎是开了wifi系统为了省电就会把移动网络关掉了,我看别人这样讲。 这是打开数据网络的方法private void setGprsEnable(boolean isEnable) { int result = 0; ConnectivityManager mCM = (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE); try { Class clazz = Class.forName(mCM.getClass().getName()); Constructor[] cons = clazz.getDeclaredConstructors(); Constructor con = clazz.getConstructor();//getDeclaredConstructors(); con.setAccessible(true); Field iConnectivityManagerField = clazz.getDeclaredField("mService"); iConnectivityManagerField.setAccessible(true); Object iConnectivityManager = iConnectivityManagerField.get(mCM); //Class iConnectivityManagerClass = Class.forName(iConnectivityManager.getClass().getName()); ConnectivityManager cm = (ConnectivityManager)con.newInstance(iConnectivityManager); Class[] argClasses = new Class[1]; argClasses[0] = Boolean.class; Method ms = clazz.getDeclaredMethod("setMobileDataEnabled", argClasses); ms.setAccessible(true); Object obj = ms.invoke(cm, isEnable); result = (Integer) obj; } catch (ClassNotFoundException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } catch (IllegalArgumentException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (InstantiationException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IllegalAccessException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (InvocationTargetException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (NoSuchMethodException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (NoSuchFieldException e) { // TODO Auto-generated catch block e.printStackTrace(); } }打开wifi的wifiManager.setWifiEnabled(true); 不过打开移动数据的,可能有些系统有做修改的,可能会失效,不过都可以通过查看log或者看其setting的代码获取到打开的方法另外,打开wifi连接上后,移动网络不会关,我的理解是只是处于暂停状态(源码没有看过,所以只是个人想法,至少状态栏那显示着移动网络的还是打开状态) 楼主你好,请问你的问题解决了吗,我最近也遇到这种需求了,因为老板把一个android的wifi当串口去用了,连不到网络,还有一个后台服务器,我也需要可以同时适用wifi和3G的功能,有什么手段可以实现吗? 我也有这个需求,wifi 用于局域网的 数据传输(内部网络), 把部分数据提取出来 发送指定的外网服务器(3G\4G)。 弱弱的问一句,android 4.2.2的android:targetSdkVersion应该写17还是21呢? 写一个画图应用碰到的难题 最近在学习android的email模块?各位大侠有没有好的资料或博客推荐一下。谢谢。 自学半个月做的应用—大神们多多指教 在view中如何实现bitmap的旋转? listview(对话框)被挤掉了。。。求解 android market上软件 关于移动开发需要技术 error: index-pack died of signal 关于构造函数的问题 新手问题:增加RadioGroup监听器,运行出错 请教关于android蓝牙接收数据的问题
这个是默认的状态,有wifi就是wifi优先。svc data prefer
这个使移动数据连接比wifi优先。有移动数据开启的话先用移动数据,没有就用wifi。另外开启/关闭 wifi 和移动数据的命令svc data enable/disable
svc wifi enable/disable
不是关闭了移动网络,只是开启wifi后,将优先使用wifi。
不是关闭了移动网络,只是开启wifi后,将优先使用wifi。不行哦,我使用海卓上网大师禁掉了应用程序的wifi功能,开启了3G网络和wifi,提示是联不到网络的,这样只能说明3G网络被关闭了不是吗。
不是关闭了移动网络,只是开启wifi后,将优先使用wifi。不行哦,我使用海卓上网大师禁掉了应用程序的wifi功能,开启了3G网络和wifi,提示是联不到网络的,这样只能说明3G网络被关闭了不是吗。你是想禁用某个程序使用wifi,然后使用3G?
不是关闭了移动网络,只是开启wifi后,将优先使用wifi。不行哦,我使用海卓上网大师禁掉了应用程序的wifi功能,开启了3G网络和wifi,提示是联不到网络的,这样只能说明3G网络被关闭了不是吗。你是想禁用某个程序使用wifi,然后使用3G?我是想要让wifi和3G同时开启啊
不是关闭了移动网络,只是开启wifi后,将优先使用wifi。不行哦,我使用海卓上网大师禁掉了应用程序的wifi功能,开启了3G网络和wifi,提示是联不到网络的,这样只能说明3G网络被关闭了不是吗。你是想禁用某个程序使用wifi,然后使用3G?我是想要让wifi和3G同时开启啊两个本来就能同时开的啊
不是关闭了移动网络,只是开启wifi后,将优先使用wifi。不行哦,我使用海卓上网大师禁掉了应用程序的wifi功能,开启了3G网络和wifi,提示是联不到网络的,这样只能说明3G网络被关闭了不是吗。你是想禁用某个程序使用wifi,然后使用3G?我是想要让wifi和3G同时开启啊两个本来就能同时开的啊不行哦,我使用海卓上网大师禁掉了应用程序的wifi功能,开启了3G网络和wifi,提示是联不到网络的,这样只能说明3G网络被关闭了不是吗。
不是关闭了移动网络,只是开启wifi后,将优先使用wifi。不行哦,我使用海卓上网大师禁掉了应用程序的wifi功能,开启了3G网络和wifi,提示是联不到网络的,这样只能说明3G网络被关闭了不是吗。你是想禁用某个程序使用wifi,然后使用3G?我是想要让wifi和3G同时开启啊两个本来就能同时开的啊似乎是开了wifi系统为了省电就会把移动网络关掉了,我看别人这样讲。
private void setGprsEnable(boolean isEnable) {
int result = 0;
ConnectivityManager mCM = (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);
try {
Class clazz = Class.forName(mCM.getClass().getName());
Constructor[] cons = clazz.getDeclaredConstructors();
Constructor con = clazz.getConstructor();//getDeclaredConstructors();
con.setAccessible(true);
Field iConnectivityManagerField = clazz.getDeclaredField("mService");
iConnectivityManagerField.setAccessible(true);
Object iConnectivityManager = iConnectivityManagerField.get(mCM);
//Class iConnectivityManagerClass = Class.forName(iConnectivityManager.getClass().getName());
ConnectivityManager cm = (ConnectivityManager)con.newInstance(iConnectivityManager);
Class[] argClasses = new Class[1];
argClasses[0] = Boolean.class;
Method ms = clazz.getDeclaredMethod("setMobileDataEnabled", argClasses);
ms.setAccessible(true);
Object obj = ms.invoke(cm, isEnable);
result = (Integer) obj;
} catch (ClassNotFoundException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (IllegalArgumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InstantiationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InvocationTargetException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (NoSuchMethodException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (NoSuchFieldException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}打开wifi的
wifiManager.setWifiEnabled(true); 不过打开移动数据的,可能有些系统有做修改的,可能会失效,不过都可以通过查看log或者看其setting的代码获取到打开的方法另外,打开wifi连接上后,移动网络不会关,我的理解是只是处于暂停状态(源码没有看过,所以只是个人想法,至少状态栏那显示着移动网络的还是打开状态)