打开关闭扫描WIFI并展示

来源:互联网 发布:电脑音频剪辑软件 编辑:程序博客网 时间:2024/05/17 00:54
添加权限:
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /><uses-permission android:name="android.permission.CHANGE_WIFI_STATE"></uses-permission><uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"></uses-permission><uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission>
布局文件:
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:id="@+id/activity_main"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:paddingBottom="@dimen/activity_vertical_margin"    android:paddingLeft="@dimen/activity_horizontal_margin"    android:paddingRight="@dimen/activity_horizontal_margin"    android:paddingTop="@dimen/activity_vertical_margin"    tools:context="com.bwie.a1511kday4wifi.MainActivity">    <ScrollView        android:layout_width="match_parent"        android:layout_height="match_parent">    <TextView        android:id="@+id/wifishow"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="Hello World!" />    <Button        android:text="打开wifi"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_below="@+id/wifishow"        android:layout_alignParentLeft="true"        android:layout_alignParentStart="true"        android:layout_marginLeft="11dp"        android:layout_marginStart="11dp"        android:layout_marginTop="45dp"        android:id="@+id/button1" />    <Button        android:text="关闭wifi"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_marginLeft="54dp"        android:layout_marginStart="54dp"        android:id="@+id/button2"        android:layout_alignBaseline="@+id/button1"        android:layout_alignBottom="@+id/button1"        android:layout_toRightOf="@+id/button1"        android:layout_toEndOf="@+id/button1" />    <Button        android:text="扫描wifi"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_alignTop="@+id/button2"        android:layout_alignParentRight="true"        android:layout_alignParentEnd="true"        android:id="@+id/button3" />    <TextView        android:text="showAllWifi"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_below="@+id/button1"        android:layout_alignRight="@+id/wifishow"        android:layout_alignEnd="@+id/wifishow"        android:layout_marginTop="24dp"        android:id="@+id/showAllWifi" />    </ScrollView></RelativeLayout>
MainActivity

public class MainActivity extends AppCompatActivity implements View.OnClickListener{    private TextView wifishow,showAllWifi;    private WifiManager wifiManager;    private WifiInfo wifiInfo;    private Button btn1,btn2,btn3;    private List<ScanResult> scanResults;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        wifishow = (TextView) findViewById(R.id.wifishow);        showAllWifi = (TextView) findViewById(R.id.showAllWifi);        //得到wifi管理器        wifiManager = (WifiManager) getApplicationContext().getSystemService(Context.WIFI_SERVICE);        //得到当前连接的wifi        wifiInfo = wifiManager.getConnectionInfo();        wifishow.setText(wifiInfo.toString());        btn1 = (Button) findViewById(R.id.button1);        btn2 = (Button) findViewById(R.id.button2);        btn3 = (Button) findViewById(R.id.button3);        //添加监听器        btn1.setOnClickListener(this);        btn2.setOnClickListener(this);        btn3.setOnClickListener(this);    }    @Override    public void onClick(View v) {        //得到wifi的状态        int wifiState = wifiManager.getWifiState();        switch (v.getId()){            case R.id.button1:                if(wifiState == 3){                    Toast.makeText(this,"wifi已经开启",Toast.LENGTH_SHORT).show();                }else{                    wifiManager.setWifiEnabled(true);                }                break;            case R.id.button2:                if(wifiState == 1){                    Toast.makeText(this,"wifi已经关闭",Toast.LENGTH_SHORT).show();                }else{                    wifiManager.setWifiEnabled(false);                }                break;            case R.id.button3:                //获得扫描wifi的动态权限                if (ContextCompat.checkSelfPermission(this, Manifest.permission_group.LOCATION)!= PackageManager.PERMISSION_GRANTED){// 获取wifi连接需要定位权限,没有获取权限                    ActivityCompat.requestPermissions(this,new String[]{                            Manifest.permission.ACCESS_FINE_LOCATION,                            Manifest.permission.ACCESS_COARSE_LOCATION,                            Manifest.permission.ACCESS_WIFI_STATE,                    },0);                }                break;        }    }    @Override    public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {        super.onRequestPermissionsResult(requestCode, permissions, grantResults);        if(requestCode == 0){            //允许获取权限            if (grantResults.length>0&&grantResults[0] == PackageManager.PERMISSION_GRANTED){                wifiManager.startScan();//扫描wifi,,需要动态权限                scanResults = wifiManager.getScanResults();//得到扫描的结果                String str = "";                //遍历查看                for (ScanResult sr:scanResults){                    str += sr.toString()+"\n\t";                }                showAllWifi.setText(str);            }        }    }}

原创粉丝点击