我想知道移动网络是启用还是禁用。
我的应用程序旨在帮助用户接到电话,为此我需要访问 Internet。因此,如果 Wi-Fi 有 sleep 策略并且移动网络被禁用,我想在用户第一次访问应用程序时显示一个信息框。 (我需要在电话响起后的几毫秒内上网)。
我找到了 Settings.System.WIFI_SLEEP_POLICY,但我找不到任何关于如何检查移动网络是否被禁用(当 Wi-Fi 开启并工作时)的信息。
如有任何帮助,我们将不胜感激!
编辑: 问题是我想知道用户是否关闭了移动网络(当时手机可以访问 WiFi)。
最佳答案
我终于找到了解决办法。显然不是所有手机都有这个选项:
Home > Menu > Settings > Wireless & networks > Mobile network (checkbox)
但是,对于那些这样做的人来说,这个方法会奏效:
/**
* @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;
}
}
关于android - 如何检查移动网络是否启用/禁用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8224097/