连接Wifi

 
public interface ScanWiFIScanListener {
    void scanList(List<INfo> list);
}

public class INfo {
    String ssid;//
    String capabilities;//
    String bssid;//
    int level;//信号强度-20到0是最强的
    public String getSsid() {
        return ssid;
    }
    public void setSsid(String ssid) {
        this.ssid = ssid;
    }
    public String getCapabilities() {
        return capabilities;
    }
    public void setCapabilities(String capabilities) {
        this.capabilities = capabilities;
    }
    public String getBssid() {
        return bssid;
    }
    public void setBssid(String bssid) {
        this.bssid = bssid;
    }
    public int getLevel() {
        return level;
    }
    public void setLevel(int level) {
        this.level = level;
    }
    @Override
    public String toString() {
        return "INfo [ssid=" + ssid + ", capabilities=" + capabilities
                + ", bssid=" + bssid + ", level=" + level + "]";
    }

}

public class MyB extends BroadcastReceiver{
    WifiManager wifiManager;
    ScanWiFIScanListener listener;//传到activity那边

    public ScanWiFIScanListener getListener() {
        return listener;
    }

    public void setListener(ScanWiFIScanListener listener) {
        this.listener = listener;
    }

    //拿到收到的wifi
    public MyB(WifiManager wifiManager) {
        super();
        this.wifiManager = wifiManager;
    }

    @Override
    public void onReceive(Context context, Intent intent) {
        Log.i("INFO", "wifi is founded");
        //动态注册,代码注册
        //通过意图拿
        List<ScanResult> list= wifiManager.getScanResults();
        List<INfo> infos=new ArrayList<INfo>();
        for (ScanResult scanResult : list) {
            Log.i("INFO", scanResult.SSID);
            //没每个实体赋值添加到集合
            INfo info=new INfo();
            info.setBssid(scanResult.BSSID);
            info.setCapabilities(scanResult.capabilities);
            info.setLevel(scanResult.level);

            infos.add(info);
        }
        //蓝牙是异步扫描,wifi是同步扫描,一下子扫到
        listener.scanList(infos);

    }

}

@Override
    public View getView(int position, View convertView, ViewGroup parent) {
        LayoutInflater inflater=(LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        View vv=inflater.inflate(R.layout.list_item, null);
        TextView tv_ssid=(TextView) vv.findViewById(R.id.tv_ssid);
        TextView tv_bbid=(TextView) vv.findViewById(R.id.tv_bbid);
        TextView tv_p=(TextView) vv.findViewById(R.id.tv_p);
        ImageView iv_level=(ImageView) vv.findViewById(R.id.iv_level);
        iNfo=list.get(position);

        tv_ssid.setText(iNfo.getSsid());
        tv_bbid.setText(iNfo.getBssid());
        tv_p.setText(iNfo.getCapabilities());

        //判断level在那个区间
        //drawable
        int level = iNfo.getLevel();
        iv_level.setImageResource(R.drawable.image_level);
        if(-100<level&&level<-80){
            iv_level.setImageLevel(0);
        }else if(level<-60){
            iv_level.setImageLevel(1);
        }else if(level<-40){
            iv_level.setImageLevel(2);
        }else if(level<-20){
            iv_level.setImageLevel(3);
        }else{
            iv_level.setImageLevel(4);
        }

        //img.setImageLevel(0);
        return vv;
    }

public class MainActivity extends Activity implements ScanWiFIScanListener {
    ListView lv;
    MyB b;
    WifiManager wifiManager;
    MyAdapter adapter;
    List<INfo> list;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        lv = (ListView) findViewById(R.id.lv);
        wifiManager = (WifiManager) this.getSystemService(Context.WIFI_SERVICE);
        b = new MyB(wifiManager);
        b.setListener(this);//
        List<INfo> list = new ArrayList<INfo>();
        adapter = new MyAdapter(this, list);
        lv.setAdapter(adapter);
    }

    public void scanwifi(View v) {
        if (!wifiManager.isWifiEnabled()) {// 是否可用
            wifiManager.setWifiEnabled(true);// 打开
        }
        wifiManager.startScan();// 开始扫描
        // 注册广播
        IntentFilter intentFilter = new IntentFilter();
        intentFilter.addAction(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION);// 扫描结果可用,可拿到
        this.registerReceiver(b, intentFilter);
        // 扫描到就放进去
        adapter.getList().clear();
        adapter.notifyDataSetChanged();
    }

    @Override
    public void scanList(List<INfo> list) {
        // TODO Auto-generated method stub
        // 设置给adapter,刷新listView
        adapter.setList(list);
        adapter.notifyDataSetChanged();
    }

}

}

连接Wifi,布布扣,bubuko.com

时间: 2024-10-19 01:10:49

连接Wifi的相关文章

Android代码连接Wifi时被系统切换到其他Wifi的问题

首先说下Android代码连接Wifi的几个步骤:(以下涉及到具体API函数自查哈,写的时候凭借印象大致写了下) 转载请注明出处: 胖虎:http://blog.csdn.net/ljphhj 1.首先要开启Wifi连接开关,mWifiManager.setWifiEnabled(true) 2.通过获取List<ScanResult>来获取到Wifi连接列表.(mWifiManager.getScanResults) 3.获取List<WifiConfiguration>列表.(

linux无法连接wifi,不显示wifi

首先感谢Ubuntu 无线网络连接WIFI(b43驱动出现DMA问题的解决,根据文章的命令找到了问题所在. 1. dmesg | grep b43 (找到问题) dmesg用于检测和控制内核缓冲,帮助用户了解系统的启动信息. 系统提示到Linux Wireless我们到这里下载firmware,我们直接点击Linux Wireless,打开之后我们发现它提醒说The old website for now has a copy of the old content:Old Linux Wirel

树莓派 连接wifi与路由器ip绑定

先推荐几个手机软件 在酷安网里应该能找到 1.JuiceSSH  橘子ssh软件  手机连上路由器 就可以控制局域网内的树莓派 2.VNC Viewer  远程桌面软件VNC 也是连接局域网的树莓派 这几个软件还是很好用的,不想开电脑的时候,也能控制树莓派 ---------------------------------------------------------------------------------------------------------- 正文:连接wifi和路由器i

ubuntu 命令行模式连接wifi

ubuntu因为某些原因不能进入图形界面,而又没有网口时,需要连接wifi更新网络.而wifi变更了很多.wep模式已经淘汰,大量wpa模式的wifi,这里描述整个流程,以及可能遇到的坑. 列举你所有的网卡设备.找到你的无线网卡,这里是wlan2 ifconfig 打开wlan接口 ifconfig wlan2 up/ifup wlan2 查找所有可用的wifi接入点,记录接入点名称(essid).这里是tp_liNK iwlist scanning 因为wpa模式的密码,你输入的和实际使用的有

为什么手机连接wifi会显示已停用?

1.通常导致手机连接WiFi显示“已停用”故障的原因是由于无线路由器“安全模式”设置不当造成的,对此我们可以通过以下方法来解决: 2.根据无线路由器背面的信息(包括路由器IP地址,登陆用户名和密码),登陆路由器管理地址: 3.在路由器管理界面中,切换到“无线设置”选项卡,点击“无线加密”项,在此界面可以设置“安全模式”: 4.点击“安全模式”下拉列表,从其扩展列表中选择“WPA2-PSK”项,此项是所有手机均可支持的安全加密模式: 5.点击“确定”按钮保存设置.最后切换到“系统工具”选项卡,点击

yoga安装kali备忘(连接wifi)

kali 2.0 iso win8 下安装 用 WinSetupFromUSB-1-6-beta2 写入u盘,正常安装系统 启动连接wifi 搜索信号,获取ssid iw wlan0 scan 查看是否连接 iw wlan0 link 写入需要连接的无线路由信息 wpa_passphrase SSID PASSWD |tee -a /etc/wpa_supplicant/wpa_supplicant.conf 连接路由 wpa_supplicant -B -D wext -i wlan0 -c

Linux 使用create_ap开热点后无法连接wifi问题的解决

使用create_ap开启热点,关闭后,无法连接wifi. 使用sudo rfkill list all发现wifi没有被锁住,使用 sudo service network-manager start也无法解决问题 后来使用create_ap -h查看此软件的相关帮助,其中有 --fix-unmanaged If NetworkManager shows your interface as unmanaged after you close create_ap, then use this o

android推断是否连接wifi和网络状态的推断

<span style="font-size:18px;">// 是否连接WIFI public static boolean isWifiConnected(Context context) { ConnectivityManager connectivityManager = (ConnectivityManager) context .getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo wifiNet

android判断是否连接wifi和网络状态的判断

<span style="font-size:18px;">// 是否连接WIFI public static boolean isWifiConnected(Context context) { ConnectivityManager connectivityManager = (ConnectivityManager) context .getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo wifiNet