您的位置:首页 > 移动开发 > Android开发

Android--WIFI--Mac--Ip

2017-04-25 09:06 211 查看
获取手机的wifi管理:

wifiManager=(WifiManager)getSystemService(Context.WIFI_SERVICE);

链接情况下获取相关信息:

info=wifiManager.getConnectionInfo();

如果wifi没有链接,调用系统方法打开wifi设置页面:

Intent intent=new Intent();

intent.setAction(Settings.ACTION_WIFI_SETTINGS);

startActivity(intent);

1.获取手机Mac地址:

info.getMacAddress();

2.获取手机内网ip:

info.getIpAddress();

注:这里的ip和我们使用ipconfig获取的ip其实是相通的,只是格式进制不同,转换一下即可。

3.进制转换方法:

将16进制的值转换为10进制

(i & 0xFF) + "." + ((i >> 8) & 0xFF) + "." + ((i >> 16) & 0xFF) + "." + (i >> 24 & 0xFF);

注:i为int类型16位地址码

4.获取手机可连接范围内的所有wifi设备信息:

wifiManager.getScanResults();

返回值数据类型为ScanResult的一个list列表

对ScanResult类中的成员变量简单介绍一下:

1.String SSID:网络名称。

2.String BSSID:AP的地址。

3.int level:发现的信号等级

注:通过调用WifiManager的caculateSignalLevel方法将该数值进行换算,换算成一个绝对信号等级呈现给用户。

4.int autoJoinStatus:表示join的状态。

5.int distanceCm:到AP的大概距离

5.获取路由器的Mac地址:

private String getRouterMac(){

        String routerMac="";

        List<ScanResult>list=null;

        if(wifiManager!=null){

            list=wifiManager.getScanResults();

            if(list!=null&&info!=null){

                for(int i=0;i<list.size();i
4000
++){

                    ScanResult result=list.get(i);

                    if(info.getBSSID().equals(result.BSSID)){

                        routerMac=result.BSSID;

                    }

                }

            }

        }else{

            return "null";

        }

        return routerMac;

    }

注:

注意添加权限:

 <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>

 <uses-permission android:name="android.permission.INTERNET"/>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: