package com.example.admin.demo_wifi;
import android.Manifest;
import android.content.Context;
import android.content.pm.PackageManager;
import android.net.wifi.ScanResult;
import android.net.wifi.WifiManager;
import android.support.annotation.NonNull;
import android.support.v4.app.ActivityCompat;
import android.support.v4.content.ContextCompat;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ListView;
import android.widget.Toast;
import java.util.ArrayList;
import java.util.List;
public class MainActivity extends AppCompatActivity {
private Button open;
private Button close;
private Button scan;
private ListView list_view;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//找控件
open = (Button) findViewById(R.id.open);
close = (Button) findViewById(R.id.close);
scan = (Button) findViewById(R.id.scan);
list_view = (ListView) findViewById(R.id.list_view);
//打开wifi
open.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//得到wifi的管理器
WifiManager manager = (WifiManager) getApplicationContext().getSystemService(Context.WIFI_SERVICE);
//判断WIFI是否打开
if (!manager.isWifiEnabled()) {//关闭状态
//打开wifi
manager.setWifiEnabled(true);
}
}
});
//关闭WIFI
close.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//得到WIFI的管理器
WifiManager manager = (WifiManager) getApplicationContext().getSystemService(Context.WIFI_SERVICE);
//判断WIFI是否打开
if (manager.isWifiEnabled()) {//打开状态
//关闭WIFI
manager.setWifiEnabled(false);
}
}
});
//扫描WIFI
scan.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//1:监测权限是否被用户授权
if (ContextCompat.checkSelfPermission(MainActivity.this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
//打开一个对话框,让用户进行授权。
ActivityCompat.requestPermissions(MainActivity.this, new String[]{Manifest.permission.ACCESS_FINE_LOCATION}, 1);
} else {
scanWifi();
}
}
});
}
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
if(requestCode==1){
if(grantResults!=null && grantResults[0]==PackageManager.PERMISSION_GRANTED){
scanWifi();
}else{
Toast.makeText(MainActivity.this,"用户拒绝授权!",Toast.LENGTH_SHORT).show();
}
}
}
//扫描WIFI的方法。
private void scanWifi() {
//得到WIFI的管理类
WifiManager manager = (WifiManager) getApplicationContext().getSystemService(Context.WIFI_SERVICE);
//直接扫描
boolean b = manager.startScan();
if (b) {
//得到扫描的结果
List<ScanResult> results = manager.getScanResults();
List<String> datas = new ArrayList<String>();
for (int i = 0; i < results.size(); i++) {
datas.add(results.get(i).SSID);
}
//构造适配器
ArrayAdapter<String> adapter=new ArrayAdapter<String>(MainActivity.this, android.R.layout.simple_list_item_1,datas);
list_view.setAdapter(adapter);
}
}
}