Android 检查网络中是否有两种不同类型的设备
我在检查设备是否连接到Wifi或电话数据时遇到了问题。 事实上,它在手机上运行得很好,但在平板电脑上……它崩溃了。 原因是某些平板电脑没有ConnectivityManager.TYPE_MOBILE 那么,我如何编写我的方法,如果设备具有TYPE_移动功能,它会检查它,否则只是类型_WIFI 以下是我的实际方法:Android 检查网络中是否有两种不同类型的设备,android,connection,Android,Connection,我在检查设备是否连接到Wifi或电话数据时遇到了问题。 事实上,它在手机上运行得很好,但在平板电脑上……它崩溃了。 原因是某些平板电脑没有ConnectivityManager.TYPE_MOBILE 那么,我如何编写我的方法,如果设备具有TYPE_移动功能,它会检查它,否则只是类型_WIFI 以下是我的实际方法: public static boolean isNetworkConnected(Context context) { boolean isConnected = fals
public static boolean isNetworkConnected(Context context) {
boolean isConnected = false;
ConnectivityManager connectivityManager = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo networkInfoWifi = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
NetworkInfo networkInfoMobile = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
if (networkInfoWifi.isConnected()|| networkInfoMobile.isConnected()) {
isConnected = true;
}
return isConnected;
}
谢谢 在使用isConnected之前只需检查null:
if(connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE) != null)
{
//implement your business
}
或者在获取网络信息之前,检测您的设备是否为平板电脑:
public static boolean isTablet(Context context)
{
return (context.getResources().getConfiguration().screenLayout & Configuration.SCREENLAYOUT_SIZE_MASK)
>= Configuration.SCREENLAYOUT_SIZE_LARGE;
}
然后根据设备获取您的网络信息
TelephonyManager telephonyManager = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);
int type=getPhoneType(telephonyManager);
if(type !=0)
{
NetworkInfo networkInfoWifi = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
NetworkInfo networkInfoMobile = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
if (networkInfoWifi.isConnected()|| networkInfoMobile.isConnected())
{ isConnected = true; }
}
else
{
NetworkInfo networkInfoWifi = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
if (networkInfoWifi.isConnected()) { isConnected = true; } }
type的值告诉我们收音机是GSM还是CDMA,或者收音机是否不存在。如果没有收音机,则为0;如果是GSM,则为1;如果是CDMA,则为2