public
class
WifiSearchActivity
extends
AppCompatActivity {
WifiManager wifimanager;
private
List<ScanResult> mScanReult;
TextView textView;
@Override
protected
void
onCreate(Bundle savedInstanceState) {
super
.onCreate(savedInstanceState);
setContentView(R.layout.activity_wifisearch);
textView = (TextView)findViewById(R.id.textview);
wifimanager = (WifiManager)
this
.getApplicationContext().getSystemService(Context.WIFI_SERVICE);
final
IntentFilter filter =
new
IntentFilter(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION);
filter.addAction(WifiManager.NETWORK_STATE_CHANGED_ACTION);
registerReceiver(mWifiScanReceiver, filter);
Log.d(
"wifi"
,
"와이파이 시작"
);
if
(!wifimanager.isWifiEnabled()){
wifimanager.setWifiEnabled(
true
);
}
wifimanager.startScan();
Log.d(
"wifi"
,
"와이파이 끝"
);
}
private
BroadcastReceiver mWifiScanReceiver =
new
BroadcastReceiver() {
@Override
public
void
onReceive(Context context, Intent intent) {
final
String action = intent.getAction();
if
(action.equals(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION)){
getWIFIScanResult();
wifimanager.startScan();
}
else
if
(action.equals(WifiManager.NETWORK_STATE_CHANGED_ACTION)){
sendBroadcast(
new
Intent(
"wifi.ON_NETWORK_STATE_CHANGED"
));
Log.d(
"wifi"
,
"변화"
);
}
}
};
public
void
getWIFIScanResult(){
mScanReult = wifimanager.getScanResults();
Log.d(
"wifi"
, Integer.toString(mScanReult.size()) );
textView.setText(
""
);
for
(
int
i =
0
; i < mScanReult.size(); i++) {
ScanResult result = mScanReult.get(i);
textView.append((i +
1
) +
". SSID : "
+ result.SSID.toString()
+
"\t\t RSSI : "
+ result.level +
" dBm\n"
);
}
}
}