如何检查特定设备是否支持Android中的4Gnetworking?

我想检查一个特定的设备是否有4Gnetworking的硬件支持

我会详细说明这个问题
在应用程序中,我们有一个设置页面,用户可以select并允许应用程序只在选定的networking中运行。 例如。 用户可以select该应用程序将只运行在WiFinetworking或只在3Gnetworking等

对于所有networkingWiFi,2G,3G 4G等都有CheckBox偏好。现在如果设备不支持4Gnetworking,我想隐藏4Gselectcheckbox。
所有其余的function是完整的。 如何检测设备是否支持4G呢?
请注意, 我想检测设备上的4G的硬件支持,而不是连接4G的连接。
任何帮助是极大的赞赏。

Solutions Collecting From Web of "如何检查特定设备是否支持Android中的4Gnetworking?"

ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo[] info = cm.getAllNetworkInfo(); for(int i=0; i <info.length; i++){ Log.i("netinfo"+i, info[i].getType()+""); Log.i("netinfo"+i, info[i].getTypeName()); Log.i("netinfo"+i, info[i].getSubtype()+""); Log.i("netinfo"+i, info[i].getSubtypeName()); } 

使用这段代码并获取设备上的所有可用选项。 我认为你应该能够获得设备的所有function。

networkingtypes信息存在于http://developer.android.com/reference/android/telephony/TelephonyManager.html&#x4E2D; 。

我认为从API级别11添加的networkingtypes是4g。 自己检查一下。

这可能工作。 它应该检查WiMax 4G:

  private boolean is4gavailable() { ConnectivityManager connec = (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo mobileInfo = connec.getNetworkInfo(0); NetworkInfo wifiInfo = connec.getNetworkInfo(1); NetworkInfo wimaxInfo = connec.getNetworkInfo(6); if (wimaxInfo!=null) { return mobileInfo.isConnectedOrConnecting() || wifiInfo.isConnectedOrConnecting() || wimaxInfo.isConnectedOrConnecting(); } else { return mobileInfo.isConnectedOrConnecting() || wifiInfo.isConnectedOrConnecting(); } } 

试着看看这个更多的澄清。

上下文环境= MainActivity.this; 公共同步静态布尔isNetAvailable(上下文上下文){

  boolean isNetAvailable=false; if ( context != null ){ ConnectivityManager mgr = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); if ( mgr != null ){ boolean mobileNetwork = false; boolean wifiNetwork = false; boolean wiMaxNetwork = false; boolean mobileNetworkConnecetd = false; boolean wifiNetworkConnecetd = false; boolean wiMaxNetworkConnected = false; NetworkInfo mobileInfo = mgr.getNetworkInfo(ConnectivityManager.TYPE_MOBILE); NetworkInfo wifiInfo = mgr.getNetworkInfo(ConnectivityManager.TYPE_WIFI); NetworkInfo wiMaxInfo = mgr.getNetworkInfo(ConnectivityManager.TYPE_WIMAX); if ( mobileInfo != null ) mobileNetwork = mobileInfo.isAvailable(); if ( wifiInfo != null ) wifiNetwork = wifiInfo.isAvailable(); if(wiMaxInfo != null) wiMaxNetwork = wiMaxInfo.isAvailable(); if(wifiNetwork == true || mobileNetwork == true || wiMaxNetwork == true){ mobileNetworkConnecetd = mobileInfo.isConnectedOrConnecting(); wifiNetworkConnecetd = wifiInfo.isConnectedOrConnecting(); wiMaxNetworkConnected = wiMaxInfo.isConnectedOrConnecting(); } isNetAvailable = ( mobileNetworkConnecetd || wifiNetworkConnecetd || wiMaxNetworkConnected ); } } return isNetAvailable; } 

检查isNetAvailable的值是否在这3个例子中都适用,我也希望为你工作

注意:4G可用性将引入API级别8以上。