마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

wifi list가 불러오지 않습니다...

0 추천
권한은 다 부여하였고 관련 소스만 올렸습니다
 

public class MainActivity extends AppCompatActivity { WifiReceiver receiverWifi; List<ScanResult> wifiList; List<String> listOfProvider; ListAdapter adapter; ListView listViwProvider; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); IntentFilter filter = new IntentFilter(); filter.addAction("android.net.wifi.SCAN_RESULTS"); filter.addAction(WifiManager.WIFI_STATE_CHANGED_ACTION); filter.addAction(WifiManager.NETWORK_STATE_CHANGED_ACTION); registerReceiver(mReceiver, filter); handler=new Handler(); listOfProvider = new ArrayList<String>();


        wifi_scan = (Button) findViewById(R.id.wifi_scan);
        listViwProvider = (ListView) findViewById(R.id.list_view_wifi);


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

        //Wifi 켜기
        if(!(wifiManager.getWifiState() == WifiManager.WIFI_STATE_ENABLED || wifiManager.getWifiState() == WifiManager.WIFI_STATE_ENABLING )) {
            wifiManager.setWifiEnabled(true);
        }
        //와이파이 스캔
        wifi_scan.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                scaning();
            }
        });

        listViwProvider.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view,
                                    int position, long id) {
                ImportDialog action = new ImportDialog(MainActivity.this, (wifiList.get(position)).toString());
                action.showDialog();
            }
        });
    }

    private void scaning() {
        receiverWifi = new WifiReceiver();
        registerReceiver(receiverWifi, new IntentFilter(
                WifiManager.SCAN_RESULTS_AVAILABLE_ACTION));
        wifiManager.startScan();

    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        try{
            unregisterReceiver(receiverWifi);
            unregisterReceiver(mReceiver);
        }catch(IllegalArgumentException e){}
    }


    class WifiReceiver extends BroadcastReceiver {
            public void onReceive(Context c, Intent intent) {
            wifiList = wifiManager.getScanResults();
            Collections.sort(wifiList, new Comparator<ScanResult>() {
                @Override
                public int compare(ScanResult lhs, ScanResult rhs) {
                    return (lhs.level > rhs.level ? -1
                            : (lhs.level == rhs.level ? 0 : 1));
                }
            });
            listOfProvider.clear();
            String providerName;
            for (int i = 0; i < wifiList.size(); i++) {
                providerName = (wifiList.get(i).SSID).toString()
                        +"\n"+(wifiList.get(i).BSSID).toString();
                listOfProvider.add(providerName);
            }
            Log.d("갯수:", String.valueOf(wifiList.size()));
            adapter = new ListAdapter(MainActivity.this, listOfProvider);
            listViwProvider.setAdapter(adapter);

            adapter.notifyDataSetChanged();
        }
    }
쿠쿠부다스 (6,470 포인트) 님이 2019년 1월 30일 질문

답변 달기

· 글에 소스 코드 보기 좋게 넣는 법
· 질문에 대해 추가적인 질문이나 의견이 있으면 답변이 아니라 댓글로 달아주시기 바랍니다.
표시할 이름 (옵션):
개인정보: 당신의 이메일은 이 알림을 보내는데만 사용됩니다.
스팸 차단 검사:
스팸 검사를 다시 받지 않으려면 로그인하거나 혹은 가입 하세요.
...