如何检查WiFi或3G网络可在Android设备 [英] how to check wifi or 3g network is available on android device
问题描述
在这里,我的Android设备同时支持WiFi和3G。在特定时间的网络可在此设备上。因为我的要求是,当3G是可用我要上传少量数据。当无线可用整个数据必须上传。所以,我要检查连接WiFi或3G。请帮我。提前致谢。
Here, my android device supports both wifi and 3g. At particular time which network is available on this device. Because my requirement is when 3g is available I have to upload small amount of data. when wifi is available entire data have to upload. So, I have to check connection is wifi or 3g. Please help me. Thanks in advance.
推荐答案
我用这样的:
/**
* Checks if we have a valid Internet Connection on the device.
* @param ctx
* @return True if device has internet
*
* Code from: http://www.androidsnippets.org/snippets/131/
*/
public static boolean haveInternet(Context ctx) {
NetworkInfo info = (NetworkInfo) ((ConnectivityManager) ctx
.getSystemService(Context.CONNECTIVITY_SERVICE)).getActiveNetworkInfo();
if (info == null || !info.isConnected()) {
return false;
}
if (info.isRoaming()) {
// here is the roaming option you can change it if you want to
// disable internet while roaming, just return false
return false;
}
return true;
}
您还需要
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
在AndroidMainfest.xml
in AndroidMainfest.xml
为了让您可以使用此code段的网络类型:
ConnectivityManager conMan = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
//mobile
State mobile = conMan.getNetworkInfo(0).getState();
//wifi
State wifi = conMan.getNetworkInfo(1).getState();
,然后用它这样的:
and then use it like that:
if (mobile == NetworkInfo.State.CONNECTED || mobile == NetworkInfo.State.CONNECTING) {
//mobile
} else if (wifi == NetworkInfo.State.CONNECTED || wifi == NetworkInfo.State.CONNECTING) {
//wifi
}
要获得移动网络我会尝试<一的类型href="http://developer.android.com/reference/android/telephony/TelephonyManager.html#getNetworkType%28%29">TelephonyManager#getNetworkType或<一href="http://developer.android.com/reference/android/net/NetworkInfo.html#getSubtypeName%28%29">NetworkInfo#getSubtypeName
To get the type of the mobile network I would try TelephonyManager#getNetworkType or NetworkInfo#getSubtypeName
这篇关于如何检查WiFi或3G网络可在Android设备的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!