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);
}
}
上一篇: WIFI
下一篇: error日志显示不全的问题