我想知道移动网络是启用还是禁用。
我的应用程序旨在帮助用户在接到电话时,我需要互联网接入。因此,如果wi-fi有睡眠策略并且移动网络被禁用,我想在用户第一次访问应用程序时显示一个信息框。(我需要在电话响后几毫秒内上网)。
我找到了settings.system.wi fi_sleep_策略,但找不到任何有关如何检查移动网络是否已禁用的信息(当wi-fi处于打开和工作状态时)。
任何帮助都将不胜感激!
编辑:
问题是我想知道用户是否打开了移动网络(而手机当时可以有wifi接入)。
最佳答案
我终于找到了解决办法。显然不是所有的手机都有这个选择:
主页>菜单>设置>无线和网络>移动网络(复选框)
但是,对于那些这样做的人,这种方法将起作用:
/**
* @return null if unconfirmed
*/
public Boolean isMobileDataEnabled(){
Object connectivityService = getSystemService(CONNECTIVITY_SERVICE);
ConnectivityManager cm = (ConnectivityManager) connectivityService;
try {
Class<?> c = Class.forName(cm.getClass().getName());
Method m = c.getDeclaredMethod("getMobileDataEnabled");
m.setAccessible(true);
return (Boolean)m.invoke(cm);
} catch (Exception e) {
e.printStackTrace();
return null;
}
}