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 ListView listView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button buttonOpen=findViewById(R.id.btn_open);
Button buttonClose=findViewById(R.id.btn_close);
Button buttonScan=findViewById(R.id.btn_scan);
listView = findViewById(R.id.lv);
//打开wifi
buttonOpen.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//得到wifi管理器
WifiManager manager =(WifiManager) getApplicationContext().getSystemService(Context.WIFI_SERVICE);
//1.判断wifi是否打开
if(!manager.isWifiEnabled()){
//打开wifi
manager.setWifiEnabled(true);
Toast.makeText(MainActivity.this,"打开了wifi",Toast.LENGTH_LONG).show();
}
}
});
buttonClose.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
WifiManager manager =(WifiManager) getApplicationContext().getSystemService(Context.WIFI_SERVICE);
if(manager.isWifiEnabled()){
//关闭wifi
manager.setWifiEnabled(false);
Toast.makeText(MainActivity.this,"关闭wifi",Toast.LENGTH_SHORT).show();
}
}
});
buttonScan.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//获取精确位置的权限属于危险权限,android 5.0系统之后需要添加运行时权限
//ACCESS_FINE_LOCATION
//首先检查权限有没有被授权
if(ContextCompat.checkSelfPermission(MainActivity.this, Manifest.permission.ACCESS_FINE_LOCATION)!= PackageManager.PERMISSION_DENIED){
//申请权限
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();
}
}
}
private void scanWifi() {
WifiManager manager =(WifiManager) getApplicationContext().getSystemService(Context.WIFI_SERVICE);
//开始扫描
manager.startScan();
//得到扫描的结果
List<ScanResult> scanResults = manager.getScanResults();
List<String> wifis=new ArrayList<>();
if(scanResults!=null){//发现wifi网络
for(int i=0;i<scanResults.size();i++){
wifis.add(scanResults.get(i).SSID);//ssid代表当前wifi的名称
}
//设置适配器
ArrayAdapter<String> adapter=new ArrayAdapter<String>(MainActivity.this,android.R.layout.simple_list_item_1,wifis);
listView.setAdapter(adapter);
}else{
Toast.makeText(MainActivity.this,"未扫描到wifi",Toast.LENGTH_SHORT).show();
}
}
}