首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何检查特定设备是否支持Android中的4G网络?

如何检查特定设备是否支持Android中的4G网络?
EN

Stack Overflow用户
提问于 2011-10-25 10:22:51
回答 3查看 21.9K关注 0票数 11

我想看看某个特定的设备是否对4G网络有硬件支持,

我会详细说明这个问题..。

在应用程序中,我们有一个设置页面,用户可以在其中进行选择,并允许应用程序仅在选定的网络中运行。例如:用户可以选择该应用程序将只运行在WiFi网络或仅在3G网络等。

所有网络都有checkbox首选项WiFi、2G、3G 4G等。现在如果设备不支持4G网络,我想隐藏4G选择复选框。

所有剩下的功能都完成了。我对如何检测设备是否支持4G这一问题感到惊讶?

请注意,我想在设备上检测到对4G的硬件支持,而不是4G连接。

任何帮助都是非常感谢的。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-11-01 11:30:43

代码语言:javascript
复制
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());
   }

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

网络类型信息存在于http://developer.android.com/reference/android/telephony/TelephonyManager.html中。

我认为从API级别11添加的网络类型是用于4g的。你自己去查。

票数 3
EN

Stack Overflow用户

发布于 2011-10-25 14:04:14

这也许能行。它应该检查一下WiMax 4g:

代码语言:javascript
复制
    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();
    }
}

试着看看,以获得更多的澄清。

票数 1
EN

Stack Overflow用户

发布于 2012-01-07 04:53:11

代码语言:javascript
复制
  Context context = MainActivity.this;
  public synchronized static boolean isNetAvailable(Context context){

        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以后。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7887840

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档