Android获取当前手机的联网方式的总结

在Android平台下提供了很全面的网络接口,获取手机设置的网络接入方式更是不在话下了,所以开发以来很方便。
Activity提供了获取网络管理类的接口ConnectivityManager,用ConnectivityManager就可获取网络信息类NetworkInfo,NetworkInfo包含了很多网络状况的信息。
如下代码实例:
//获取网络连接管理者 ConnectivityManager connectionManager = (ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE); //获取网络的状态信息,有下面三种方式   NetworkInfo networkInfo = connectionManager.getActiveNetworkInfo();   

NetworkInfo 有以下方法    getDetailedState():获取详细状态。 getExtraInfo():获取附加信息。 getReason():获取连接失败的原因。 getType():获取网络类型(一般为移动或Wi
-Fi)。 getTypeName():获取网络类型名称(一般取值“WIFI”或“MOBILE”)。 isAvailable():判断该网络是否可用。 isConnected():判断是否已经连接。 isConnectedOrConnecting():判断是否已经连接或正在连接。 isFailover():判断是否连接失败。 isRoaming():判断是否漫游
当用wifi上的时候 getType 是WIFI getExtraInfo是空的当用手机上的时候 getType 是MOBILE 用移动CMNET方式 getExtraInfo 的值是cmnet 用移动CMWAP方式 getExtraInfo 的值是cmwap 但是不在代理的情况下访问普通的网站访问不了 用联通3gwap方式 getExtraInfo 的值是3gwap 用联通3gnet方式 getExtraInfo 的值是3gnet 用联通uniwap方式 getExtraInfo 的值是uniwap 用联通uninet方式 getExtraInfo 的值是uninet 用电信方式待定 下面解决cmwap联网

关于NetworkInfo对象的isConnected()与isAvailable()

 

 测试类如下:

[java] view plaincopy
public class MainActivity extends Activity  
{  
    /** Called when the activity is first created. */  
    @Override  
    public void onCreate(Bundle savedInstanceState)  
    {  
        super.onCreate(savedInstanceState);  
        setContentView(R.layout.main);  
  
        this.registerReceiver(mBroadcastReceiver, new IntentFilter(  
                ConnectivityManager.CONNECTIVITY_ACTION));  
    }  
  
    private BroadcastReceiver mBroadcastReceiver = new BroadcastReceiver()  
    {  
        @Override  
        public void onReceive(Context context, Intent intent)  
        {  
            Bundle bundle = intent.getExtras();  
            NetworkInfo aNetworkInfo = (NetworkInfo) bundle  
                    .get(ConnectivityManager.EXTRA_NETWORK_INFO);  
  
            if (aNetworkInfo.isConnected())  
            {  
                System.out.println("connecte");  
            } else  
            {  
                System.out.println("not connect");  
            }  
  
            if (aNetworkInfo.isAvailable())  
            {  
                System.out.println("available");  
            } else  
            {  
                System.out.println("not available");  
            }  
            System.out.println("--------------------");  
        }  
    };  
}  

总结有以下5种状态:

在WLAN设置界面

1,显示连接已保存,但标题栏没有,即没有实质连接上,输出为:not connect, available

2,显示连接已保存,标题栏也有已连接上的图标,输出为:connect, available

3,选择不保存后 ,输出为:not connect, available

4,选择连接,在正在获取IP地址时,输出为:not connect, not available

5,连接上后, 输出为:connect, available

 

转载于:https://www.cnblogs.com/huidaoli/articles/3967758.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值