现在的位置: 首页 > 综合 > 正文

无线管理的帮助类

2018年03月31日 ⁄ 综合 ⁄ 共 4623字 ⁄ 字号 评论关闭

                                                                   android  无线管理的帮助类

     安卓wifi操作的封装   希望和大家一起 交流和学习    QQ群: 群号是1160373684

    private WifiManager wifiManager;// 声明Wifi管理对象
    private WifiInfo wifiInfo;// Wifi信息
    private List<ScanResult> scanResultList; // 扫描出来的网络连接列表
    private List<WifiConfiguration> wifiConfigList;// 网络配置列表
    private WifiLock wifiLock;// Wifi锁

    /**
     * 构造函数
     * @param context
     */
    public WifiHelper(Context context){
        this.wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);// 获取Wifi服务
        // 得到Wifi信息
        this.wifiInfo = wifiManager.getConnectionInfo();// 得到连接信息
    }

    /**
     * Wifi状态.
     * @return
     */
    public boolean isWifiEnabled(){
        return wifiManager.isWifiEnabled();
    }

    /**
     * 打开 wifi
     * @return
     */
    public boolean openWifi(){
        if (!isWifiEnabled()) {
            return wifiManager.setWifiEnabled(true);
        } else {
            return false;
        }
    }

    /**
     * 关闭Wifi
     * @return
     */
    public boolean closeWifi(){
        if (!isWifiEnabled()) {
            return true;
        } else {
            return wifiManager.setWifiEnabled(false);
        }
    }

    /**
     *  锁定wifi
     *  锁定WiFI就是判断wifi是否建立成功,在这里使用的是held(握手) acquire
     */
    public void lockWifi() {
        wifiLock.acquire();
    }

    /**
     * 解锁wifi
     */
    public void unLockWifi() {
        if (!wifiLock.isHeld()) {
            wifiLock.release(); // 释放资源
        }
    }

    /**
     * 创建一个Wifi锁,需要时调用
     */
    public void createWifiLock() {
        wifiLock = wifiManager.createWifiLock("flyfly"); // 创建一个锁的标志
    }

    /**
     * 扫描网络
     */
    public void startScan() {
        wifiManager.startScan();
        scanResultList = wifiManager.getScanResults(); // 扫描返回结果列表
        wifiConfigList = wifiManager.getConfiguredNetworks(); // 扫描配置列表
    }

    public List<ScanResult> getWifiList() {
        return scanResultList;
    }

    public List<WifiConfiguration> getWifiConfigList() {
        return wifiConfigList;
    }

    /**
     * 获取扫描WIFI列表的信息
     * @return
     */
    public String lookupScanInfo() {
        StringBuilder scanBuilder = new StringBuilder();
        if(scanResultList == null){
            return "";
        }
        for (int i = 0; i < scanResultList.size(); i++) {
            ScanResult sResult = scanResultList.get(i);
            scanBuilder.append("编号:" + (i + 1));
            scanBuilder.append(" ");
            scanBuilder.append(sResult.toString());  //所有信息
            scanBuilder.append("\n");
        }
        scanBuilder.append("--------------华丽分割线--------------------");
        for(int i=0;i<wifiConfigList.size();i++){
            scanBuilder.append(wifiConfigList.get(i).toString());
            scanBuilder.append("\n");
        }
        return scanBuilder.toString();
    }
    
    /**
     * 获取指定Wifi的ssid名称
     * @param NetId
     * @return
     */
    public String getSSID(int NetId){
        return scanResultList.get(NetId).SSID;
    }

    /**
     * 获取指定Wifi的物理地址
     * @param NetId
     * @return
     */
    public String getBSSID(int NetId){
        return scanResultList.get(NetId).BSSID;
    }
    
    /**
     * 获取指定Wifi的频率
     * @param NetId
     * @return
     */
    public int getFrequency(int NetId){
        return scanResultList.get(NetId).frequency;
    }
    
    /**
     * 获取指定Wifi的功能
     * @param NetId
     * @return
     */
    public String getCapabilities(int NetId){
        return scanResultList.get(NetId).capabilities;
    }
    /**
     * 获取指定Wifi的信号强度
     * @param NetId
     * @return
     */
    public int getLevel(int NetId){
        return scanResultList.get(NetId).level;
    }
    
    
    
    

    /**
     * 获取本机Mac地址
     * @return
     */
    public String getMac() {
        return (wifiInfo == null) ? "" : wifiInfo.getMacAddress();
    }

    public String getBSSID() {
        return (wifiInfo == null) ? null : wifiInfo.getBSSID();
    }

    public String getSSID() {
        return (wifiInfo == null) ? null : wifiInfo.getSSID();
    }

    /**
     * 返回当前连接的网络的ID
     * @return
     */
    public int getCurrentNetId() {
        return (wifiInfo == null) ? null : wifiInfo.getNetworkId();
    }

    /**
     * 返回所有信息
     * @return
     */
    public String getWifiInfo() {
        return (wifiInfo == null) ? null : wifiInfo.toString();
    }

    /**
     * 获取IP地址
     * @return
     */
    public int getIP() {
        return (wifiInfo == null) ? null : wifiInfo.getIpAddress();
    }

    /**
     * 添加一个连接
     * @param config
     * @return
     */
    public boolean addNetWordLink(WifiConfiguration config) {
        int NetId = wifiManager.addNetwork(config);
        return wifiManager.enableNetwork(NetId, true);
    }

    /**
     * 禁用一个链接
     * @param NetId
     * @return
     */
    public boolean disableNetWordLink(int NetId) {
        wifiManager.disableNetwork(NetId);
        return wifiManager.disconnect();
    }

    /**移除一个链接
     *
     * @param NetId
     * @return
     */
    public boolean removeNetworkLink(int NetId) {
        return wifiManager.removeNetwork(NetId);
    }
    
    /**
     * 不显示SSID
     * @param NetId
     */
    public void hiddenSSID(int NetId){
        wifiConfigList.get(NetId).hiddenSSID=true;
    }
    
    /**
     * 显示SSID
     * @param NetId
     */
    public void displaySSID(int NetId){
        wifiConfigList.get(NetId).hiddenSSID=false;
    }
}

抱歉!评论已关闭.