我想获得“使用移动网络”设置值(true或false)。有一种方法可以知道是否启用了wifi,可以这样做:
WifiManager wm = (WifiManager)context.getSystemService(Context.WIFI_SERVICE);
int state = wm.getWifiState();
boolean pref = state == WifiManager.WIFI_STATE_ENABLED || state == WifiManager.WIFI_STATE_ENABLING;
但是如何对数据进行相同的检查呢?
答案 0 :(得分:1)
我希望它有所帮助:)
ConnectivityManager connect = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
Boolean isConnected = connect.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).isConnected();
答案 1 :(得分:1)
你可以试试这个:
public boolean getMobileDataEnabled() throws Exception {
ConnectivityManager mcm = (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);
Class ownerClass = mcm.getClass();
Method method = ownerClass.getMethod("getMobileDataEnabled");
return (Boolean)method.invoke(mcm);
}
并将权限添加到AndroidManifest.xml
:
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
答案 2 :(得分:0)
您是否尝试过使用getDataState()
课程中的TelephonyManager
?
TelephonyManager tm = (TelephonyManager)Context.getSystemService (Context.TELEPHONY_SERVICE);
int state = tm.getDataState();
boolean pref = state == TelephonyManager.DATA_CONNECTED;
这应该检查数据连接的状态。