NetworkInfo类,判断网络类型,获取WIFI名称,网速,网络信号,IP地址,MAC地址
2014-07-10 11:12
701 查看
package shared; import android.content.Context; import android.net.ConnectivityManager; import android.net.NetworkInfo; import android.net.wifi.WifiInfo; import android.net.wifi.WifiManager; public class Network { public static int getNetworkType(Context ct) { //-1:ConnectivityManager.TYPE_NONE 0:ConnectivityManager.TYPE_MOBILE 1:ConnectivityManager.TYPE_WIFI -1——14 ConnectivityManager manager = (ConnectivityManager) ct.getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo networkinfo = manager.getActiveNetworkInfo(); if (networkinfo != null && networkinfo.isAvailable()) return networkinfo.getType(); else return -1; } public static Object[] getWifiInfo(Context ct) { // [String:Name,int:Signal,int:Speed,String:SpeedUnits,String:ip,String:Mac] WifiManager wifiManager = (WifiManager) ct.getSystemService(Context.WIFI_SERVICE); WifiInfo wifiInfo = wifiManager.getConnectionInfo(); if (wifiInfo.getBSSID() == null) return null; else{ int i = wifiInfo.getIpAddress(); return new Object[]{wifiInfo.getSSID(),WifiManager.calculateSignalLevel(wifiInfo.getRssi(), 4),wifiInfo.getLinkSpeed(),WifiInfo.LINK_SPEED_UNITS,(i&0xFF)+"."+((i>>8)&0xFF)+"."+((i>>16)&0xFF)+"."+(i>>24&0xFF),wifiInfo.getMacAddress()}; } } }
针对于以上网络应用,声明一个全局广播接收者:
<receiver android:name=".NetworkBroadcast" android:enabled="true" > <intent-filter > <action android:name="android.net.conn.CONNECTIVITY_CHANGE"/> </intent-filter> </receiver>
简单java源码:
package com.dadi58; import shared.Network; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.net.ConnectivityManager; import android.widget.Toast; public class NetworkBroadcast extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { switch(Network.getNetworkType(context)){ case ConnectivityManager.TYPE_MOBILE:Toast.makeText(context, "手机网络连接成功!", Toast.LENGTH_LONG).show();break; case ConnectivityManager.TYPE_WIFI:Toast.makeText(context, "无线网络连接成功!", Toast.LENGTH_LONG).show();break; case -1:Toast.makeText(context, "没有任何网络!", Toast.LENGTH_LONG).show();break; } } }
基础参考:http://blog.csdn.net/ygc87/article/details/7629749
广播与服务监听网络状态:http://www.cnblogs.com/sipher/articles/2567697.html
相关文章推荐
- c#中获取cpu序列号、网卡mac地址、ip地址、硬盘序列号、登录用户名、pc类型、计算机名称、物理内存 【转载】
- c#中获取cpu序列号、网卡mac地址、ip地址、硬盘序列号、登录用户名、pc类型、计算机名称、物理内存
- android 获取网络类型名称2G 3G 4G wifi
- Android 判断网络是否可用、网络类型WIFI/2G/3G/4G及获取IP
- C#中获取CPU序列号、网卡Mac地址、IP地址、硬盘序列号、登录用户名、PC类型、计算机名称、物理内存
- 通过广播方式获取当前网络类型,如果是Wifi,获取对应的信息(附加有root之后可实现保存的无线网名称及密码获取)
- c#中获取cpu序列号、网卡mac地址、ip地址、硬盘序列号、登录用户名、pc类型、计算机名称、物理内存
- android 获取手机上面的IMSI序列号,IMEI,MAC地址,IP地址,当前时间,当前经纬度,获取网络类型
- android 获取网络类型名称2G 3G 4G wifi
- C#中获取CPU序列号、网卡Mac地址、IP地址、硬盘序列号、登录用户名、PC类型、计算机名称、物理内存,Singleton模式
- c#中获取cpu序列号、网卡mac地址、ip地址、硬盘序列号、登录用户名、pc类型、计算机名称、物理内存
- c#中获取cpu序列号、网卡mac地址、ip地址、硬盘序列号、登录用户名、pc类型、计算机名称、物理内存
- 【Android基础】Android网络类型判断及IP地址获取
- c#中获取cpu序列号、网卡mac地址、ip地址、硬盘序列号、登录用户名、pc类型、计算机名称、物理内存
- Android网络类型判断及IP地址获取
- c#中获取cpu序列号、网卡mac地址、ip地址、硬盘序列号、登录用户名、pc类型、计算机名称、物理内存
- c#中获取cpu序列号、网卡mac地址、ip地址、硬盘序列号、登录用户名、pc类型、计算机名称、物理内存
- Android开发之获取网络类型(WIFI、2G、3G、4G)和运营商名称
- c#中获取cpu序列号、网卡mac地址、ip地址、硬盘序列号、登录用户名、pc类型、计算机名称、物理内存 【转载】
- C#中获取CPU序列号、网卡Mac地址、IP地址、硬盘序列号、登录用户名、PC类型、计算机名称、物理内存