我希望我的应用程序检查“数据网络模式”或“移动数据”是否已启用,即使它当前未处于活动状态。换句话说,我需要检查应用程序是否可能产生移动数据费用,即使手机当前通过 WiFi 连接。
通过谷歌搜索,我找到了以下代码,该代码检查“移动数据”是否为“活动”。
ConnectivityManager cm =
(ConnectivityManager)this.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo activeNetwork = cm.getActiveNetworkInfo();
boolean isMobile = activeNetwork.getType() == ConnectivityManager.TYPE_MOBILE;
此代码的问题在于,如果 WiFi 处于活动状态,即使已将其切换为打开状态,移动数据也不会报告为活动状态。
是否可以修改代码来确定移动数据是否已“启用”并因此可能处于活动状态,而不是像此代码那样确定它是否是当前活动的连接模式?
试试这个,在大多数情况下都有效。
ConnectivityManager cm =
(ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo activeNetwork = cm.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
boolean isConnected = activeNetwork != null &&
activeNetwork.isConnected();
if (!isConnected)
{
return false;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)