欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

WiFi

程序员文章站 2022-07-01 20:32:10
...

https://blog.csdn.net/hanyejing/article/details/52621862
WiFi的五种状态
判断WIFI的五个状态
可以用WifiManager对象调用
WIFI_STATE_DISABLING 0 正在关闭中
WIFI_STATE_DISABLED 1 关闭
WIFI_STATE_ENABLING 2 正在打开中
WIFI_STATE_ENABLED 3 打开
WIFI_STATE_UNKNOWN 4 未知

需要申请的权限
android.permission.ACCESS_WIFI_STATE
链接WIFI信息
android.permission.ACCESS_NETWORK_STATE
判断WIFI的状态(是否联网)
android.permission.CHANGE_WIFI_STATE
WIFI的五个变化
android.permission.CHANGE_NETWORK_STATE
转换网络状态
android.permission.ACCESS_COARSE_LOCATION
android:name="android.permission.ACCESS_FINE_LOCATION
WIFI位置
StringBuffer的append是追加,insert插入

package com.example.wangye.androidwifitest1609c;

import android.app.Activity;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.net.wifi.ScanResult;
import android.net.wifi.WifiInfo;
import android.net.wifi.WifiManager;
import android.os.Bundle;
import android.provider.Settings;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;
import java.util.List;

public class MainActivity extends Activity {
Button bt1,bt2,bt3,bt4,bt5,bt6;
  TextView tx;
  WifiManager manager;
  BroadcastReceiver receiver = new BroadcastReceiver() {
    @Override
    public void onReceive(Context context, Intent intent) {
      if(intent.getAction().equals(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION)){
        List<ScanResult> list = manager.getScanResults();
        StringBuffer buffer = new StringBuffer();
        for(int i = 0;i<list.size();i++){
          ScanResult scanResult = list.get(i);
          buffer.append("No."+i+"\n").append("BSSID:"+scanResult.BSSID)
              .append("\nSSID:"+scanResult.SSID)
              .append("\n频率:"+scanResult.frequency)
              .append("\n功率:"+scanResult.level).append("\n\n");
        }
        tx.setText(buffer.toString());
      }
    }
  };
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    registerReceiver(receiver,new IntentFilter(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION));
    init();
  }

  @Override
  protected void onStop() {
    super.onStop();
    unregisterReceiver(receiver);
  }

  void init(){
  manager = (WifiManager) getSystemService(WIFI_SERVICE);
    bt1 = (Button) findViewById(R.id.button);
    bt1.setOnClickListener(new OnClickListener() {
      @Override
      public void onClick(View v) {
        manager.setWifiEnabled(true);
      }
    });
    bt2 = (Button) findViewById(R.id.button2);
    bt2.setOnClickListener(new OnClickListener() {
      @Override
      public void onClick(View v) {
        manager.setWifiEnabled(false);
      }
    });
    bt3 = (Button) findViewById(R.id.button3);
    bt3.setOnClickListener(new OnClickListener() {
      @Override
      public void onClick(View v) {
        //判断WIFI的五个状态
//        WIFI_STATE_DISABLING  0   正在关闭中
//        WIFI_STATE_DISABLED   1   关闭
//        WIFI_STATE_ENABLING   2   正在打开中
//        WIFI_STATE_ENABLED    3   打开
//        WIFI_STATE_UNKNOWN    4   未知

//        int state= manager.getWifiState();
        //判断WIFI打开关闭两个状态
        if(manager.isWifiEnabled()){
          Toast.makeText(MainActivity.this,"WIFI已打开",Toast.LENGTH_LONG).show();
        }else{
          Toast.makeText(MainActivity.this,"WIFI已关闭",Toast.LENGTH_LONG).show();
        }
      }
    });
    bt4 = (Button) findViewById(R.id.button4);
    bt4.setOnClickListener(new OnClickListener() {
      @Override
      public void onClick(View v) {
        //扫描周边可用WIFI
       manager.startScan();
        tx.setText("正在扫描,请稍后...");
      }
    });
    bt5 = (Button) findViewById(R.id.button5);
    bt5.setOnClickListener(new OnClickListener() {
      @Override
      public void onClick(View v) {
        Intent i = new Intent(Settings.ACTION_WIFI_SETTINGS);
        startActivity(i);
      }
    });
    bt6 = (Button) findViewById(R.id.button6);
    bt6.setOnClickListener(new OnClickListener() {
      @Override
      public void onClick(View v) {
        WifiInfo info = manager.getConnectionInfo();
        StringBuffer buffer = new StringBuffer();
        buffer.append("当前获取的已连接WIFI信息:\n").append("接入点的BSSID:"+info.getBSSID())
            .append("\nSSID:"+info.getSSID()).append("\nMAC地址:"+info.getMacAddress())
            .append("\nIP地址:"+info.getIpAddress()).append("\n网络ID:"+info.getNetworkId());
        tx.setText(buffer.toString());
      }
    });
    tx = (TextView) findViewById(R.id.textView);
  }
}